DevOps- Hygieia

Ankur JAIN
Analytics Vidhya
Published in
3 min readDec 10, 2020

--

Credit- https://www.softwaresuggest.com

There are a number of DevOps tools available which improves our product delivery including Jenkins, Gitlab, TeamCity, SonarQube, Jira etc. Source Code Management(SCM), build, code-analysis, deployments, Sprint progress are the areas these above mentioned tools try to target specifically. Hygieia from CapitalOne combines them and show the appropriate results on a single-pane-of-glass HTML.

Hygieia dashboards assist in achieving process transparency and therefore help establish feedback loops that are the underlying concept of lean and DevOps. They contain interactive elements which enable drill-down and linking to the connected tools.

It’s not a replacement for Gitlab or Jenkins but a tool which works like an aggregator and improve our product delivery. It’s for both the developers and the businesses.

Here is a screenshot of a Team Dashboard from the Hygieia tool.

Team Dashboard
Team Dashboard

What do you see in this screenshot?

Widgets like components are there to show the overall health of the product. Each widget is serving specific purpose. For example, Code Repo Widgets shows the trend of commits, issues and pulls happened everyday. Deploy widget shows latest deployments(failed or successful). Build widgets shows the trend for the number of builds happened everyday. There are other widgets like codeanalysis, performance, log, pipeline etc which makes this tool rich in terms of scope and variety.

This is a team dashboard which we saw in the above screenshot, it has one more dashboard called Product dashboard, which can be used by the managers and product owners to see how their teams are performing on each aspect and can take appropriate actions.

This is how a product dashboard looks like -

Product Dashboard
Product Dashboard

As we can clearly see, this is showing the performance of each team on a single widow by comparing each aspect separately. This gives managers and product owners a fair idea on how their teams are progressing and what actions need to be taken to improve the delivery of each team.

How does it work?

Hygieia fetches data from the devOps tools like Gitlab, GitHub, TeamCity etc and does calculations on those data to show the data on the widgets.

Hygieia architecture
Hygieia Architecture

There’re 4 different layers which works in tandem to show the data on the dashboards.

UI Layer

This layer is responsible for showing the data on the on user dashboard.

API Layer

This layer is responsible for sending data to the UI layer and updating the database if configurations are changed on the dashboard.

Collectors Layer

This layer is responsible for fetching data from the DevOps tools like Jenkins, gitlab etc and saving the data into mongodb in a separate database.

DB Layer

This layer is responsible for storing data which comes from collectors. It serves this data to API layer whenever requested.

There’re separate collectors for each tool and they’re open sourced. You can find them here. You can also contribute to the community by creating new collectors if you want, it’s not difficult. These collectors, when run, fetch the data from the configured endpoints and stores those results in database in the form of collections.

Conclusion

Even though we have many DevOpsTools available in the market, Hygieia still stands out with its richness in terms of scope and showing the overall health of the product. It helps in identifying flaws and correcting them by suggesting which actions need to be taken. With the help of Product dashboards, it helps businesses to look upon different teams delivery and identify the areas they need to work upon.

I’m going to write a separate post on how to configure Hygieia. Till then Happy Reading!

--

--