Learn step by step how to build, enhance, and deploy microservices to the cloud using Go.
(typing) - Hi and welcome to Advanced Cloud Native Go, a course by Packt Publishing. My name is Leander Reimer and I'm happy to be your host. So before we dive into the details of this course, let me briefly introduce myself. I am a chief technologist working for QAware in Munich Germany, a small software project house building individual software for large German enterprises.
I am a passionate developer and architect with more than 20 years of programming experience. I am a regular author and speaker at conferences on topics of general software engineering and Cloud-Native application development. I am a total Cloud Native nerd and you can also find me on Twitter. Also you will find me on GitHub where you will find several example source repositories free for you to try out. So let me give you an overview of this course.
So this is what we'll learn. First of all we will have a look at different Go frameworks. I will give you an overview and show you some example usages of Go microservice frameworks and libraries. This is important because if you want to build Cloud Native applications productively, you don't want to build everything from scratch right? So you need some kind of high-level framework and library. Next up we will talk about the containerization and orchestration of Cloud Native applications.
So I will show you how you can package and run the microservices with Docker and Kubernetes. So those two tools are basically the Swiss Army Knife of every Cloud Native application developer. Next up we'll talk about service discovery. Service discovery is a key ingredient in any distributed system. I will show you how you can register and look up your services using infrastructure components such as Consul and obviously also Kubernetes.
Next thing will be configuration. Its best bad practice to hard code any configuration values within your microservices. So what you usually do is to externalize those configuration values. So here I will show you how you can externalize the configuration using Consul and Kubernetes again. And finally we need to talk about communication all right? In any microservice architecture, there is communication going on.
And I will introduce you to the two main patterns: synchronous and asynchronous communication. We will implement some synchronous communication using remote procedure codes and binary protocols for example, and we will also implement asynchronous message-based communication using cues and topics. So this is a lot of ground to cover. So what do we need to bring along for this course? So first of all, you need basic programming skills and knowledge in the Go language.
I will do the development using Windows 10, but any modern operating system like mac OS or Linux is fine also. Obviously you need a working Go language installation. Also use an IDE of your choice with good and decent Go support such as Visual Studio Code or Gogland from JetBrains. Also you need to have the Docker toolbox or Docker native installed on your computer. And finally, you need to have a local Kubernetes installation using Minikube.
So that's about it. Make sure you have got everything installed before you start with the different sections of this course. I hope you are as excited as I am and I hope to see you in the next section and the first video. Bye bye.
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