Chapter 2. Challenges of Cloud Native Architecture

Cloud native architecture is a design methodology that utilizes cloud or cloud-like services to allow dynamic application development techniques that take a modular approach to building, running, and updating software through a suite of microservices rather than a monolithic application infrastructure. In the beginning, developers were limited to services provided by actual cloud providers. Meanwhile, cloud native technologies have evolved and are available for on-premises systems and even developer workstations to make them more accessible and reduce friction in the development lifecycle. Containers have become the biggest enabler of this trend, allowing developers to build and package software on their workstations while being assured that their containers will run in Docker or Kubernetes on any cloud native infrastructure. Gone are the times of “it works on my machine.”

My personal cloud native journey already began when I discovered Docker but really accelerated once I started working with Kubernetes. As outlined in the previous chapter, operating Kubernetes and successfully running applications on top of it requires a different understanding of how things work together. The new level of abstraction developers and operators have to wrap their heads around is also important for the understanding of Portainer’s features and their reasoning behind specific implementations. Since everything is far more “distributed” and “decoupled” ...

Get What Is Portainer? now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.