Udemy

Working with Microservices in Go (Golang)

Enroll Now
  • 27,193 Students
  • Updated 6/2024
4.7
(3,022 Ratings)
CTgoodjobs selects quality courses to enhance professionals' competitiveness. By purchasing courses through links on our site, we may receive an affiliate commission.

Course Information

Registration period
Year-round Recruitment
Course Level
Study Mode
Duration
11 Hour(s) 33 Minute(s)
Language
English
Taught by
Trevor Sawler
Rating
4.7
(3,022 Ratings)
5 views

Course Overview

Working with Microservices in Go (Golang)

Build highly available, scalable, resilient distributed applications using Go

For a long time, web applications were usually a single application that handled everything—in other words, a monolithic application. This monolith handled user authentication, logging, sending email, and everything else. While this is still a popular (and useful) approach, today, many larger scale applications tend to break things up into microservices. Today, most large organizations are focused on building web applications using this approach, and with good reason.

Microservices, also known as the microservice architecture, are an architectural style which structures an application as a loosely coupled collection of smaller applications. The microservice architecture allows for the rapid and reliable delivery of large, complex applications. Some of the most common features for a microservice are:

  • it is maintainable and testable;

  • it is loosely coupled with other parts of the application;

  • it  can deployed by itself;

  • it is organized around business capabilities;

  • it is often owned by a small team.

In this course, we'll develop a number of small, self-contained, loosely coupled microservices that will will communicate with one another and a simple front-end application with a REST API, with RPC, over gRPC, and by sending and consuming messages using AMQP, the Advanced Message Queuing Protocol. The microservices we build will include the following functionality:

  • A Front End service, that just displays web pages;

  • An Authentication service, with a Postgres database;

  • A Logging service, with a MongoDB database;

  • A Listener service, which receives messages from RabbitMQ and acts upon them;

  • A Broker service, which is an optional single point of entry into the microservice cluster;

  • A Mail service, which takes a JSON payload, converts into a formatted email, and send it out.

All of these services will be written in Go, commonly referred to as Golang, a language which is particularly well suited to building distributed web applications.

We'll also learn how to deploy our distributed application to a Docker Swarm and Kubernetes, and how to scale up and down, as necessary, and to update individual microservices with little or no downtime.

Please note that this course requires you to download Docker Desktop from Docker. If you are a Udemy Business user, please check with your employer before downloading software.

Course Content

  • 10 section(s)
  • 131 lecture(s)
  • Section 1 Introduction
  • Section 2 Building a simple front end and one Microservice
  • Section 3 Building an Authentication Service
  • Section 4 Building a Logger Service
  • Section 5 Building a Mail Service
  • Section 6 Building a Listener service: AMQP with RabbitMQ
  • Section 7 Communicating between services using Remote Procedure Calls (RPC)
  • Section 8 Speeding things up (potentially) with gRPC
  • Section 9 Deploying our Distributed App using Docker Swarm
  • Section 10 Deploying our Distributed App to Kubernetes

What You’ll Learn

  • Learn what Microservices are and when to use them
  • How to develop loosely coupled, single purpose applications which work together as a distributed application
  • How to communicate between services using JSON, Remote Procedure Calls, and gRPC
  • How to push events to microservices using the Advanced Message Queuing Protocol (AMQP) using RabbitMQ
  • How to deploy your distributed application to Docker Swarm
  • How to deploy your your distributed application to a Kubernetes Cluster

Reviews

  • K
    Kevin Toledo
    5.0

    Exelent course on microservices. Coming from a monolithic experience up until now and understanding the basics of web development this course cuts unnecessary stuff and teaches the fundamentals of working with multiple services

  • R
    Rajaramkrishna Potdar
    3.0

    Very small text, due to high resolution set to monitor.

  • G
    Greg Yeomans
    4.5

    This is my second GO course taught by Trevor Sawler. He seems very knowledgeable about the language. While I didn't notice any glaring issues with the course as I did the "Building Modern Web Applications with Go (Golang)" course, I do wish he would include more comments within the code to help further clarify what the code is doing. While he does seem to explain what the code is doing...that's fine during the session lecture, but if you come back to the code sometime after taking the course, unless you are able to engross yourself in the language it would be easy to forget what is happening at the line level of code, much less what each function may be doing. I have always heard the code comments are a must, but they are lacking in both of these courses. IMHO! One other minor nitpick, I wish that at least one JSON, RPC, and gRPC call was functional within the finished product to maintain those examples. Otherwise good course.

  • A
    Adnan Arabadzhi
    3.0

    Although microservices is a vast field, this course could cover more technical knowledge and in depth explanations while half of the lectures here are copy pasting. Not a waste of time but I am disappointed honestly

Start FollowingSee all

We use cookies to enhance your experience on our website. Please read and confirm your agreement to our Privacy Policy and Terms and Conditions before continue to browse our website.

Read and Agreed