Let’s dig a bit deeper and explore the use cases and benefits of designing, developing, and running applications using Cloud Native principles and techniques along with describing in more detail some of the popular open, cloud native technologies and projects that can be employed to achieve cloud native’s goals. If we ask the question “what use cases should be developed as cloud native applications?”, the answer is simple. Everything; that is, every application that is intended to run “in the cloud” should be designed and developed as Cloud Native. Let’s take look at what makes up the layers of a modern cloud solution stack that developers of Cloud Native applications can take advantage of along with some of the common technologies used to implement them. At the foundation, we have the Cloud infrastructure layer with the various Compute, Network, and Storage resources offered as elastic services on public, private, and hybrid clouds. These infrastructure resources are then used by a management and control plane that simplifies the Scheduling and Orchestration of application workloads as well as scaling them up or down. For Container workloads, this typically includes an open management platform like Kubernetes as well as higher-order open management platforms like OpenShift that build on top of it. Then we have an Application & Data services layer which is all about providing backing platform services that can be integrated into our application code. Which are often Cloud Native Services themselves built on Kubernetes and provide technologies like: Istio for Service Mesh facilitating microservice communication, and Knative for simplifying the build, configuration, and deployment of Containerized applications as well as providing Serverless capabilities. This layer often has many other discoverable services typically offered via the cloud provider’s service catalog. Some of these services may even be integrated from other clouds or service providers. This is also the layer where standardization and commoditization is rapidly occurring. Above these Cloud layers, we have the application runtime, or what is conventionally known as middleware. At the top, we have the Application Code which is actually designed, built, and delivered very differently for cloud-native than it would be for conventional, monolithic applications. Cloud native applications are built using microservices often packaged in Linux containers. Both the application code is often packaged with application runtime into the Container. As time has progressed and technologies have matured and emerged, a lot of the services that were traditionally part of the Application Runtime layer are actually being re-factored lower down in this stack. They become part of the Application and Data Services layer managed and operated by the Cloud provider thereby becoming commoditized. Including such things as load balancing, API management, and logging. This means that many core services are starting to have a lower center-of-gravity, reducing developer responsibility for them and freeing up innovation within the Application code itself. Another benefit from this reduction of the Application Runtime, as a tightly-coupled part of the application, is that it can lead to smaller Container images which are faster to build, easier to test, and scale more rapidly. Cloud Native Applications have several benefits when looking at how they designed, developed, and run, as compared to traditional or monolithic applications; they include: Innovation Innovation is intrinsic to the cloud native development process which embraces change and can keep up with the speed demanded by today’s business environment. The cloud native process encourages new features or improvements that can be made non-intrusively, causing no downtime or disruption of the end-user experience. Agility Agility is achieved using automation to build and deploy each microservice that comprises a cloud native application quickly providing continuous improvement. Additionally, each microservice can be independently scaled rapidly to meet customer demand in precisely the functions that need it at any given time. Commoditization Along with those services already described as part of the Cloud Application and Data Services layer, additional standardization is continually happening around common Operational and Business Informational Services with Open APIs leading to even further commoditization over time. These services can easily be built from open-source projects and made available as part of a cloud provider’s ever-expanding service catalog. Where integration lowers per-application costs for these shared services. This also allows developers to easily integrate the latest, value-add services such as data analytics and business intelligence into their applications or operational ones like logging, metrics, and security compliance. While having the flexibility to find the lowest cost provider for each of these services preventing lock-in. You should now be familiar with: Cloud Native use cases, The Cloud Native application stack, Cloud Native technologies used within the stack, Major benefits of Cloud Native applications.