Learning Path: Go: Building Cloud Native Go Applications
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
33 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Path: Go: Building Cloud Native Go Applications to your Wishlist.

Add to Wishlist

Learning Path: Go: Building Cloud Native Go Applications

Unleash the power of Go Microservices to build blazing-fast scalable applications
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
33 students enrolled
Created by Packt Publishing
Last updated 8/2017
English
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 4 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Design and architect cloud native applications
  • Learn all about Go microservices
  • Containerize and orchestrate Go microservices using Docker and Kubernetes
  • Learn to use Consul for microservice discovery
  • Implement asynchronous communication in Go using RabbitMQ as well as Kafka
View Curriculum
Requirements
  • Basic knowledge of the Go programming language.
  • Basic knowledge of web services and web programming would be beneficial.
Description

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.


Who is the target audience?
  • The target audience for this Learning Path primary includes Go developers interested in learning to leverage the effectiveness of the Go programming language to build world-class and highly performant cloud native applications.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
32 Lectures
03:58:52
+
Getting started with Cloud Native Go
16 Lectures 02:04:06

This video gives an overview of the entire course.

Preview 04:13

The aim of the video is to introduce the motivation and key concepts of cloud native applications.

Motivation for Cloud Native Apps
03:57

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.

Challenges and Design Principles
02:32

This video introduces the new concept and anatomy of ops components and discusses the decomposition trade-offs associated with microservices.

Decomposition with Microservices
03:41

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.

Introduction to the Cloud Native Stack
04:39

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.

Preview 07:40

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.

JSON Marshalling/Unmarshalling of Go Structs
09:26

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.

Simple REST API Implementation
11:53

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.

Preview 09:21

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.

Build Naïve Docker Image for Go Microservice
07:22

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.

Running Containerized Go Microservice Locally
08:38

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.

Improved Docker Image and Docker Compose
07:59

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.

Preview 12:01

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.

Deploy a Go Microservice to Kubernetes Locally
10:47

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.

Implement Deployment and Service Descriptors
09:39

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.

Scale Deployments and Perform Rolling Updates
10:18
+
Advanced Cloud Native Go
16 Lectures 01:54:46

This video provides an overview of the entire course.

Preview 04:02

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.

Anatomy of a Cloud Native Application Platform
05:43

The aim of this video is to provide an overview of the multitude of available Go microservice frameworks and application platforms.

Overview of Go Microservice Frameworks and Libraries
07:31

The aim of this video is to put some of the Go frameworks and libraries into action and implement an advanced microservice.

Advanced Go Microservice Implementation
09:36

Microservices need to be packaged, distributed, and run in containers. Docker is the key technology.

Containerization and Composition with Docker
08:51

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.

Microservice Orchestration with Kubernetes
09:25

The aim of this video is to introduce Consul as an infrastructure component for service discovery and show its main functionality.

Preview 08:17

The aim of this video is to introduce Consul as central K/V configuration server and show its main functionality.

Using Consul for Central Microservice Configuration
04:53

The aim of this video is to enhance the Go microservice with the service registration functionality using Consul.

Implement Go Microservice Registration with Consul
08:29

The aim of this video is to implement a client service to perform a service lookup using Consul.

Implement Go Microservice Lookup with Consul
05:41

The aim of this video is to implement service discovery and configuration using the Kubernetes only functionality.

Implement Service Discovery and Configuration with Kubernetes
08:04

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.

Preview 05:40

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.

Implement Sync RCP calls with Binary Protocols
07:10

The aim of this video is to guard a synchronous microservice call using a circuit breaker library such as Hystrix to add resilience.

Using Circuit Breakers for Resilient Communication
05:28

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.

Implement Message Queuing with RabbitMQ
07:38

Publish/Subscribe is another form of async communication. The aim of this video is to implement topic-based messaging using Go and Kafka.

Implement Publish/Subscribe with Apache Kafka
08:18
About the Instructor
Packt Publishing
3.9 Average rating
8,109 Reviews
58,282 Students
686 Courses
Tech Knowledge in Motion

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.