Cloud native application development brings several complexities that need to be addressed. A cloud native application platform provides abstractions and APIs to tackle these complexities and help during the development.
- [Leander] Hi, and welcome to Advanced Cloud Native Go. My name is Leander Reimer, and I'm happy to be your host. This section of the course is all about Go Microservice Frameworks, and this is what we will learn throughout this section. First of all, I will give an introduction to the concept with cloud native application platforms, and I will give you an introduction to different Go microservice frameworks which we will be using throughout this course.
Next up, we will implement an advanced REST service using the Gin web framework. Basically, this is a revamp version of the REST service we implemented. Next up, we will learn about containerization. We will write a Docker file for advanced Go microservice and containerize our service. Then, we'll talk about composition, and we will be using Docker compose to build and run our microservice locally. And last, but not least, we'll talk about orchestration.
We will deploy our microservice, and we'll deploy the Docker container within Kubernetes, and we're going to scale it up and down, and we will access our microservice. This is a lot of ground to cover. Let's get started. The anatomy of a cloud native application platform. In this video, we're going to take a look at the basic building blocks of a cloud native application platform.
I will show you the key functions, and the key functionality of such a platform, and I will introduce you to some key technologies from the cloud native landscape. Let's get started then. So, what you see here is the basic anatomy of a cloud native application platform. What are all the building blocks and functions of this platform? When the center, you have something called a microservice chassis, and this component is concerned with the execution of your microservices.
In here you have something called service client. The service client is used to call other end points in your resilient and responsive manner. This is important in any microservice architecture where your microservices communicate with each other. Also required, is something called a service discovery. This building block is concerned with the exposition of service endpoints. So microservices register here and expose the endpoints, and client applications, and go here and find service endpoints using a name.
Here at the bottom, you have a building block called configuration and coordination. This one is used to provide cluster-wide configuration and consensus. Also important in any distributed application where you don't want to hard code any essential configuration values or stage dependent values within your microservice. We need to externalize those configuration values to some central cluster-wide configurations door. Up here is something called an API gateway.
This one is concerned with the access to your endpoints from the outside world. You don't want the rest of the internet to access all of your endpoints within your service based application. What you do here in an API gateway is usually do some authorization, authentication, and traffic management. Last, but not least, you have to diagnose ability and monitoring. This is really essential in any distributed application.
This building block is concerned with the detection and the resolution of operational anomalies, so you have cluster-wide logging, you have metrics, and you have traces here, which is essential to find all the errors in any distributed system. Now, what can you use for those different building blocks, and here are a few examples. And as you can see, this is a whole variety of different icons here which you could use. Okay? I don't expect you to know all of them, and it's important for you as a developer and architect, to make up your own cloud native application platform, and compose your specific cloud native application platform from one of those components.
Maybe for service discovery, you use console. And maybe you also decide to use console for configuration and coordination. As a microservice chassis, you can use a Go based microservice framework which we'll talk about in the next video. As an API gateway, maybe you choose traffic. And for diagnosability and monitoring, you may be using the Elk stack, Prometheus, or Zip for example. Of course, those are only a few infrastructure components you can use.
For further reference, please have a look at the cloud of native computing foundation, could native landscape. You will find this on the GitHub URL here at the bottom right of the page. This is updated regularly and consists of several infrastructure components you can use in your cloud native stack, and for your cloud native application platform. Next up on the next video, I will give you an overview of different Go microservice frameworks and libraries.
This course was created and produced by Packt Publishing. We are honored to host this training in our library.
- Cloud native application platforms
- Go frameworks and libraries for microservices
- Using Docker for containerization
- Using Kubernetes for orchestration
- Using Consul for microservice discovery and configuration
- Registration and lookup
- Implementing service discovery using Kubernetes
- Microservice communication patterns: Sync and async
- Using circuit breakers for resilient communication
- Implementing message queuing with Rabbitmq
- Using Apache Kafka for publish/subscribe