After a few decades of ongoing global software development, there is a tool for just about everything. And for everything else, you can develop one yourself (if you know how). And since you want everybody to share the stuff they do, all those tools have some sort of central server. Be it a database server, web server, file server, everything has a server nowadays. The downside is, after a while you have lots of applications running on various machines (usually virtual machines) and it’s getting harder and harder to keep an overview. Every day somewhere a disk is filling up, or an application crashes, or something else goes wrong.
At DN we have dozens of servers running. There’s our our web site, TeamCity (for CI/CD), BitBucket, monitoring tools, etc. After a while I was losing one or more hours every day to try to keep it all up ‘n’ running.
So how to fix it? We solved it by containerizing our applications and running them using a central container orchestrator called Marathon, combined with a great monitoring tool called Prometheus. It works great, and now I have a shiny clean dashboard where I can see all our running applications in a single place.
In a future post, I will elaborate on the details of our architecture.
Author Wout Neirynck is owner of Debreuck Neirynck and an experienced agile developer with strong focus on TDD