Working with Microservices in Go (Golang)
Год выпуска: 6/2024
Производитель: Udemy
Сайт производителя:
https://www.udemy.com/course/working-with-microservices-in-go/
Автор: Trevor Sawler
Продолжительность: 11h 34m 36s
Тип раздаваемого материала: Видеоурок
Язык: Английский
Субтитры: Английский
Описание:
Build highly available, scalable, resilient distributed applications using Go
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
Requirements
- A basic understanding of the Go programming language
- A Macintosh, Windows, or Linux computer with a connection to the internet
Description
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.
Who this course is for:
- Go developers who have worked with monolithic applications and who want to learn how to work with Microservices
Формат видео: MP4
Видео: avc, 1280x720, 16:9, 30.000 к/с, 371 кб/с
Аудио: aac lc sbr, 44.1 кгц, 62.8 кб/с, 2 аудио
Изменения/Changes
Version 2022/6 has increased the number of 9 videos and 47 minutes compared to version 2022/4.
Version 2024/6 compared to 2022/6 has increased the duration of 2 minutes.
MediaInfo
General
Complete name : D:\2_2\Udemy - Working with Microservices in Go (Golang) (6.2024)\03 - Building an Authentication Service\007 Adding a route and handler to accept JSON.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 27.3 MiB
Duration : 8 min 40 s
Overall bit rate : 440 kb/s
Frame rate : 30.000 FPS
Movie name : 007 Adding a route and handler to accept JSON
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.1
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 8 min 40 s
Bit rate : 371 kb/s
Nominal bit rate : 800 kb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.013
Stream size : 23.0 MiB (84%)
Writing library : x264 core 148
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x1:0x111 / me=umh / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=22 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=60 / keyint_min=6 / scenecut=0 / intra_refresh=0 / rc_lookahead=60 / rc=cbr / mbtree=1 / bitrate=800 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=800 / vbv_bufsize=1600 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC SBR
Format/Info : Advanced Audio Codec Low Complexity with Spectral Band Replication
Commercial name : HE-AAC
Format settings : Explicit
Codec ID : mp4a-40-2
Duration : 8 min 40 s
Bit rate mode : Constant
Bit rate : 62.8 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 21.533 FPS (2048 SPF)
Compression mode : Lossy
Stream size : 3.89 MiB (14%)
Default : Yes
Alternate group : 1