Home Explore Blog CI



kubernetes

3rd chunk of `content/en/blog/_posts/2018-03-00-Principles-Of-Container-App-Design.md`
424eeb8edb8301f067378828aa54b351fe41f00ea4bf2954000000010000083e
  |
| Container Design Principles |


These seven principles cover both build time and runtime concerns.  

####  Build time

* **Single Concern:** Each container addresses a single concern and does it well.
* **Self-Containment:** A container relies only on the presence of the Linux kernel. Additional libraries are added when the container is built.
* **Image Immutability:** Containerized applications are meant to be immutable, and once built are not expected to change between different environments.

####  Runtime

* **High Observability:** Every container must implement all necessary APIs to help the platform observe and manage the application in the best way possible.
* **Lifecycle Conformance:** A container must have a way to read events coming from the platform and conform by reacting to those events.
* **Process Disposability:** Containerized applications must be as ephemeral as possible and ready to be replaced by another container instance at any point in time.
* **Runtime Confinement:** Every container must declare its resource requirements and restrict resource use to the requirements indicated.
The build time principles ensure that containers have the right granularity, consistency, and structure in place. The runtime principles dictate what functionalities must be implemented in order for containerized applications to possess cloud-native function. Adhering to these principles helps ensure that your applications are suitable for automation in Kubernetes.

The white paper is freely available for download:   


To read more about designing cloud-native applications for Kubernetes, check out my [Kubernetes Patterns][3] book.

Twitter: 
  
Blog: [http://www.ofbizian.com][5]  
Linkedin:

Bilgin Ibryam (@bibryam) is a principal architect at Red Hat, open source committer at ASF, blogger, author, and speaker. He is the author of Camel Design Patterns and Kubernetes Patterns books. In his day-to-day job, Bilgin enjoys mentoring, training and leading teams to be successful with distributed systems, microservices, containers, and cloud-native applications in general.


Title: Container Design Principles: Build Time vs. Runtime
Summary
This section elaborates on the seven container design principles, categorizing them into build time and runtime concerns. Build time principles include Single Concern, Self-Containment, and Image Immutability, focusing on granularity, consistency, and structure. Runtime principles are High Observability, Lifecycle Conformance, Process Disposability, and Runtime Confinement, dictating functionalities for cloud-native applications. Adhering to these principles ensures applications are suitable for automation in Kubernetes. The white paper is available for download, and additional resources are provided, including a book on Kubernetes Patterns and contact information for Bilgin Ibryam, a principal architect at Red Hat.