Giter VIP home page Giter VIP logo

sso-sizing's Introduction

An AMQ Streams (Kafka) Sizing Tool

You can access my Kafka sizing tool using the link here.

Note that the first time you access it, it may timeout or take a long time as the container would have been stopped due to inactivity.

Also, the calculator will give a preconfigured minimum even if your input requirements require less resources. We are talking about enterprise env here.

Problem statement

Enterprises planning to use Red Hat AMQ Streams (Kafka) want to get an idea as to how many subscription cores they need to purchase. The intention of this tool is to provide an educated estimate. Nothing beats simulating the load on your hardware but this is not always feasible. The next best thing is to develop an analytical model to do the estimation.

An Analytical Model

It will take up too much space here to describe the analytical model I used for this sizing tool. Instead, I have included it in the repository: "AMQ Streams (Kafka) Sizing Tool - Analytical Model.pdf", for those who are interested.

User Interface and Sizing Output

Here is a screenshot of the UI: App UI

Here is a screenshot of the sizing results: Sizing Results

Running Spring Boot Locally

    mvn clean spring-boot:run

Deploying to Openshift

Do the following:

  • Log in to Openshift
  • Create a new Openshift project: kafka-sizing
  • Make sure you are on that project
  • Deploy a MySQL database and set it up with the schema using the schema-mysql.sql (see screenshots in next section).
  • On your laptop, change to the root of your kafka-sizing maven project and execute the following commands:
	mvn clean -Pprod package
	oc project kafka-sizing
	oc policy add-role-to-user view -z default
	oc create configmap kafka-sizing --from-file=target/classes/application.properties
	mvn oc:build
	mvn oc:resource
	mvn oc:apply

Please note that you need to execute the package mvn goal before creating the configmap as mvn changes the application.properties file before copying it to the target directory.

  • invoke the application using its route

Database Deployment Screenshots

  • Use Openshift templates to create a MySQL database with persistent storage. JSON document output

  • Identify the MySQL pod, rsh into it and login to MySQL as root: Login to MySQL

  • Paste the SQL script to create the schema Initialise schema

ENJOY ;-) !!!

sso-sizing's People

Contributors

andyyuen avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.