Introducing Kafka Cruise Control Frontend

Cruise Control UI preferences

Other features
In addition to those described above, there are other features in the UI that we recommend exploring to make the best utilization of CCFE. One important thing to remember is that most of the actions you can implement from the UI are run in dry-run mode by default for safety reasons. This behavior can be easily switched in the appropriate page if needed.

CCFE deployment methods

At the core, CCFE is a web application that’s written in JavaScript and runs completely in the web browser. To accommodate different types of installations, CCFE was designed to run as an admin frontend for a single Cruise Control server or as a Central UI to manage many Kafka clusters.

We define these two methods as Embedded and Standalone Methods.

Embedded Method
In this method, CCFE is deployed within Cruise Control itself and is used to manage the Cruise Control instance, where it’s deployed. To run CCFE in this mode, users have to download the CCFE distribution from GitHub and extract the artifacts into the cruise-control-ui folder within the Cruise Control application. Cruise Control has built-in support to detect this method of deployment of CCFE and automatically serves the UI when the user visits the hostname and port combination of Cruise Control in a web browser. In other words, if Cruise Control is deployed on on port 8080, navigating to shows the CCFE.

More details about this method of deployment is available on the CCFE GitHub page.

Standalone Method
In this method, CCFE is deployed within a webserver like Apache or Nginx that has support for serving static content from a given directory. Application servers can also be used if there is any need to discover the deployed Cruise Control hostnames and ports from an external configuration system.

To let the CCFE know all of the available Cruise Control server details, a configuration file should be made available at the URL /static/config.csv. At LinkedIn, we have built a custom webserver, using the Flask framework, that pulls the Cruise Control server and port details from our own internal cloud to auto-generate the configuration file.

Additionally, proper firewalls should be set up to ensure that the deployment is secure.

In the Standalone Method, CCFE can be deployed in these two architectures: Reverse Proxy Architecture or CORS Architecture.

Reverse Proxy Architecture
In this architecture, CCFE always communicates with the Reverse Proxy to access the REST API provided by Cruise Control. An architecture diagram for this setup looks like this:

Source link