The aim of the video is to introduce the motivation and key concepts of cloud native applications.
- [Mario-Leander] In this section, I will give you an introduction to Cloud native applications and microservices. And this is what we're going to have a look at in this section. First of all, we will talk about some of the motivations for building Cloud native apps in the first place. Next, we will talk about some of the challenges and design principles associated with the concept of Cloud native apps. Then, we will introduce the Cloud native stack with its key technologies. And finally, we will talk about the decomposition of systems and applications using microsservices, so let's get started, then.
Motivations for Cloud native apps. So in this video, we are going to look at the following two points. First of all, we will talk about some of the motivations for building Cloud native apps in the first place. And then we will talk about the key three principles of Cloud native applications. So what exactly are Cloud native apps? Cloud native applications are applications that are designed and implemented to take full advantage of the uniqueness of the Cloud.
They are dynamic, they won't break, and they scale arbitrarily. So why do we need Cloud native applications? Well, hyerscale. We see a lot more traffic, we see a lot more data, we see a lot more devices, the applications, they have a lot more features, and we need a new type of applications that can handle all this scale.
Also, Cloud native applications are usually associated with the term "antifragility", so what does that mean? Well, it means that Cloud native applications don't break anymore. You remember those old MML thick applications, you know if they broke, the system was down. And with Cloud native applications, this is not the case anymore. If it breaks, maybe only certain parts of it break, but not the whole system goes down, and this is what antifragility means.
Next thing you usually associated with the Cloud native applications is continuous delivery and devops. So what we want with ever-changing business models is that we deliver new features and new functionality in our applications on a more frequent basis, and this can only be done with Cloud native applications. And then finally, Cloud native applications have something to do with something called Opex savings. Opex is the term for operational expenses.
So if you run applications in the Cloud, you usually only pay for those computer resources you actually use, so we don't waste expensive computer resources as you used to do when you had server farms. So what exactly are the three key principles associated with Cloud native applications? Well, they are built and composed as microservices, you've probably heard of that before. They are packaged and distributed in containers, and they are dynamically executed in the Cloud.
So this sounds all easy, right, only three key principles. But, Cloud native applications, they also come at a cost, and this is what we're going to cover in the next video, when we will talk about the challenges and design principles associated with the implementation of Cloud native applications, so I hope to see you there.
This course was created and produced by Packt Publishing. We are honored to host this training in our library.
- Implementing Go HTTP Server
- JSON marshalling and unmarshalling of Go structs
- Implementing a simple REST API
- Using Docker workflows and commands
- Building a naïve Docker image
- Running a containerized Go microservice
- Kubernetes architecture and concepts
- Deploying a Go microservice to Kubernetes
- Implementing service descriptors
- Performing rolling updates