Visualise Your Delivery Pipeline in Real-Time with Hygieia

0
4791

Hygieia is an open source project that enables the user to visualise the entire delivery pipeline. It adds support for multiple teams and a corresponding consolidated view into a program-level dashboard. Hygieia integrates widgets from story tracking, the repository, build, quality, etc, which enables easy access to important DevOps metrics.

Hygieia is an open source project (released under the Apache 2 licence), which provides a single, configurable, easy-to-use dashboard for visualising the status of the entire delivery pipeline in near real-time. It provides two other self-contained dashboards — one for the DevOps engineer to track the current status of Continuous Integration Continuous Delivery(CICD) and the other for executives, to monitor the health of code commits, the deployment process and final production.
Hygieia can give complex insights into the following areas.

DevOps maturity: It offers fully automated CICD tracking of high quality and with good pipeline speed.

Risk management and investing: It connects operational metrics to developmental metrics, offering a full understanding of where to invest in order to improve processes that reduce unnecessary risks, considering the future.

Ongoing enhancements for Agile environments: It quantifies DevOps metrics to track and improve DevOps maturity.

Establishes and raises standards: It sets and achieves a profile for maturity metrics and products. When products dip below the bar, it triggers an alert notification. In addition, this bar goes up incrementally to ensure that all products undergo simultaneous improvements.

Table 1 presents an overview of Hygieia’s architecture.

Setting it up
Let us look at how to install and use Hygieia. I am using Ubuntu 18.04 64-bit.
The prerequisites are given below.
1. Git, required for getting the latest copy of Hygieia. To install it, run the following command:

$sudo apt-get install git

2. Java, the backend of the Hygieia application (1.8 recommended). Download Java from Oracle. Extract it in /opt. Add $JAVA_HOME and $JRE_HOME to /etc/profile.

Add newly downloaded java and javac in System
$sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_211/bin/java 1
$sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_211/bin/javac 1
Select oracle-java as default one
$sudo update-alternatives --config java
$sudo update-alternatives --config javac
Check java versions
$ java -version
java version “1.8.0_211”

Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
$ javac -version
javac 1.8.0_211

3. Maven (3.3.6 or above recommended). To install it, run the following command:

$sudo apt-get install mvn

4. Install the npm JavaScript package manager, as follows:

$apt-get install npm
Figure 1: Architecture of Hygieia
Figure 2: The Hygieia
Figure 3: Login screen

Installing Hygieia
Hygieia has two components — Hygieia-core and Hygieia. First, you have to create a Hygieia user.
Then download the latest Hygieia-core and Hygieia. (Git clone: https://github.com/Hygieia/hygieia-core.git; Git clone: https://github.com/Hygieia/hygieia.git)
Then move to Hygieia-core and run the following command:

mvn clean install package

This takes a few minutes to complete.
After that, move to the Hygieia directory and run the following command:

mvn clean install package

This takes 20-30 minutes to complete.

The Web application server of the UI will need Gulp and Bower. Gulp is a tool that helps you out with several tasks when it comes to Web development. It’s often used to do frontend tasks like:

  • Spinning up a Web server
  • Reloading the browser automatically whenever a file is saved
  • Using preprocessors like Sass or LESS
  • Optimising assets like CSS, JavaScript, and images

Bower can manage components that contain HTML, CSS, JavaScript, fonts or even image files. It doesn’t concatenate or minify code or do anything else — it just installs the right versions of the packages you need along with their dependencies.

$sudo npm install -g bower
$sudo npm install -g gulp

Go to the Hygieia/UI directory and run the following command:

$ gulp serve

Press Ctrl+C to stop the server.

Figure 4: Dashboard page
Figure 5: Creating a new dashboard

MongoDB installation
MongoDB is used here as a backend of Hygieia.

$sudo apt-get install mongodb

Details of the MongoDB configurations are written in hygieia/db/db-setup.js. Go to that directory, i.e., hygieia/db and run the following command:

$mongo < db-setup.js

Running the Hygieia API
Go to the hygieia/api directory and run the following command:

$mvn install

Create an api.properties file in the hygieia/api directory. You can get the file from https://hygieia.github.io/Hygieia/api.html#api-properties-file.
A sample of a minimal working api.properties file is given below:

dbname=dashboarddb
dbusername=dashboarduser
dbpassword=dbpassword
dbhost=localhost
dbport=27017
server.port=8080
logRequest=false
logSplunkRequest=false
corsEnabled=false
version.number=0.0.1
pageSize=10
key=[api token]
##End of file

You can add LDAP as a user backend. Here I have used a standard login.
After that, to run the API service, execute the following command (assuming you are in the hygieia/api directory):

$java -jar target/api.jar --spring.config.location=/home/hygieia/hygieia/api/api.properties -Djasypt.encryptor.password=hygieiasecret
Figure 6: Add widget to dashboard

The Hygieia dashboard
There are two separate dashboards in Hygieia — the team dashboard, and the product dashboard. You can log in to the dashboard by going to the following URL in the browser: localhost:3000/#/login or <IP_ADDRESS>:3000/#/login
If you log in for the first time, you have to create a user account by clicking Sign up and entering your user name and password.

Now you can create either the team or the product dashboard. If you want to create the team dashboard, you can use widgets or some predefined templates.

Once you create a dashboard, you can configure it from the home screen. You can add whatever it is about your product that you want to track, as shown in Figure 6.

Figure 7: Configuring the widget of an application

Next, you have to select your specific application and configure the widgets, as shown in Figure 7.
Hygieia’s dashboards enable users to view CICD pipelines in near real-time. You can add the source code repository, chat server, build server, deployment server, cloud monitoring features and a lot more.

The dashboards also provide crucial information about the overall vitality and performance metrics of your software operations.

LEAVE A REPLY

Please enter your comment!
Please enter your name here