Learn how to use microservices in Go for server-side development.
- [Mario-Leander Reimer] Hi, and welcome to Cloud Native Go. A video course by Packt Publishing. My name is Leander Reimer and I'm happy to be your host. Before I briefly talk you through the contents of this course, let me briefly introduce myself. I'm a chief technologist and I do work for QAware. We are a small software project house located in Munich Germany. For the last years I've been an architect and also a developer and I do now have, well, more than 20 years of programming experience.
I'm an author and I'm also a speaker at international and national conferences. You can follow me on Twitter, on @LeanderReimer and I'm a total Cloud Native nerd. And if you're interested in some of the code, well here is my Github URL and you'll find some interesting code there maybe. So let me give you a brief overview of this course. This course called Cloud Native Go. Well, we have a lot of content to cover and this is the roadmap.
First I will talk you through the motivations and challenges that are associated with the development of cloud native applications. I will then introduce you to the cloud native stack we're going to use throughout this course and this stack has three main components. We will use Go at the application layer, we will use Kubernetics at the scheduling and orchestration layer and we will use Docker at the containerization and virtualization layer.
We will start off with the development of a simple microservice in Go. And we will be using only Go internal libraries. We will be developing a small HTTP server. I will show you how you can do well JSon marshaling and unmarshaling. And we will then develop a very simple book rest API. In the next section, we will then take this microservice and containerize it using Docker. I will give you a brief introduction to Docker, I will show you the basic Docker workflow and the basic commands you have to use on the command line.
I will also show you how you can use Docker compose well, to compose your microservice with maybe a few other containers. And in the final section, I will then introduce you to Kubernetics and I will show you how you can orchestrate your simple Go microservice with this well very hip tool at the moment. So we will deploy our microservice in Kubernetics. I'll show you how you can scale it horizontally, I will show you how we do labels, I will also show you how you can do a rolling upgrade of your Go microservice.
So this is a lot of ground to cover, I hope you will enjoy it. So here are a few pre-requisites. So I assume that you do know the Go programming language and you have basic skills and knowledge. Of course I also assume that you have a working Go language installation on your computer and it doesn't matter if you're developing on the Windows or on the Mac or Linux. Also you should be using an IDE with Go support such as Visual Studio Code or IntelliJ.
You will also have to use the Docker toolbox or Docker Native. So make sure you have that installed on your local computer. And finally, you should have Minikube and Kubectl installed for the last section. So you know what which tools we're going to use. We have a lot of interesting stuff to cover. I hope you will enjoy this course and I hope to see you soon.
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