## 4.1 Defining cloud-native 

Cloud-native concepts existed before the term itself came into use. The beginning of cloud-native was when public cloud vendors began providing easy and affordable access to elastic instances of compute power. How can you write applications to capitalize on the flexibility of this new infrastructure, and what business benefits can you achieve? 

Cloud-native methods and technology are still evolving, but the core business objectives that cloud-native applications set out to achieve remained the same. The business benefits of cloud-native are: 

GLYPH<SM590000> Agility: Enable rapid innovation that is guided by business metrics. 

GLYPH<SM590000> Resilience: Target continuous availability that is self-healing and downtime-free. 

GLYPH<SM590000> Scalability: Provide elastic scaling and limitless capacity. 

GLYPH<SM590000> Cost: Optimize the costs for compute and human resources. 

GLYPH<SM590000> Portability: Enable free movement between locations and providers. 

Note that the “cloud” in cloud-native refers to the public cloud and the infrastructure that is rapidly self-provisioned, elastically scalable, and has apparently limitless capacity. 

Cloud-native solutions may be built on-premises or in dedicated environments, but it is the cloud-based approach to platform provisioning that is important. 

Important:  Microservices are associated with cloud-native, but they are not equivalent. Microservices architecture is a concrete example of how to build applications in a cloud-native style. 

A key reference is the principle of 12-factor applications. Although the 12 factors make no claim to be all encompassing guidelines for cloud-native, they are one of the earliest examples of how to write applications with a cloud-native intent. 

“The twelve-factor app is a methodology for building software-as-a-service (SaaS) apps that: 

GLYPH<SM590000> Use declarative  formats for setup automation, to minimize time and cost for new developers joining the project; 

GLYPH<SM590000> Have a clean contract  with the underlying operating system, offering maximum portability between execution environments; 

GLYPH<SM590000> Are suitable for deployment  on modern cloud platforms , obviating the need for servers and systems administration; 

GLYPH<SM590000> Minimize divergence  between development and production, enabling Continuous Deployment for maximum agility; 

GLYPH<SM590000> And can scale up  without significant changes to tooling, architecture, or development practices.” 1 

Despite its age (2011), this list encapsulates many of the key concepts and guidelines for cloud-native, and the 12 factors themselves still have relevance even if the specific terms we use have evolved in the past few years. It is a useful backdrop, and we describe the 12 factors in 4.3, “Twelve-factor apps” on page 100. 

We should recognize the importance of contributions from early adopters in cloud-native. 

