[Udemy] Working with Microservices in Go (Golang) (Тревор Соулер)
[Udemy] Working with Microservices in Go (Golang) (Trevor Sawler) /
Работа с микросервисами в Go (Golang) (Тревор Соулер) [ENG]
?
- Узнайте, что такое микросервисы и когда их использовать
- Как разрабатывать слабосвязанные одноцелевые приложения, которые работают вместе как распределенное приложение.
- Как обмениваться данными между службами с помощью JSON, удаленных вызовов процедур и gRPC
- Как отправлять события в микросервисы с помощью Advanced Message Queuing Protocol (AMQP) с помощью RabbitMQ
- Как развернуть распределенное приложение в Docker Swarm
- Как развернуть распределенное приложение в кластере Kubernetes
Требования
- Базовое понимание языка программирования Go
- Компьютер Macintosh, Windows или Linux с подключением к Интернету.
Для кого этот курс
- Разработчики Go, которые работали с монолитными приложениями и хотят научиться работать с микросервисами.
Описание
Долгое время веб-приложения обычно были единым приложением, которое обрабатывало все, другими словами, монолитным приложением. Этот монолит занимался аутентификацией пользователей, ведением журналов, отправкой электронной почты и всем остальным. Хотя это по-прежнему популярный (и полезный) подход, сегодня многие крупномасштабные приложения имеют тенденцию разбивать все на микросервисы . Сегодня большинство крупных организаций сосредоточены на создании веб-приложений с использованием этого подхода, и на то есть веские причины.
Микросервисы , также известные как архитектура микросервисов, представляют собой архитектурный стиль, который структурирует приложение как слабосвязанный набор небольших приложений. Архитектура микросервисов обеспечивает быструю и надежную доставку больших и сложных приложений. Вот некоторые из наиболее распространенных функций микросервиса:
- его можно поддерживать и тестировать;
- он слабо связан с другими частями приложения;
- он может быть развернут сам по себе;
- он организован вокруг деловых возможностей;
- часто им владеет небольшая команда.
В этом курсе мы разработаем несколько небольших автономных слабосвязанных микросервисов, которые будут взаимодействовать друг с другом и простым интерфейсным приложением с REST API, с RPC , через gRPC , а также путем отправки и потребления. сообщения с использованием AMQP , Advanced Message Queuing Protocol. Создаваемые нами микросервисы будут включать в себя следующие функции:
- Служба переднего плана, которая просто отображает веб-страницы;
- Служба аутентификации с базой данных Postgres;
- Служба регистрации с базой данных MongoDB;
- Служба прослушивателя, которая получает сообщения от RabbitMQ и действует на них;
- Брокерская служба, которая является дополнительной единой точкой входа в кластер микросервисов;
- Почтовая служба, которая принимает полезную нагрузку JSON, преобразует ее в форматированное электронное письмо и отправляет его.
Все эти сервисы будут написаны на языке Go, обычно называемом Golang, который особенно хорошо подходит для создания распределенных веб-приложений.
Мы также узнаем, как развернуть наше распределенное приложение в Docker Swarm и Kubernetes , как увеличивать и уменьшать масштаб по мере необходимости, а также обновлять отдельные микросервисы с минимальным временем простоя или вообще без него.
01 Introduction
01 Introduction.mp4 [93m 132k 99]
01 Introduction.srt [13k 779]
02 About me.mp4 [19m 855k 857]
02 About me.srt [1k 643]
03 Installing Go.mp4 [8m 679k 669]
03 Installing Go.srt [1k 267]
03.1 Download Go.html [76]
04 Installing Visual Studio Code.mp4 [8m 93k 863]
04 Installing Visual Studio Code.srt [2k 481]
04.1 Download Visual Studio Code.html [99]
05 Installing Make.mp4 [11m 246k 389]
05 Installing Make.srt [2k 351]
05.1 Chocolately.html [91]
05.2 GNU Make.html [95]
05.3 Homebrew.html [77]
06 Installing Docker.mp4 [5m 862k 986]
06 Installing Docker.srt [1k 392]
06.1 Docker Desktop.html [108]
07 Asking for help.mp4 [24m 396k 36]
07 Asking for help.srt [2k 342]
08 Mistakes. We all make them..mp4 [2m 337k 25]
08 Mistakes. We all make them..srt [1k 975]
02 Building a simple front end and one Microservice
01 What we'll cover in this section.mp4 [5m 422k 184]
01 What we'll cover in this section.srt [978]
02 Setting up the front end.mp4 [5m 434k 719]
02 Setting up the front end.srt [2k 500]
02.1 front-end.zip [8k 409]
03 Reviewing the front end code.mp4 [21m 62k 793]
03 Reviewing the front end code.srt [5k 378]
03.1 source.zip [13k 406]
04 Our first service the Broker.mp4 [81m 818k 941]
04 Our first service the Broker.srt [20k 290]
04.1 source.zip [13k 27]
05 Building a docker image for the Broker service.mp4 [37m 633k 927]
05 Building a docker image for the Broker service.srt [13k 46]
05.1 broker-service.dockerfile.zip [415]
05.2 docker-compose.yml.zip [352]
05.3 source.zip [14k 56]
06 Adding a button and JavaScript to the front end.mp4 [47m 962k 945]
06 Adding a button and JavaScript to the front end.srt [11k 255]
06.1 source.zip [14k 471]
07 Creating some helper functions to deal with JSON and such.mp4 [49m 265k 721]
07 Creating some helper functions to deal with JSON and such.srt [10k 858]
07.1 source.zip [4m 681k 530]
08 Simplifying things with a Makefile (Mac & Linux).mp4 [27m 371k 183]
08 Simplifying things with a Makefile (Mac & Linux).srt [6k 405]
08.1 Makefile.zip [685]
09 Simplifying things with a Makefile (Windows).mp4 [26m 491k 882]
09 Simplifying things with a Makefile (Windows).srt [4k 358]
09.1 Makefile.zip [730]
03 Building an Authentication Service
01 What we'll cover in this section.mp4 [13m 935k 591]
01 What we'll cover in this section.srt [2k 730]
02 Setting up a stub Authentication service.mp4 [62m 614k 948]
02 Setting up a stub Authentication service.srt [16k 284]
02.1 models.go.zip [12k 131]
02.2 source.zip [22k 808]
03 Creating and connecting to Postgres from the Authentication service.mp4 [41m 339k 725]
03 Creating and connecting to Postgres from the Authentication service.srt [10k 970]
03.1 source.zip [30k 892]
04 A note about PostgreSQL.html [1k 100]
05 Updating our docker-compose.yml for Postgres and the Authentication service.mp4 [95m 742k 53]
05 Updating our docker-compose.yml for Postgres and the Authentication service.srt [18k 314]
05.1 source.zip [31k 293]
06 Populating the Postgres database.mp4 [13m 95k 561]
06 Populating the Postgres database.srt [3k 914]
06.1 Beekeeper Studio.html [92]
06.2 users.sql.zip [802]
07 Adding a route and handler to accept JSON.mp4 [52m 133k 955]
07 Adding a route and handler to accept JSON.srt [12k 323]
07.1 source.zip [33k 13]
07.2 tsawlertoolbox.html [95]
08 Update the Broker for a standard JSON format, and conect to our Auth service.mp4 [90m 599k 629]
08 Update the Broker for a standard JSON format, and conect to our Auth service.srt [20k 164]
08.1 source.zip [33k 634]
09 Updating the front end to authenticate thorough the Broker and trying things out.mp4 [46m 940k 265]
09 Updating the front end to authenticate thorough the Broker and trying things out.srt [8k 598]
09.1 source.zip [33k 991]
04 Building a Logger Service
01 What we'll cover in this section.mp4 [8m 290k 9]
01 What we'll cover in this section.srt [1k 497]
02 Getting started with the Logger service.mp4 [45m 282k 661]
02 Getting started with the Logger service.srt [14k 117]
02.1 source.zip [38k 460]
03 Setting up the Logger data models.mp4 [76m 626k 800]
03 Setting up the Logger data models.srt [19k 988]
03.1 source.zip [39k 488]
04 Finishing up the Logger data models.mp4 [49m 324k 722]
04 Finishing up the Logger data models.srt [10k 149]
04.1 source.zip [39k 664]
05 Setting up routes, handlers, helpers, and a web server in our logger-service.mp4 [53m 449k 919]
05 Setting up routes, handlers, helpers, and a web server in our logger-service.srt [10k 866]
05.1 source.zip [42k 255]
06 Adding MongoDB to our docker-compose.yml file.mp4 [42m 346k 80]
06 Adding MongoDB to our docker-compose.yml file.srt [8k 965]
06.1 source.zip [42k 458]
07 Add the logger-service to docker-compose.yml and the Makefile.mp4 [37m 409k 522]
07 Add the logger-service to docker-compose.yml and the Makefile.srt [5k 379]
07.1 source.zip [42k 891]
08 Adding a route and handler on the Broker to communicate with the logger service.mp4 [49m 555k 631]
08 Adding a route and handler on the Broker to communicate with the logger service.srt [7k 753]
08.1 source.zip [43k 795]
09 Update the front end to post to the logger, via the broker.mp4 [31m 330k 856]
09 Update the front end to post to the logger, via the broker.srt [5k 666]
09.1 source.zip [44k 945]
10 Add basic logging to the Authentication service.mp4 [29m 152k 608]
10 Add basic logging to the Authentication service.srt [5k 499]
10.1 source.zip [56k 539]
11 Trying things out.mp4 [24m 5k 704]
11 Trying things out.srt [6k 515]
11.1 MongoDB Compass.html [105]
05 Building a Mail Service
01 What we'll cover in this section.mp4 [9m 862k 269]
01 What we'll cover in this section.srt [2k 56]
02 Adding Mailhog to our docker-compose.yml.mp4 [9m 586k 558]
02 Adding Mailhog to our docker-compose.yml.srt [3k 156]
02.1 source.zip [46k 332]
03 Setting up a stub Mail microservice.mp4 [28m 710k 409]
03 Setting up a stub Mail microservice.srt [6k 841]
03.1 source.zip [49k 657]
04 Building the logic to send email.mp4 [129m 251k 948]
04 Building the logic to send email.srt [32k 132]
04.1 source.zip [52k 790]
05 Building the routes, handlers, and email templates.mp4 [78m 80k 308]
05 Building the routes, handlers, and email templates.srt [14k 547]
05.1 source.zip [54k 525]
06 Challenge Adding the Mail service to docker-compose.yml and the Makefile.mp4 [5m 31k 882]
06 Challenge Adding the Mail service to docker-compose.yml and the Makefile.srt [1k 218]
07 Solution to challenge.mp4 [29m 258k 582]
07 Solution to challenge.srt [5k 858]
07.1 source.zip [55k 63]
08 Modifying the Broker service to handle mail.mp4 [49m 763k 947]
08 Modifying the Broker service to handle mail.srt [10k 104]
08.1 source.zip [55k 238]
09 Updating the front end to send mail.mp4 [82m 587k 438]
09 Updating the front end to send mail.srt [12k 638]
09.1 source.zip [56k 77]
10 A note about mail and security.mp4 [10m 843k 343]
10 A note about mail and security.srt [1k 935]
06 Building a Listener service AMQP with RabbitMQ
01 What we'll cover in this section.mp4 [21m 695k 2]
01 What we'll cover in this section.srt [3k 795]
02 Creating a stub Listener service.mp4 [12m 291k 81]
02 Creating a stub Listener service.srt [4k 802]
02.1 source.zip [57k 251]
03 Adding RabbitMQ to our docker-compose.yml.mp4 [22m 429k 211]
03 Adding RabbitMQ to our docker-compose.yml.srt [6k 598]
03.1 RabbitMQ on Docker Hub.html [94]
03.2 source.zip [57k 288]
04 Connecting to RabbitMQ.mp4 [33m 417k 139]
04 Connecting to RabbitMQ.srt [10k 701]
04.1 source.zip [5m 958k 970]
05 Writing functions to interact with RabbitMQ.mp4 [121m 813k 404]
05 Writing functions to interact with RabbitMQ.srt [32k 405]
05.1 source.zip [5m 950k 393]
06 Adding a logEvent function to our Listener microservice.mp4 [21m 11k 56]
06 Adding a logEvent function to our Listener microservice.srt [3k 801]
06.1 source.zip [5m 961k 39]
07 Updating main.go to start the Listener function.mp4 [15m 104k 288]
07 Updating main.go to start the Listener function.srt [4k 71]
07.1 source.zip [5m 950k 896]
08 Change the RabbitMQ server URL to the Docker address.mp4 [6m 677k 670]
08 Change the RabbitMQ server URL to the Docker address.srt [854]
09 Creating a Docker image and updating the Makefile.mp4 [57m 707k 720]
09 Creating a Docker image and updating the Makefile.srt [8k 257]
09.1 source.zip [80k 801]
10 Updating the broker to interact with RabbitMQ.mp4 [32m 117k 251]
10 Updating the broker to interact with RabbitMQ.srt [6k 241]
10.1 source.zip [83k 194]
11 Writing logic to Emit events to RabbitMQ.mp4 [36m 900k 84]
11 Writing logic to Emit events to RabbitMQ.srt [8k 534]
11.1 source.zip [83k 848]
12 Adding a new function in the Broker to log items via RabbitMQ.mp4 [48m 67k 525]
12 Adding a new function in the Broker to log items via RabbitMQ.srt [8k 430]
12.1 source.zip [84k 73]
13 Trying things out.mp4 [26m 702k 625]
13 Trying things out.srt [6k 341]
07 Communicating between services using Remote Procedure Calls (RPC)
01 What we'll cover in this section.mp4 [19m 488k 905]
01 What we'll cover in this section.srt [3k 342]
02 Setting up an RPC server in the Logger microservice.mp4 [29m 259k 162]
02 Setting up an RPC server in the Logger microservice.srt [7k 298]
02.1 source.zip [85k 510]
03 Listening for RPC calls in the Logger microservice.mp4 [30m 557k 764]
03 Listening for RPC calls in the Logger microservice.srt [6k 331]
03.1 source.zip [90k 457]
04 Calling the Logger from the Broker using RPC.mp4 [37m 132k 387]
04 Calling the Logger from the Broker using RPC.srt [7k 501]
04.1 source.zip [85k 709]
05 Trying things out.mp4 [18m 595k 123]
05 Trying things out.srt [4k 44]
08 Speeding things up (potentially) with gRPC
01 What we'll cover in this section.mp4 [21m 477k 63]
01 What we'll cover in this section.srt [3k 539]
01.1 gRPC website.html [77]
02 Installing the necessary tools for gRPC.mp4 [6m 230k 122]
02 Installing the necessary tools for gRPC.srt [3k 973]
03 Defining a Protocol for gRPC the .proto file.mp4 [15m 697k 196]
03 Defining a Protocol for gRPC the .proto file.srt [6k 804]
03.1 source.zip [86k 294]
04 Generating the gRPC code from the command line.mp4 [46m 756k 850]
04 Generating the gRPC code from the command line.srt [9k 132]
04.1 Protocol Buffer Compiler Installation.html [102]
04.2 source.zip [89k 847]
05 Getting started with the gRPC server.mp4 [32m 443k 148]
05 Getting started with the gRPC server.srt [10k 106]
05.1 source.zip [94k 831]
06 Listening for gRPC connections in the Logger microservice.mp4 [24m 458k 303]
06 Listening for gRPC connections in the Logger microservice.srt [4k 945]
06.1 source.zip [95k 18]
07 Writing the client code.mp4 [65m 207k 432]
07 Writing the client code.srt [14k 776]
07.1 source.zip [104k 956]
08 Updating the front end code.mp4 [21m 275k 154]
08 Updating the front end code.srt [3k 102]
08.1 source.zip [105k 13]
09 Trying things out.mp4 [18m 888k 525]
09 Trying things out.srt [3k 293]
09 Deploying our Distributed App using Docker Swarm
01 What we'll cover in this section.mp4 [33m 596k 199]
01 What we'll cover in this section.srt [5k 137]
01.1 Docker Swarm.html [98]
02 Building images for our microservices.mp4 [13m 472k 366]
02 Building images for our microservices.srt [5k 154]
03 Creating a Docker swarm deployment file.mp4 [53m 383k 956]
03 Creating a Docker swarm deployment file.srt [16k 293]
03.1 swarm.yml.zip [868]
04 Initalizing and starting Docker Swarm.mp4 [20m 0k 454]
04 Initalizing and starting Docker Swarm.srt [6k 963]
05 Starting the front end and hitting our swarm.mp4 [9m 661k 411]
05 Starting the front end and hitting our swarm.srt [3k 756]
06 Scaling services.mp4 [16m 775k 813]
06 Scaling services.srt [5k 29]
07 Updating services.mp4 [22m 348k 775]
07 Updating services.srt [6k 401]
08 Stopping Docker swarm.mp4 [7m 211k 767]
08 Stopping Docker swarm.srt [2k 718]
09 Updating the Broker service, and creating a Dockerfile for the front end.mp4 [40m 270k 71]
09 Updating the Broker service, and creating a Dockerfile for the front end.srt [8k 94]
10 Solution to the Challenge.mp4 [21m 103k 295]
10 Solution to the Challenge.srt [3k 674]
10.1 front-end.dockerfile.zip [286]
10.2 Makefile.mac_linux.zip [1k 244]
10.3 Makefile.windows.zip [1k 281]
11 Adding the Front end to our swarm.yml deployment file.mp4 [8m 758k 858]
11 Adding the Front end to our swarm.yml deployment file.srt [1k 894]
12 Adding Caddy to the mix as a Proxy to our front end and the broker.mp4 [60m 53k 87]
12 Adding Caddy to the mix as a Proxy to our front end and the broker.srt [15k 558]
12.1 caddy.zip [807]
13 Modifying our hosts file to add a backend entry and bringing up our swarm.mp4 [42m 659k 137]
13 Modifying our hosts file to add a backend entry and bringing up our swarm.srt [9k 511]
13.1 Modifying hosts on Windows 1011.html [113]
14 Challenge correcting the URL to the broker service in the front end.mp4 [54m 720k 387]
14 Challenge correcting the URL to the broker service in the front end.srt [10k 560]
14.1 source.zip [105k 80]
15 Solution to challenge.mp4 [9m 205k 286]
15 Solution to challenge.srt [3k 278]
16 Updating Postgres to 14.2 - why monitoring is important!.mp4 [17m 115k 789]
16 Updating Postgres to 14.2 - why monitoring is important!.srt [2k 845]
17 Spinning up two new servers on Linode.mp4 [32m 596k 663]
17 Spinning up two new servers on Linode.srt [6k 896]
17.1 DigitalOcean.html [89]
17.2 Linode.html [83]
17.3 Vultr.html [82]
18 Setting up a non-root account and putting a firewall in place..mp4 [32m 107k 155]
18 Setting up a non-root account and putting a firewall in place..srt [7k 819]
19 Installing Docker on the servers.mp4 [34m 744k 636]
19 Installing Docker on the servers.srt [4k 344]
19.1 Install Docker Engine on Ubuntu.html [136]
20 Setting the hostname for our server.mp4 [14m 277k 826]
20 Setting the hostname for our server.srt [5k 171]
21 Adding DNS entries for our servers.mp4 [27m 797k 378]
21 Adding DNS entries for our servers.srt [9k 230]
22 Adding a DNS entry for the Broker service.mp4 [5m 784k 110]
22 Adding a DNS entry for the Broker service.srt [2k 107]
23 Initializing a manager, and adding a worker.mp4 [9m 394k 802]
23 Initializing a manager, and adding a worker.srt [3k 239]
24 Updating our swarm.yml and Caddy dockerfile for production.mp4 [46m 824k 602]
24 Updating our swarm.yml and Caddy dockerfile for production.srt [9k 828]
25 Trying things out, and correcting some mistakes.mp4 [72m 237k 662]
25 Trying things out, and correcting some mistakes.srt [15k 867]
26 Populating the remote database using an SSH tunnel.mp4 [8m 560k 694]
26 Populating the remote database using an SSH tunnel.srt [3k 835]
26.1 users.sql.zip [802]
27 Enabling SSL certificates on the Caddy microservice.mp4 [77m 411k 42]
27 Enabling SSL certificates on the Caddy microservice.srt [16k 308]
27.1 GlusterFS.html [85]
27.2 sshfs.html [92]
10 Deploying our Distributed App to Kubernetes
01 What we'll cover in this section.mp4 [12m 643k 579]
01 What we'll cover in this section.srt [3k 168]
02 Installing minikube.mp4 [15m 78k 404]
02 Installing minikube.srt [2k 838]
02.1 Minikube.html [101]
03 Installing kubectl.mp4 [21m 601k 86]
03 Installing kubectl.srt [3k 688]
03.1 kubectl.html [100]
04 Initializing a cluster.mp4 [14m 290k 487]
04 Initializing a cluster.srt [4k 649]
05 Bringing up the k8s dashboard.mp4 [12m 51k 940]
05 Bringing up the k8s dashboard.srt [3k 746]
06 Creating a deployment file for Mongo.mp4 [51m 148k 389]
06 Creating a deployment file for Mongo.srt [19k 976]
06.1 k8s.zip [667]
07 Creating a deployment file for RabbitMQ.mp4 [33m 993k 409]
07 Creating a deployment file for RabbitMQ.srt [7k 628]
07.1 k8s.zip [1k 180]
08 Creating a deployment file for the Broker service.mp4 [22m 71k 35]
08 Creating a deployment file for the Broker service.srt [5k 47]
08.1 k8s.zip [1k 652]
09 When things go wrong.mp4 [36m 621k 991]
09 When things go wrong.srt [11k 925]
09.1 k8s.zip [2k 599]
10 Creating a deployment file for MailHog.mp4 [16m 408k 659]
10 Creating a deployment file for MailHog.srt [3k 382]
10.1 k8s.zip [3k 80]
11 Creating a deployment file for the Mail microservice.mp4 [32m 349k 348]
11 Creating a deployment file for the Mail microservice.srt [5k 98]
11.1 k8s.zip [3k 677]
12 Creating a deployment file for the Logger service.mp4 [31m 754k 226]
12 Creating a deployment file for the Logger service.srt [6k 183]
12.1 k8s.zip [4k 173]
13 Creating a deployment file for the Listener service.mp4 [16m 577k 904]
13 Creating a deployment file for the Listener service.srt [2k 971]
13.1 k8s.zip [4k 648]
14 Running Postgres on the host machine, so we can connect to it from k8s.mp4 [18m 139k 896]
14 Running Postgres on the host machine, so we can connect to it from k8s.srt [4k 318]
14.1 postgres.yml.zip [406]
15 Creating a deployment file for the Authentication service.mp4 [27m 30k 924]
15 Creating a deployment file for the Authentication service.srt [5k 137]
15.1 k8s.zip [5k 244]
16 Trying things out by adding a LoadBalancer service.mp4 [36m 695k 465]
16 Trying things out by adding a LoadBalancer service.srt [9k 514]
17 Creating a deployment file for the Front End microservice.mp4 [32m 891k 281]
17 Creating a deployment file for the Front End microservice.srt [6k 436]
17.1 k8s.zip [5k 763]
18 Adding an nginx Ingress to our cluster.mp4 [23m 754k 119]
18 Adding an nginx Ingress to our cluster.srt [6k 492]
18.1 ingress.yml.zip [427]
19 Trying out our Ingress.mp4 [21m 64k 199]
19 Trying out our Ingress.srt [6k 440]
19.1 Edit Windows hosts file.html [137]
20 Scaling services.mp4 [25m 878k 426]
20 Scaling services.srt [5k 409]
21 Updating services.mp4 [9m 435k 480]
21 Updating services.srt [3k 208]
22 Deploying to cloud services.mp4 [44m 955k 149]
22 Deploying to cloud services.srt [8k 471]
22.1 How to configure SSLTLS on Ingress with k8s.html [117]
22.2 ingess_ssl.pdf [327k 649]
Объем: 3.72Гб.
Курс на английском языке