Hi everyone. Welcome to the fifth chapter in our Tencent Cloud Developer Associate course, designing and developing Cloud Native applications. At the end of this chapter, you'll be able to understand the evolution of Cloud Native Computing, understand the concepts of Cloud Native Computing, understand the key technologies for building Cloud Native Architecture, and understand the strengths of Cloud Native Applications. In this chapter, we'll cover two sections, overview of Cloud Native and key technologies for Cloud Native Architecture. Let's get started with Section 1, overview of Cloud Native. In this video, we'll cover the evolution of Cloud Native and introduce the concept of Cloud Native. First, let's talk about the evolution of Cloud Native. For any type of application development, we can approach it using three-dimensions; system resources that we used to develop and deploy applications, the process of application development, and the application itself. With the use of Tencent Cloud resources such as Cloud Virtual Machine, CVM, Cloud Load Balancer, CLB, auto-scaling, Tencent DB for MySQL, Tencent DB for MongoDB, the Cloud Objects Storage, COS, enterprises can lower their costs and improve their system capacity. As enterprises business grows and their number of users rise, the time-to-market requirements for development are becoming more demanding and a failure to meet them may impact their business. If enterprises continue to develop monolithic architectures, their business will not be able to keep up with market changes. To achieve true Cloudification, both the application itself and the application development practices must be changed in order to leverage the auto-scaling capabilities of the Cloud, such as application architecture, development methods, and deployment and operating models. If you look at the evolution of application development in terms of system resources, you can see that we've moved away from building our own operating systems to virtualization. Thereafter, the industry has moved towards using containers as a new method to package application system resources. As a form of implementing operating system visualization containers allow developers to bundle all the necessary executables, binary code, libraries, and configuration files together. Now we're able to manage hundreds of thousands of containers using Kubernetes. In terms of application architecture, the prevailing trend is a movement away from monolithic architecture towards a service-oriented architecture, SOA, with the newest development being a microservice architecture for Cloud Native Applications. Application development lifecycle management has evolved from a traditional waterfall development model that requires clearly defined steps to continuous integration, CI, continuous delivery, CD, and continuous operation, CO. Today, Kubernetes microservice architecture and CI, CD, and CO, are the three technologies used in Cloud Native Application development. With the continuous development of Cloud platforms, application architectures should be gradually evolved to adapt to Cloud platforms and make full use of their capabilities. How could applications in the Cloud be adapted to existing Cloud computing architectures? In response to this question, the concept of Cloud Native was born. In 2013 Matt Stein at Pivotal proposed the concept of Cloud Native. Later in 2015, the Cloud Native Computing Foundation, CNCF, was founded as part of the non-profit Linux Foundation. It's key goal is to drive adoption of the Cloud Native paradigm by fostering and sustaining an ecosystem of open source and vendor neutral projects. CNCF hosts open-source projects including Kubernetes, Prometheus, Helm, Jagger, and many other critical components of the global technology infrastructure. This image is a Cloud Native trail map that showcases the Cloud Native landscape that consists of 727 members, with Tencent Cloud being included in the public Cloud service provider section. What is Cloud Native? In simple terms, Cloud Native means designed for the Cloud. Cloud Native technologies encompass the three concepts of Cloud Computing. Infrastructure as a Service, IaaS, or Platform as a Service, PaaS, and Software as a Service, SaaS. At the IaaS layer, Agile infrastructure is used to provide basic system resources. These resources are programmable and can provide services through APIs. Combining different business capabilities does not necessarily have to be done from scratch. Since some software only needs Cloud resources to provide services for Cloud users, which are also known as SaaS capabilities. In contrast, some other applications use past capabilities. At the management level, Cloud Native is a combination of continuous delivery and DevOps. Today's enterprises require faster iteration and response to market changes and Cloud Native Applications can address this through Agile development and microservice architectures. Businesses also need applications that can scale. Luckily, containers, auto-scaling AS and Cloud Load Balancer, CLB, can handle peak and off-peak traffic and microservice architectures offer high reusability and application component decoupling and support development in multiple programming languages.