(Music) Welcome to Cloud Native Applications. After watching this video, you will be able to: Describe the difference between monolithic applications and cloud native applications, List the layers of the cloud native stack, Discuss the benefits of cloud native applications. Traditional monolithic applications, are built out of one piece of software; applications that tightly couple the user interface, business-logic layer, and data-layer. They rely on load balancing and stateful applications to spread user workloads across multiple servers, which makes them difficult to scale, and can result in a poor user experience if there are server outages. A cloud native application is an application designed and developed to leverage the advantages of cloud computing. A cloud native application consists of microservices working together as a whole to comprise an application, and can be easily scaled. These microservices are often packaged in containers, which are executable units of software in which the application code is packaged along with its libraries and dependencies so that it can be run anywhere. In a cloud native app, the application code is designed, built, and delivered very differently than it would be for conventional, monolithic apps. Examining the cloud native solution stack will help you to understand where each part of cloud app development takes place, and how it relates to other parts. Here are the layers of the cloud native solution stack. The cloud infrastructure layer defines the environment. Cloud native apps are developed for public, private, hybrid and multi-cloud environments. The scheduling and orchestration layer is all about control planes, like Kubernetes, Istio, and Knative. The application and data services layer is all about backing services and being able to integrate application code with existing services that may be available on other clouds, or even on-premise. This layer defines the application runtimes, traditionally, or conventionally, known as middleware and the Application Code layer holds the cloud native apps. So, what are the use cases for when to build a cloud native app? Well, Everything! Everything that exists in the cloud should have a cloud native app design and approach. This means that application code needs to be instrumented with things like: standardized logging, standardized events, a standard catalog that multiple microservices and cloud native apps can use to match those logging and events and standardized tracing for microservices. Everything that is standardized is something that development teams don’t have to do themselves, they can buy into a commoditized system. How is it that cloud native apps can actually leverage benefits like enabling innovation, business agility, and most importantly - from a commoditization of the cloud native solution stack? As time has passed and technologies have matured and emerged, many of the services are being refactored lower down in this stack. This means that core services can rely on standardized services, freeing up time and resources for innovation at the application code layer. The benefits of this commoditized stack for cloud native apps is the provision of enterprise and engineering at scale, so that Cloud App developers can focus on the functionality of their app, not it’s support system. In this video, you have learned: Monolithic apps are often stateful and rely on load balancing; they can be hard to scale. With monolithic apps, outages can result in a poor user experience. Cloud native apps use microservices that work together and can be individually scaled. The cloud native stack defines how cloud native apps are developed and the relationships between components services.