The promise of Microservices, the challenge of Containers
It is 2018, and microservices architecture needs no introduction. By breaking down their applications into parts defined as interacting services, developers around the globe (as well as their users!) are enjoying increased application flexibility and resilience, greater agility, and improved performance, amongst other benefits.
To fulfil the promise of microservices, containers have been the go-to infrastructure primitive. Containers have been the future for a few years now, and while in the past few years there has been consolidation around areas such as orchestration (Kubernetes) and monitoring (Prometheus), much of the rest is still evolving. This industry has, some argue, only just crossed the chasm.
On the infrastructure layer, if you are already running on a major cloud provider, you are a couple of clicks away from having your own containerized cluster—managed, serviced, and billed by the minute. The benefits are clear to operators: single-configuration servers (no more “snowflakes”), built-in high availability and resilience, and improved resource utilization, to name just a few. Just like virtualization and cloud, this can be a beneficial technology evolution that helps operators move the organization forward, without challenging the way they work.
But the fact that it can be so, doesn’t mean it will be. The reason is that, unlike previous waves of innovation, Kubernetes forces developers and operators to share the same world view through the API, which is exposed to both parties. Developers can now have more influence over the running environment, improved control over libraries and dependencies, and a narrower gap between production and development environments—but can operators live with that?
Kubernetes is a project built by system engineers for system engineers. In the end, it is up to good practice, based on sound knowledge, to make that into successful software delivery. As countless developers and operators have found out, it is highly advisable to get help on the journey.