content_image/986499.jpg
You should expect to see this journey towards greater abstraction from the operating system too (as provided by containers). As shown in Figure 2-15, abstraction will continue to the point where you abstract the visibility of the language and product run times themselves, as in serverless computing or function-as-a-service (FaaS) . 

<img src='content_image/986499.jpg'>

We dedicate several sections to container technology in 2.7.2, “Cloud-native approach” on page 36, so for now we describe the cloud-native approach. 

## 2.7.2 Cloud-native approach 

Cloud-native  is a collection of common practices for creating agile, scalable, and resilient applications. Some of the key practices are: 

GLYPH<SM590000> Modular components 

GLYPH<SM590000> Stateless components 

GLYPH<SM590000> Image-based deployment 

GLYPH<SM590000> Lightweight run times 

GLYPH<SM590000> Elastic-neutral infrastructure 

GLYPH<SM590000> Log-based monitoring 

GLYPH<SM590000> API-led intra-app communication 

GLYPH<SM590000> Event-driven architecture 

GLYPH<SM590000> Agile methods 

GLYPH<SM590000> CI/CD 

GLYPH<SM590000> DevOps 

Chapter 4, “Cloud-native concepts and technology” on page 85 describes these concepts, so here we describe a common analogy that is used to articulate the behavior of components that are designed in a cloud-native style. 

