Cloud native architecture relies on several essential technologies including containers, microservices, and open source software.
Microservices
With a cloud native approach, developers focus on creating specialized, single-function services known as microservices. Together, these small, individual units make up a complete application—but each one can be deployed, upgraded, and managed on its own. By treating microservices independently of each other, developers can focus on the fundamentals of each component's specialized functionality.
Containers
Cloud native applications need to be lightweight and portable, which is where containerization comes in. This method of operating system virtualization is often used to make microservices easy to manage. Unlike standard virtual machines, which require an embedded operating system, containers are designed to run anywhere and are not reliant on any one cloud platform or specific cloud service. When packaged in a container with all the resources it needs to run, a microservices architecture can be scaled quickly and independently of other microservices.
Open-source software
The containers that microservices run in are managed by platforms such as Docker and Kubernetes, the open-source software commonly used to automate the deployment and scaling of cloud native applications.
Application delivery controllers
Another key component of cloud native networking is the application delivery controller (ADC), which enables secure communication between the outside world and microservices. This component of cloud native technologies also secures traffic among microservices and provides load balancing to distribute application traffic and prevent bottlenecks. In addition, many organizations are moving beyond traditional application delivery controllers to leverage the benefits of cloud networking, where part or all of network resources are used in the cloud.