These different functions can run in entirely separate, parallel software delivery pipelines – some fast and others slower – that completely decouple the design, development, testing, deployment, and monitoring of one service from that of all of the others. These architectural changes are a good thing. They help you move more quickly, be more flexible, and respond to your customers’ needs. This flexibility in turn means you can deliver software at a pace that fits your business. Our studies show that software developers who primarily deliver microservices are half again more likely to push code at least once per day as are those who do not.
Despite the many benefits of modern architectures, container monitoring and logging microservices can be extremely challenging. After all, deploying microservices, containers, and container orchestration tools such as Kubernetes vastly increases the amount of log data you produce. This is especially true if you deploy ephemeral containers, whereby you are constantly starting, stopping, and killing containers based on your service needs and scaling requirements. Regardless of how many services you are running at any given time, you still need to be able to monitor all of your microservices, preferably as a group and be able to aggregate them with logs from across your infrastructure and applications.