An introduction to CNAs

With containerization becoming popular in 2015, the term "cloud-native" was used to describe container-based environments used to develop applications that have been built with services that can scale independently from each other and run on an infrastructure provided by a cloud provider. With DevOps processes getting automated, CNAs became part of Continuous Integration and Continuous Delivery (CI/CD) workflows. CNAs are related to infrastructure resources such as compute, memory, network, and storage, which are abstracted and self-provisioned as opposed to manually deployed resources. 

One of the most popular cloud-native application development platforms is known as Red Hat OpenShift, a platform where we can focus on writing the business logic for the application. Containerization happens automatically, without having to write any code, while deployment (production or canary) occurs automatically through a CI/CD pipeline. 

The term cloud-native has evolved organically to signify an application in which the software development process is rapid. The application's deployment and scalability are fully automatic. The time to market is the essence of making CNAs. The platform, such as OpenShift, provides a set of services north-to-south that makes it possible for an application to become cloud-native. An application by itself is not cloud-native if the supporting services are not in place. Please refer to the following architecture diagram of CNAs for a more succinct explanation:

The preceding diagram shows that CNAs typically require a container runtime, which can be managed by an orchestration platform hosted on some infrastructure layer. 

There must be a platform that provides integrated services, which makes microservice development easier and takes the mystery out of container image development. The platform provides a natural automatic container image development for different languages to offer a polyglot microservices environment. For example, an organization may use Python, Java, Ruby, Go, and so on, and those can be tapped into in order to quickly build small and independent microservices to market a CNA. One such open source platform is OKD (https://okd.io), which provides a Source-to-Image (S2I) capability, which allows us to build container images direct from the source code and the CI/CD pipeline built into the platform for deployment and update processes.

CNAs, which sit on the top of the aforementioned services, are collections of loosely coupled microservices. Jankiram (https://thenewstack.io/10-key-attributes-of-cloud-native-applications) has defined 10 critical attributes of CNAs, as follows:

  • Packaged as lightweight containers
  • Developed with best-of-breed languages and frameworks
  • Designed as loosely coupled microservices
  • Centered around APIs for interaction and collaboration
  • Architected with a clean separation of stateless and stateful services
  • Isolated from server and operating system dependencies
  • Deployed on a self-service, elastic, cloud infrastructure
  • Managed through agile DevOps processes
  • Automated capabilities
  • Defined, policy-driven resource allocation

The preceding vital attributes require a container runtime. These are used for runtime isolation and software virtualization. We will explore this in the next section.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.12.71.237