Cloud Native

What is cloud native?
In a broad sense, cloud native refers to a way of building and running applications so that they can make maximum use of the benefits of the cloud.
If applications in existing systems could not use 100% of the benefits of the cloud, then adopting microservice architecture and introducing technologies and tools such as containers and Kubernetes, along with DevOps and agile methodologies, can greatly increase developer productivity, business agility, scalability, availability, and cost savings.
To do this, changes are needed across applications, architecture, infrastructure, and development processes. This article looks at the direction of those changes and what it means to use the cloud natively.
Changes in service servers
- Until 2000: physical servers
- Operated monolithic applications.
- There were not many physical servers, and servers were managed one-to-one.
- 2001-2009: first generation of virtualization technology
- Replaced real systems with virtual machines.
- The goal was to increase consolidation and efficiency, while multicore servers and virtualization technology spread.
- Container technology emerged as an alternative to virtualization.
- 2010-2015: second generation of virtualization technology, the cloud era
- Cloud proved suitable and scalable for large-scale services.
- Technologies for managing large-scale infrastructure stably also spread.
- 2010-2015: cloud native generation
- The Cloud Native Computing Foundation (CNCF), officially launched in January 2016, aims to solve real cloud technology problems through open source.
- Provides optimal infrastructure needed to run applications.
- Delivers what was developed immediately and reliably.
What is CNCF?
The Linux Foundation, which first used the term Cloud Native in 2015, created the CNCF (Cloud Native Computing Foundation) to promote and manage open source technologies that enable a transition to cloud native. More than 550 cloud providers and technology companies participate in the foundation, and it defines cloud native as follows.
- It enables building and running scalable applications in public, private, and hybrid cloud environments.
- Containers, service meshes, microservices, immutable infrastructure, and declarative APIs are typical approaches.
- It enables loosely coupled systems that are resilient, manageable, and observable.
- When combined with robust automation, engineers can make high-impact and predictable changes with minimal effort.
CNCF cloud native definition: https://github.com/cncf/toc/blob/master/DEFINITION.md
Key four elements for cloud native can be summarized as follows.

Reference: Chirag Jog’s Blog
-
DevOps
A process that automates collaboration between application development and operations, ultimately increasing the speed of application development and improvement. -
CI/CD
Continuous Integration automatically tests code written by developers and integrates code that passes tests.
Continuous Deployment means that written code and changes are tested, uploaded to a repository, and automated through release to real service deployment. -
Container-based infrastructure
A virtualization technology that virtualizes packaged computing work capable of running applications, rather than virtualizing an entire system. -
Microservices
An architecture that breaks the services composing an application into small independent units and allows each component to communicate over a network, supporting service stability and scalability.
Application value of cloud native
-
Fast iteration
Using cloud-native application development means providing individual and reusable capabilities that are integrated in a well-defined way across technical boundaries such as multicloud, using agile and scalable components such as containers represented by Kubernetes. Fast iteration is achieved through repeated automation and orchestration. -
Automated deployment
The cloud-native approach is far superior to traditional virtualization-oriented business processes, which require significant effort to build heterogeneous environments different from the development environment in the software delivery process. Cloud-native architecture is characterized by automation and configuration, and it relies on trusted, verified, and audited known-good processes to provide agile delivery without repeated human intervention. -
Independent and efficient
Cloud native brings microservice-based architecture. Microservices are application services that can be released independently, so they can be upgraded, rolled out gradually, or reused as independent components, with less impact on the entire large application. Once input and output ports are determined, trusted parties can evolve sufficiently, and the overall team organization becomes simpler, reducing communication cost and increasing efficiency.
References
- Cloud Native Applications — The Why, The What & The How. | Chirag Jog’s Blog
- 클라우드 네이티브란? | CLOUDMATE
- openmaru