آموزش کار با Microservices در Go (Golang)

Working with Microservices in Go (Golang)

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: برنامه‌های کاربردی توزیع‌شده بسیار در دسترس، مقیاس‌پذیر و انعطاف‌پذیر را با استفاده از Go بسازید میکروسرویس‌ها چیست و چه زمانی از آن‌ها استفاده کنید چگونه برنامه‌های کاربردی تک منظوره‌ای با جفت آزاد ایجاد کنیم که به عنوان یک برنامه توزیع شده با هم کار می‌کنند. نحوه انتقال رویدادها به میکروسرویس ها با استفاده از پروتکل پیشرفته صف پیام (AMQP) با استفاده از RabbitMQ نحوه استقرار برنامه توزیع شده خود در Docker Swarm نحوه استقرار برنامه توزیع شده خود در یک خوشه Kubernetes پیش نیازها: درک اساسی از زبان برنامه نویسی Go Macintosh ، رایانه ویندوز یا لینوکس با اتصال به اینترنت

برای مدت طولانی، برنامه های کاربردی وب معمولاً یک برنامه کاربردی واحد بودند که همه چیز را مدیریت می کرد - به عبارت دیگر، یک برنامه یکپارچه. این یکپارچه احراز هویت کاربر، ورود به سیستم، ارسال ایمیل و هر چیز دیگری را مدیریت می کرد. در حالی که این هنوز یک رویکرد محبوب (و مفید) است، امروزه، بسیاری از برنامه های کاربردی در مقیاس بزرگتر تمایل دارند موارد را به میکروسرویس ها تقسیم کنند. امروزه، بیشتر سازمان‌های بزرگ با استفاده از این رویکرد و با دلایل موجه، بر روی ساخت برنامه‌های کاربردی وب متمرکز شده‌اند.

میکروسرویس‌ها، که به عنوان معماری میکروسرویس نیز شناخته می‌شوند، یک سبک معماری هستند که یک برنامه کاربردی را به‌عنوان مجموعه‌ای از برنامه‌های کوچک‌تر به هم پیوسته تشکیل می‌دهند. معماری میکروسرویس امکان تحویل سریع و مطمئن برنامه های بزرگ و پیچیده را فراهم می کند. برخی از رایج ترین ویژگی های یک میکروسرویس عبارتند از:

  • قابل نگهداری و آزمایش است؛

  • به طور آزاد با سایر بخش‌های برنامه همراه است؛

  • می تواند به خودی خود مستقر شود؛

  • بر اساس قابلیت‌های تجاری سازماندهی شده است؛

  • اغلب متعلق به یک تیم کوچک است.

در این دوره آموزشی، ما تعدادی میکروسرویس کوچک، مستقل و با اتصال آزاد ایجاد خواهیم کرد که با یکدیگر ارتباط برقرار می کنند و یک برنامه کاربردی ساده با یک REST API، با RPC، از طریق gRPC و توسط ارسال و مصرف پیام ها با استفاده از AMQP، پروتکل پیشرفته صف پیام. میکروسرویس هایی که ما می سازیم شامل عملکردهای زیر خواهد بود:

  • یک سرویس Front End، که فقط صفحات وب را نمایش می دهد؛

  • یک سرویس احراز هویت، با پایگاه داده Postgres؛

  • یک سرویس ورود به سیستم، با پایگاه داده MongoDB؛

  • یک سرویس شنونده، که پیام‌ها را از RabbitMQ دریافت می‌کند و بر اساس آنها عمل می‌کند؛

  • یک سرویس کارگزار، که یک نقطه ورودی اختیاری به خوشه میکروسرویس است؛

  • یک سرویس ایمیل، که یک بار JSON را می گیرد، به یک ایمیل فرمت شده تبدیل می کند و آن را ارسال می کند.

همه این سرویس‌ها در Go نوشته می‌شوند، که معمولاً به آن Golang گفته می‌شود، زبانی که مخصوصاً برای ساخت برنامه‌های وب توزیع‌شده مناسب است.

همچنین یاد خواهیم گرفت که چگونه برنامه توزیع شده خود را در Docker Swarm و Kubernetes مستقر کنیم، و چگونه در صورت لزوم، افزایش و کاهش دهیم، و میکروسرویس های جداگانه را با زمان کم یا بدون توقف به روز کنیم.


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • درمورد من About me

  • درمورد من About me

  • در حال نصب Go Installing Go

  • در حال نصب Go Installing Go

  • نصب کد ویژوال استودیو Installing Visual Studio Code

  • در حال نصب Make Installing Make

  • نصب Docker Installing Docker

  • نصب Docker Installing Docker

  • درخواست کمک Asking for help

  • اشتباهات: همه ما مرتکبشان می شویم. Mistakes: we all make them.

  • اشتباهات: همه ما مرتکبشان می شویم. Mistakes: we all make them.

معرفی Introduction

  • معرفی Introduction

  • نصب کد ویژوال استودیو Installing Visual Studio Code

  • در حال نصب Make Installing Make

  • درخواست کمک Asking for help

ساخت یک جلوی ساده و یک میکروسرویس Building a simple front end and one Microservice

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • راه اندازی قسمت جلویی Setting up the front end

  • راه اندازی قسمت جلویی Setting up the front end

  • بررسی کد جلویی Reviewing the front end code

  • بررسی کد جلویی Reviewing the front end code

  • اولین خدمات ما: کارگزار Our first service: the Broker

  • ساخت یک تصویر داکر برای سرویس بروکر Building a docker image for the Broker service

  • ساخت یک تصویر داکر برای سرویس بروکر Building a docker image for the Broker service

  • اضافه کردن یک دکمه و جاوا اسکریپت به قسمت جلو Adding a button and JavaScript to the front end

  • اضافه کردن یک دکمه و جاوا اسکریپت به قسمت جلو Adding a button and JavaScript to the front end

  • ایجاد برخی از توابع کمکی برای مقابله با JSON و موارد دیگر Creating some helper functions to deal with JSON and such

  • ساده کردن کارها با Makefile (مک و لینوکس) Simplifying things with a Makefile (Mac & Linux)

  • ساده کردن کارها با Makefile (مک و لینوکس) Simplifying things with a Makefile (Mac & Linux)

  • ساده کردن کارها با Makefile (ویندوز) Simplifying things with a Makefile (Windows)

  • ساده کردن کارها با Makefile (ویندوز) Simplifying things with a Makefile (Windows)

ساخت یک جلوی ساده و یک میکروسرویس Building a simple front end and one Microservice

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • اولین خدمات ما: کارگزار Our first service: the Broker

  • ایجاد برخی از توابع کمکی برای مقابله با JSON و موارد دیگر Creating some helper functions to deal with JSON and such

ساخت یک سرویس احراز هویت Building an Authentication Service

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • راه اندازی یک سرویس احراز هویت خرد Setting up a stub Authentication service

  • راه اندازی یک سرویس احراز هویت خرد Setting up a stub Authentication service

  • ایجاد و اتصال به Postgres از سرویس Authentication Creating and connecting to Postgres from the Authentication service

  • یادداشتی در مورد PostgreSQL A note about PostgreSQL

  • یادداشتی در مورد PostgreSQL A note about PostgreSQL

  • در حال به‌روزرسانی docker-compose.yml برای Postgres و سرویس احراز هویت Updating our docker-compose.yml for Postgres and the Authentication service

  • در حال به‌روزرسانی docker-compose.yml برای Postgres و سرویس احراز هویت Updating our docker-compose.yml for Postgres and the Authentication service

  • پر کردن پایگاه داده Postgres Populating the Postgres database

  • پر کردن پایگاه داده Postgres Populating the Postgres database

  • افزودن مسیر و کنترلر برای پذیرش JSON Adding a route and handler to accept JSON

  • بروکر را برای قالب استاندارد JSON به روز کنید و به سرویس Auth ما وصل شوید Update the Broker for a standard JSON format, and conect to our Auth service

  • به روز رسانی قسمت جلویی برای احراز هویت کامل بروکر و امتحان کردن چیزها Updating the front end to authenticate thorough the Broker and trying things out

  • به روز رسانی قسمت جلویی برای احراز هویت کامل بروکر و امتحان کردن چیزها Updating the front end to authenticate thorough the Broker and trying things out

ساخت یک سرویس احراز هویت Building an Authentication Service

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • ایجاد و اتصال به Postgres از سرویس Authentication Creating and connecting to Postgres from the Authentication service

  • افزودن مسیر و کنترلر برای پذیرش JSON Adding a route and handler to accept JSON

  • بروکر را برای قالب استاندارد JSON به روز کنید و به سرویس Auth ما وصل شوید Update the Broker for a standard JSON format, and conect to our Auth service

ساخت یک سرویس چوبگیر Building a Logger Service

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • شروع کار با سرویس Logger Getting started with the Logger service

  • راه اندازی مدل های داده Logger Setting up the Logger data models

  • در حال تکمیل مدل های داده Logger Finishing up the Logger data models

  • در حال تکمیل مدل های داده Logger Finishing up the Logger data models

  • راه‌اندازی مسیرها، کنترل‌کننده‌ها، کمک‌کننده‌ها و یک وب سرور در سرویس لاگر ما Setting up routes, handlers, helpers, and a web server in our logger-service

  • افزودن MongoDB به فایل docker-compose.yml ما Adding MongoDB to our docker-compose.yml file

  • Logger-service را به docker-compose.yml و Makefile اضافه کنید Add the logger-service to docker-compose.yml and the Makefile

  • Logger-service را به docker-compose.yml و Makefile اضافه کنید Add the logger-service to docker-compose.yml and the Makefile

  • افزودن مسیر و کنترل کننده در بروکر برای ارتباط با سرویس لاگر Adding a route and handler on the Broker to communicate with the logger service

  • افزودن مسیر و کنترل کننده در بروکر برای ارتباط با سرویس لاگر Adding a route and handler on the Broker to communicate with the logger service

  • قسمت جلویی را برای ارسال به لاگر، از طریق کارگزار، به روز کنید Update the front end to post to the logger, via the broker

  • قسمت جلویی را برای ارسال به لاگر، از طریق کارگزار، به روز کنید Update the front end to post to the logger, via the broker

  • ورود به سیستم اولیه را به سرویس Authentication اضافه کنید Add basic logging to the Authentication service

  • ورود به سیستم اولیه را به سرویس Authentication اضافه کنید Add basic logging to the Authentication service

  • امتحان کردن چیزها Trying things out

ساخت یک سرویس چوبگیر Building a Logger Service

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • شروع کار با سرویس Logger Getting started with the Logger service

  • راه اندازی مدل های داده Logger Setting up the Logger data models

  • راه‌اندازی مسیرها، کنترل‌کننده‌ها، کمک‌کننده‌ها و یک وب سرور در سرویس لاگر ما Setting up routes, handlers, helpers, and a web server in our logger-service

  • افزودن MongoDB به فایل docker-compose.yml ما Adding MongoDB to our docker-compose.yml file

  • امتحان کردن چیزها Trying things out

ساخت یک سرویس پستی Building a Mail Service

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • افزودن Mailhog به docker-compose.yml ما Adding Mailhog to our docker-compose.yml

  • راه اندازی میکروسرویس پست خرد Setting up a stub Mail microservice

  • ایجاد منطق برای ارسال ایمیل Building the logic to send email

  • ساخت مسیرها، کنترل‌کننده‌ها و الگوهای ایمیل Building the routes, handlers, and email templates

  • ساخت مسیرها، کنترل‌کننده‌ها و الگوهای ایمیل Building the routes, handlers, and email templates

  • چالش: افزودن سرویس Mail به docker-compose.yml و Makefile Challenge: Adding the Mail service to docker-compose.yml and the Makefile

  • راه حل چالش Solution to challenge

  • تغییر سرویس کارگزار برای رسیدگی به نامه Modifying the Broker service to handle mail

  • تغییر سرویس کارگزار برای رسیدگی به نامه Modifying the Broker service to handle mail

  • به روز رسانی قسمت جلویی برای ارسال نامه Updating the front end to send mail

  • یادداشتی در مورد پست و امنیت A note about mail and security

ساخت یک سرویس پستی Building a Mail Service

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • افزودن Mailhog به docker-compose.yml ما Adding Mailhog to our docker-compose.yml

  • راه اندازی میکروسرویس پست خرد Setting up a stub Mail microservice

  • ایجاد منطق برای ارسال ایمیل Building the logic to send email

  • چالش: افزودن سرویس Mail به docker-compose.yml و Makefile Challenge: Adding the Mail service to docker-compose.yml and the Makefile

  • راه حل چالش Solution to challenge

  • به روز رسانی قسمت جلویی برای ارسال نامه Updating the front end to send mail

  • یادداشتی در مورد پست و امنیت A note about mail and security

ساخت سرویس شنونده: AMQP با RabbitMQ Building a Listener service: AMQP with RabbitMQ

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • ایجاد یک سرویس شنونده خرد Creating a stub Listener service

  • افزودن RabbitMQ به docker-compose.yml ما Adding RabbitMQ to our docker-compose.yml

  • افزودن RabbitMQ به docker-compose.yml ما Adding RabbitMQ to our docker-compose.yml

  • اتصال به RabbitMQ Connecting to RabbitMQ

  • نوشتن توابع برای تعامل با RabbitMQ Writing functions to interact with RabbitMQ

  • افزودن یک تابع logEvent به میکروسرویس Linder Adding a logEvent function to our Listener microservice

  • در حال به روز رسانی main.go برای شروع عملکرد Linder Updating main.go to start the Listener function

  • در حال به روز رسانی main.go برای شروع عملکرد Linder Updating main.go to start the Listener function

  • URL سرور RabbitMQ را به آدرس Docker تغییر دهید Change the RabbitMQ server URL to the Docker address

  • ایجاد یک تصویر Docker و به روز رسانی Makefile Creating a Docker image and updating the Makefile

  • به روز رسانی کارگزار برای تعامل با RabbitMQ Updating the broker to interact with RabbitMQ

  • به روز رسانی کارگزار برای تعامل با RabbitMQ Updating the broker to interact with RabbitMQ

  • نوشتن منطق برای Emit رویدادها به RabbitMQ Writing logic to Emit events to RabbitMQ

  • نوشتن منطق برای Emit رویدادها به RabbitMQ Writing logic to Emit events to RabbitMQ

  • افزودن یک تابع جدید در Broker برای ثبت موارد از طریق RabbitMQ Adding a new function in the Broker to log items via RabbitMQ

  • افزودن یک تابع جدید در Broker برای ثبت موارد از طریق RabbitMQ Adding a new function in the Broker to log items via RabbitMQ

  • امتحان کردن چیزها Trying things out

ساخت سرویس شنونده: AMQP با RabbitMQ Building a Listener service: AMQP with RabbitMQ

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • ایجاد یک سرویس شنونده خرد Creating a stub Listener service

  • اتصال به RabbitMQ Connecting to RabbitMQ

  • نوشتن توابع برای تعامل با RabbitMQ Writing functions to interact with RabbitMQ

  • افزودن یک تابع logEvent به میکروسرویس Linder Adding a logEvent function to our Listener microservice

  • URL سرور RabbitMQ را به آدرس Docker تغییر دهید Change the RabbitMQ server URL to the Docker address

  • ایجاد یک تصویر Docker و به روز رسانی Makefile Creating a Docker image and updating the Makefile

  • امتحان کردن چیزها Trying things out

برقراری ارتباط بین سرویس ها با استفاده از تماس های رویه از راه دور (RPC) Communicating between services using Remote Procedure Calls (RPC)

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • راه اندازی سرور RPC در میکروسرویس Logger Setting up an RPC server in the Logger microservice

  • گوش دادن به تماس‌های RPC در میکروسرویس Logger Listening for RPC calls in the Logger microservice

  • فراخوانی Logger از بروکر با استفاده از RPC Calling the Logger from the Broker using RPC

  • فراخوانی Logger از بروکر با استفاده از RPC Calling the Logger from the Broker using RPC

  • امتحان کردن چیزها Trying things out

برقراری ارتباط بین سرویس ها با استفاده از تماس های رویه از راه دور (RPC) Communicating between services using Remote Procedure Calls (RPC)

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • راه اندازی سرور RPC در میکروسرویس Logger Setting up an RPC server in the Logger microservice

  • گوش دادن به تماس‌های RPC در میکروسرویس Logger Listening for RPC calls in the Logger microservice

  • امتحان کردن چیزها Trying things out

سرعت بخشیدن به کارها (به طور بالقوه) با gRPC Speeding things up (potentially) with gRPC

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • نصب ابزارهای لازم برای gRPC Installing the necessary tools for gRPC

  • نصب ابزارهای لازم برای gRPC Installing the necessary tools for gRPC

  • تعریف یک پروتکل برای gRPC: فایل .proto Defining a Protocol for gRPC: the .proto file

  • تعریف یک پروتکل برای gRPC: فایل .proto Defining a Protocol for gRPC: the .proto file

  • تولید کد gRPC از خط فرمان Generating the gRPC code from the command line

  • تولید کد gRPC از خط فرمان Generating the gRPC code from the command line

  • شروع کار با سرور gRPC Getting started with the gRPC server

  • شروع کار با سرور gRPC Getting started with the gRPC server

  • گوش دادن به اتصالات gRPC در میکروسرویس Logger Listening for gRPC connections in the Logger microservice

  • گوش دادن به اتصالات gRPC در میکروسرویس Logger Listening for gRPC connections in the Logger microservice

  • نوشتن کد مشتری Writing the client code

  • به روز رسانی کد جلویی Updating the front end code

  • به روز رسانی کد جلویی Updating the front end code

  • امتحان کردن چیزها Trying things out

  • امتحان کردن چیزها Trying things out

سرعت بخشیدن به کارها (به طور بالقوه) با gRPC Speeding things up (potentially) with gRPC

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • نوشتن کد مشتری Writing the client code

استقرار برنامه توزیع شده ما با استفاده از Docker Swarm Deploying our Distributed App using Docker Swarm

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • ساختن تصاویر برای میکروسرویس های ما Building images for our microservices

  • ساختن تصاویر برای میکروسرویس های ما Building images for our microservices

  • ایجاد یک فایل استقرار ازدحام Docker Creating a Docker swarm deployment file

  • راه اندازی و راه اندازی Docker Swarm Initializing and starting Docker Swarm

  • شروع جلو و ضربه زدن به دسته ما Starting the front end and hitting our swarm

  • خدمات مقیاس بندی Scaling services

  • خدمات مقیاس بندی Scaling services

  • به روز رسانی خدمات Updating services

  • به روز رسانی خدمات Updating services

  • توقف ازدحام داکر Stopping Docker swarm

  • به روز رسانی سرویس Broker و ایجاد یک Dockerfile برای قسمت جلویی Updating the Broker service, and creating a Dockerfile for the front end

  • به روز رسانی سرویس Broker و ایجاد یک Dockerfile برای قسمت جلویی Updating the Broker service, and creating a Dockerfile for the front end

  • راه حل چالش Solution to the Challenge

  • راه حل چالش Solution to the Challenge

  • افزودن Front end به فایل استقرار swarm.yml ما Adding the Front end to our swarm.yml deployment file

  • افزودن Front end به فایل استقرار swarm.yml ما Adding the Front end to our swarm.yml deployment file

  • افزودن Caddy به ترکیب به عنوان یک پروکسی به سمت جلو و کارگزار Adding Caddy to the mix as a Proxy to our front end and the broker

  • تغییر فایل میزبان ما برای افزودن یک ورودی "پشتیبان" و بالا آوردن ازدحام ما Modifying our hosts file to add a "backend" entry and bringing up our swarm

  • چالش: تصحیح URL به سرویس کارگزار در قسمت جلویی Challenge: correcting the URL to the broker service in the front end

  • چالش: تصحیح URL به سرویس کارگزار در قسمت جلویی Challenge: correcting the URL to the broker service in the front end

  • راه حل چالش Solution to challenge

  • راه حل چالش Solution to challenge

  • به روز رسانی Postgres به 14.2 - چرا نظارت مهم است! Updating Postgres to 14.2 - why monitoring is important!

  • به روز رسانی Postgres به 14.2 - چرا نظارت مهم است! Updating Postgres to 14.2 - why monitoring is important!

  • در حال چرخش دو سرور جدید در Linode Spinning up two new servers on Linode

  • راه اندازی یک حساب غیر ریشه و قرار دادن فایروال در محل. Setting up a non-root account and putting a firewall in place.

  • نصب داکر روی سرورها Installing Docker on the servers

  • نصب داکر روی سرورها Installing Docker on the servers

  • تنظیم نام میزبان برای سرور ما Setting the hostname for our server

  • تنظیم نام میزبان برای سرور ما Setting the hostname for our server

  • افزودن ورودی های DNS برای سرورهای ما Adding DNS entries for our servers

  • افزودن ورودی DNS برای سرویس Broker Adding a DNS entry for the Broker service

  • افزودن ورودی DNS برای سرویس Broker Adding a DNS entry for the Broker service

  • راه اندازی یک مدیر، و اضافه کردن یک کارگر Initializing a manager, and adding a worker

  • راه اندازی یک مدیر، و اضافه کردن یک کارگر Initializing a manager, and adding a worker

  • در حال به‌روزرسانی فایل docker swarm.yml و Caddy برای تولید Updating our swarm.yml and Caddy dockerfile for production

  • در حال به‌روزرسانی فایل docker swarm.yml و Caddy برای تولید Updating our swarm.yml and Caddy dockerfile for production

  • امتحان کردن چیزها، و اصلاح برخی از اشتباهات Trying things out, and correcting some mistakes

  • امتحان کردن چیزها، و اصلاح برخی از اشتباهات Trying things out, and correcting some mistakes

  • پر کردن پایگاه داده راه دور با استفاده از یک تونل SSH Populating the remote database using an SSH tunnel

  • فعال کردن گواهی‌های SSL در میکروسرویس Caddy Enabling SSL certificates on the Caddy microservice

استقرار برنامه توزیع شده ما با استفاده از Docker Swarm Deploying our Distributed App using Docker Swarm

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • ایجاد یک فایل استقرار ازدحام Docker Creating a Docker swarm deployment file

  • راه اندازی و راه اندازی Docker Swarm Initializing and starting Docker Swarm

  • شروع جلو و ضربه زدن به دسته ما Starting the front end and hitting our swarm

  • خدمات مقیاس بندی Scaling services

  • به روز رسانی خدمات Updating services

  • توقف ازدحام داکر Stopping Docker swarm

  • افزودن Caddy به ترکیب به عنوان یک پروکسی به سمت جلو و کارگزار Adding Caddy to the mix as a Proxy to our front end and the broker

  • تغییر فایل میزبان ما برای افزودن یک ورودی "پشتیبان" و بالا آوردن ازدحام ما Modifying our hosts file to add a "backend" entry and bringing up our swarm

  • در حال چرخش دو سرور جدید در Linode Spinning up two new servers on Linode

  • راه اندازی یک حساب غیر ریشه و قرار دادن فایروال در محل. Setting up a non-root account and putting a firewall in place.

  • افزودن ورودی های DNS برای سرورهای ما Adding DNS entries for our servers

  • پر کردن پایگاه داده راه دور با استفاده از یک تونل SSH Populating the remote database using an SSH tunnel

  • فعال کردن گواهی‌های SSL در میکروسرویس Caddy Enabling SSL certificates on the Caddy microservice

استقرار برنامه توزیع شده ما در Kubernetes Deploying our Distributed App to Kubernetes

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • نصب minikube Installing minikube

  • نصب minikube Installing minikube

  • نصب Kubectl Installing kubectl

  • راه اندازی یک خوشه Initializing a cluster

  • راه اندازی یک خوشه Initializing a cluster

  • معرفی داشبورد k8s Bringing up the k8s dashboard

  • معرفی داشبورد k8s Bringing up the k8s dashboard

  • ایجاد یک فایل استقرار برای Mongo Creating a deployment file for Mongo

  • ایجاد یک فایل استقرار برای RabbitMQ Creating a deployment file for RabbitMQ

  • ایجاد یک فایل استقرار برای سرویس Broker Creating a deployment file for the Broker service

  • وقتی همه چیز خراب می شود ... When things go wrong...

  • ایجاد یک فایل استقرار برای MailHog Creating a deployment file for MailHog

  • ایجاد یک فایل استقرار برای MailHog Creating a deployment file for MailHog

  • ایجاد یک فایل استقرار برای میکروسرویس Mail Creating a deployment file for the Mail microservice

  • ایجاد یک فایل استقرار برای سرویس Logger Creating a deployment file for the Logger service

  • ایجاد یک فایل استقرار برای سرویس Logger Creating a deployment file for the Logger service

  • ایجاد یک فایل استقرار برای سرویس Listener Creating a deployment file for the Listener service

  • Postgres را روی ماشین میزبان اجرا می کنیم، بنابراین می توانیم از k8s به آن متصل شویم Running Postgres on the host machine, so we can connect to it from k8s

  • Postgres را روی ماشین میزبان اجرا می کنیم، بنابراین می توانیم از k8s به آن متصل شویم Running Postgres on the host machine, so we can connect to it from k8s

  • ایجاد یک فایل استقرار برای سرویس Authentication Creating a deployment file for the Authentication service

  • با افزودن یک سرویس LoadBalancer همه چیز را امتحان کنید Trying things out by adding a LoadBalancer service

  • با افزودن یک سرویس LoadBalancer همه چیز را امتحان کنید Trying things out by adding a LoadBalancer service

  • ایجاد یک فایل استقرار برای میکروسرویس Front End Creating a deployment file for the Front End microservice

  • ایجاد یک فایل استقرار برای میکروسرویس Front End Creating a deployment file for the Front End microservice

  • اضافه کردن یک nginx Ingress به خوشه ما Adding an nginx Ingress to our cluster

  • اضافه کردن یک nginx Ingress به خوشه ما Adding an nginx Ingress to our cluster

  • در حال امتحان کردن Ingress ما Trying out our Ingress

  • در حال امتحان کردن Ingress ما Trying out our Ingress

  • خدمات مقیاس بندی Scaling services

  • خدمات مقیاس بندی Scaling services

  • به روز رسانی خدمات Updating services

  • به روز رسانی خدمات Updating services

  • استقرار در خدمات ابری Deploying to cloud services

استقرار برنامه توزیع شده ما در Kubernetes Deploying our Distributed App to Kubernetes

  • آنچه در این بخش به آن خواهیم پرداخت What we'll cover in this section

  • نصب Kubectl Installing kubectl

  • ایجاد یک فایل استقرار برای Mongo Creating a deployment file for Mongo

  • ایجاد یک فایل استقرار برای RabbitMQ Creating a deployment file for RabbitMQ

  • ایجاد یک فایل استقرار برای سرویس Broker Creating a deployment file for the Broker service

  • وقتی همه چیز خراب می شود ... When things go wrong...

  • ایجاد یک فایل استقرار برای میکروسرویس Mail Creating a deployment file for the Mail microservice

  • ایجاد یک فایل استقرار برای سرویس Listener Creating a deployment file for the Listener service

  • ایجاد یک فایل استقرار برای سرویس Authentication Creating a deployment file for the Authentication service

  • خدمات مقیاس بندی Scaling services

  • به روز رسانی خدمات Updating services

  • استقرار در خدمات ابری Deploying to cloud services

تست میکروسرویس ها Testing Microservices

  • مسیرهای تست Testing Routes

  • مسیرهای تست Testing Routes

  • شروع با الگوی Repository برای بسته داده ما Getting started with the Repository pattern for our data package

  • در حال به‌روزرسانی مدل‌ها، کنترل‌کننده‌ها و عملکرد اصلی برای استفاده از مخزن ما Updating our models, handlers, and the main function to use our repository

  • راه اندازی یک مخزن تست Setting up a Test repository

  • راه اندازی یک مخزن تست Setting up a Test repository

  • تصحیح یک غفلت (بسیار احمقانه) در models.go Correcting a (rather stupid) oversight in models.go

  • کنترل کننده های تست Testing Handlers

  • تمسخر تماس ما با Logger-service برای آزمایش Mocking our call to the logger-service for tests

  • بخش تست در حال انجام است... Testing section in progress...

تست میکروسرویس ها Testing Microservices

  • شروع با الگوی Repository برای بسته داده ما Getting started with the Repository pattern for our data package

  • در حال به‌روزرسانی مدل‌ها، کنترل‌کننده‌ها و عملکرد اصلی برای استفاده از مخزن ما Updating our models, handlers, and the main function to use our repository

  • تصحیح یک غفلت (بسیار احمقانه) در models.go Correcting a (rather stupid) oversight in models.go

  • کنترل کننده های تست Testing Handlers

  • تمسخر تماس ما با Logger-service برای آزمایش Mocking our call to the logger-service for tests

  • بخش تست در حال انجام است... Testing section in progress...

افکار نهایی Final Thoughts

  • فقط چند نظر و مشاهدات نهایی Just some final thoughts and observations

  • فقط چند نظر و مشاهدات نهایی Just some final thoughts and observations

افکار نهایی Final Thoughts

نمایش نظرات

نظری ارسال نشده است.

آموزش کار با Microservices در Go (Golang)
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
11.5 hours
132
Udemy (یودمی) udemy-small
16 خرداد 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
11,294
4.6 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.