Cloud native applications have additional challenges compared to traditional monolithic applications. This video aims to discuss the design principles that should be taken into account when developing these kind of applications.
- [Instructor] Challenges and Design Principles. So in this video, we're going to take a look at the challenges that come with Cloud native application development, and the design principles of Cloud native apps. So let's get started. So what exactly are the design principles of Cloud native applications? Well first of all, Cloud native apps, they need to be designed for performance, they need to be responsive, they need to work on a concurrency, and they need to operate efficiently.
Usually this comes at a changed programming model like reactive programming, for example. They need to be designed for automation. Remember, one of the motivations for Cloud native applications was the dev ops and continuous delivery. So for this to come true, our applications need to be automated, and they should allow this automation of development tasks and operations tasks. Cloud native applications, they need to be designed for resiliency.
Remember, anti-fragility was the key word here. Those applications, they should not break. So they need to operate in the face of failure. They need to be fault tolerant and self-healing; designed for elasticity. So they need to dynamically scale up and down. Elasticity works in both ways, and they need to be reactive. Designed for delivery. Cloud native applications should make sure that you have short development round trips and short feature round trips so it can continuously deliver in small increments, and this delivery needs to be automated, and finally, it's designed for diagnosability.
Remember, Cloud native applications are usually a massively distributed system. So what you need are cluster-wide logs, traces, and metrics that help you diagnose your systems once things go wrong, and trust me, things will go wrong. So the next video, we will talk about the decomposition of Cloud native applications with Microservices. 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