In modern stacks, the application often consists of multiple microservices. For one of our projects we had to manage about 20 of these. Not only because of the partnership between codecentric and AWS we decided to use the AWS platform. That also led to the decision to use infrastructural components provided by AWS like CodeCommit and CodePipeline. In this blog post we want to speak about our experience with CodePipeline.
Unfortunately, the web interface of CodePipeline is rather basic. It is difficult to get an overview which pipelines are running, building or failing when you have a pipeline for each microservice. Failing? Yes, that happens! And that is exactly what we want to see immediately. To summarize: We found the existing web interface insufficient to help us in our daily work and looked at alternatives.
Before we dive into the graphical user interface (UI) we prefer, we want to mention alternatives to visualize pipeline issues. Sometimes you may prefer getting an email or notification on Slack when something goes wrong. This kind of feedback can be implemented by using the CodePipeline API.
Why do we prefer a graphical UI to visualize our set of pipelines? One reason is that human beings can easily work with graphical representations and their changes. The latter one is the reason that makes GUIs so intuitive. The following example comes from our daily project work. Please note that some information has been blurred to protect the privacy of the customer. Imagine a screen like this one:
Do you see anything special? No? You’re right! This screen shows a pipeline system without any problems. It shows all implemented pipelines with their build steps, the last date of being built and their status in colours. Green means that everything is okay. Just imagine this on a big screen: a short glance tells you “Everything is green, no problems.”. Great!
Now check this screen:
Ah, there is something different: First of all, there is this red bar in the middle. This project needs your attention. The build step failed.
And of course you also noticed the blue bar on the bottom. Well, it’s not that eye-catching. That’s by intention: there is a build in progress. The takeaways are: Everything is fine, the pipelines are working and something is currently working there.
Summary: you can see this information with one glance. Just react on red bars and the blue bars show that the whole system is alive.
Of course, we don’t want to just show you this tool in a blog post. You can also use it. The application is available on github.
We also provide a docker container for this application on docker-hub. Please read the instructions in our README file for further information.