Ever wanted to build massive, scalable, and performance-oriented cloud native applications that don’t crush under the demands of today’s customers? Well, look no further.
Embark on a journey like never before with Packt’s latest offering, Go: Building Cloud Native Go Applications
“Cloud native” has been the term du jour for quite some time now. As the world slowly moves towards the cloud, which promises lesser downtime, and more speed and efficiency, websites and applications that take full advantage of the capabilities of the cloud are dominating the world like never before, fast replacing monolithic web applications.
This Learning Path takes you on a journey to building fast, scalable cloud-based applications using Go, specifically, microservices in Go. We begin with learning about the basics of cloud-native applications. Then, we start learning about microservices, which form an integral part of applications that run on the cloud. We learn how to create simple microservices using the Go programming language. We then deploy our first application in the cloud using Kubernetes and Docker. Later, we cover topics such as service discovery and microservice communication in detail. Along the way, we will also be working with and learning to use a plethora of useful tools such as Kubernetes, RabbitMQ, Kafka, and Consul.
By the end of this Learning Path, you would have become skilled in creating seamless cloud-first applications and services using Go.
About The Author
Mario-Leander Reimer has been a chief technician at QAware since the beginning of 2014. He is responsible for the technical success of projects in the field of after sales for their customer BMW. He is a specialist in the design and implementation of complex system and software architectures based on open source technologies. As a member of the Java Community Process (JCP), his goal is to further improve the Java platform and to develop practical specifications. He is a speaker at international conferences and guest lecturer at Rosenheim University of Applied Sciences.
The aim of the video is to introduce the motivation and key concepts of cloud native applications.
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.
This video introduces the new concept and anatomy of ops components and discusses the decomposition trade-offs associated with microservices.
The development of cloud native applications brings along several challenges and complexities that need to be addressed. This videos introduces the Cloud native stack with its anatomy and key technologies to meet those challenges and presents the stack used throughout this course.
Every microservice needs an HTTP server to serve its API. The aim of this video is to show how this can be achieved with plain Go and standard packages only.
JSON is the de facto standard data transfer format for microservices and REST APIs. The aim of this video is to demonstrate how Go structs are marshalled and unmarshalled and how the JSON format can be customized using tags.
The aim of this video is to show how to leverage HTTP verbs, status codes, and URIs to implement a REST API that offers basic CRUD functionality.
Docker is a virtualization technology that operates at the OS level.Cloud native applications are packaged, distributed, and run as containers. The aim of this video is to teach the Docker basics required throughout this section.
Cloud native applications are packaged, distributed, and run in containers. Docker is a key container technology. This video shows how a Docker image for a Go microservice is built and distributed.
Cloud native applications are packaged, distributed, and run in containers. Docker is a key container technology. This video shows how a Docker containers for a Go microservicecan be run locally. It also shows how ENV variables, port mappings, and resource constraints can be specified.
Cloud native applications are packaged, distributed, and run in containers. Docker is a key container technology. This video shows how an improved Docker image can be built and how Docker Compose can be used to build and run the image in combination with other services.
Kubernetes is a cluster operating system used to run cloud native applications and microservices. The aim of this video is to give the audience a rough understanding of Kubernetes with its key concepts that are required this section.
In order to run a Docker container in Kubernetes we need to define a Pod. The aim of this video is to show how deploy and run a containerized Go microservice using Minikube on a local developer machine.
Kubernetes provides several high level abstractions to manage and access containerized applications: deployments and services. The aim of this video is to demonstrate how these abstractions can be declared and used in Kubernetes to run a small Go microservice.
Kubernetes is a sophisticated cluster operating system that supports many ops tasks out of the box. Theaim of this video is to show how Kubernetes deployments can be scaled horizontally and how rolling updates can be performed easily.
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.
The aim of this video is to provide an overview of the multitude of available Go microservice frameworks and application platforms.
The aim of this video is to put some of the Go frameworks and libraries into action and implement an advanced microservice.
Microservices need to be packaged, distributed, and run in containers. Docker is the key technology.
Cloud native applications require an orchestrator to run and operate the individual microservices. The aim of this video is to deploy and run a Go microservice with Kubernetes.
The aim of this video is to introduce Consul as an infrastructure component for service discovery and show its main functionality.
The aim of this video is to introduce Consul as central K/V configuration server and show its main functionality.
The aim of this video is to enhance the Go microservice with the service registration functionality using Consul.
The aim of this video is to implement a client service to perform a service lookup using Consul.
The aim of this video is to implement service discovery and configuration using the Kubernetes only functionality.
Synchronous calls as well as asynchronous messaging can be used for communication between microservices. The aim of this video is to discuss the challenges imposed by both communication patterns.
Microservice communication is often RPC-based. JSON is not very well suited here. Binary protocols such as ProtoBuf are a much more efficient way to implement RPC.
The aim of this video is to guard a synchronous microservice call using a circuit breaker library such as Hystrix to add resilience.
Message Queuing is a simple form of async communication. The aim of this video is to implement a simple work queue using Go and RabbitMQ.
Publish/Subscribe is another form of async communication. The aim of this video is to implement topic-based messaging using Go and Kafka.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.