آموزش Docker و Kubernetes - راهنمای کامل توسعه دهندگان

Docker and Kubernetes - The Complete Developers Guide

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: همه چیز را در مورد Containers، Docker، Docker Compose، Kubernetes و نحوه استقرار یک برنامه در AWS با خط لوله CI/CD بیاموزید یک برنامه کاربردی چند جزیی ایجاد کنید یک خط لوله CI/CD استقرار برای AWS درک تفاوت بین بسیاری از اشیاء Kubernetes شناسایی در بهترین حالت برای استفاده از Docker یا Kubernetes پیش نیازها:آشنایی با هر زبان برنامه نویسی

در این دوره ما شما را از یک تازه کار Docker و Kubernetes به مهندس آماده کار می بریم. این دوره با نمودارها و مثال‌های عملی بارگذاری شده است تا بتوانید Docker و Kubernetes را با عمق زیاد درک کرده و از آنها استفاده کنید.


ما پنج پروژه را کانتینری خواهیم کرد که هر کدام پیچیده تر و پیچیده تر می شوند. ما این دوره را با کانتینری کردن یک برنامه میکروسرویس چند جزء با Kubernetes و در نهایت استقرار آن در AWS به پایان خواهیم رساند. در پایان این دوره، باید چندین مثال عملی برای نشان دادن دانش خود داشته باشید!


در اینجا لیستی از چیزهایی است که در این دوره یاد خواهید گرفت:

  • کانتینرهای Docker چیست و چرا می‌خواهیم از آن استفاده کنیم

  • نحوه ساختن تصاویر داکر و اجرای کانتینرهای داکر

  • نحوه اتصال به یک ظرف از دستگاه میزبان ما

  • نحوه ایجاد داده های پایدار در داخل یک ظرف پایگاه داده

  • نحوه ساختن یک برنامه چند جزئی با docker-compose

  • مزایا و قدرت های Kubernetes را بدانید

  • اشیاء مختلف Kubernetes را درک کنید

  • با نحوه ساختار یک خوشه Kubernetes آشنا شوید

  • نحوه کانتینریزه کردن یک برنامه چند جزئی با Kubernetes

  • نحوه فشار دادن و کشیدن تصاویر از مخازن تصویر

  • نحوه استقرار یک برنامه کانتینری در AWS ECS و AWS EKS

  • نحوه ساخت خط لوله CI/CD آماده تولید

من واقعاً امیدوارم از این دوره لذت ببرید و چیزهای زیادی از آن بیاموزید!


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

معرفی Introduction

  • آنچه ما یاد خواهیم گرفت What We'll Learn

  • برخی از مطالبی که باید دانلود کنیم Some Stuff We Need to Download

  • نصب Docker Desktop Installing Docker Desktop

  • Docker Desktop برای کاربران ویندوز Docker Desktop for Windows User

داکر چیست؟ What is Docker

  • یک تشبیه کوچک A Little Analogy

  • ارتباط قیاس ما با داکر Relating Our Analogy to Docker

Dockerfiles، Containers و Images Dockerfiles, Containers and Images

  • ساخت یک برنامه گره کوچک Building a Small Node App

  • اجرای برنامه Node ما به صورت محلی Running Our Node App Locally

  • ایجاد یک Dockerfile Creating a Dockerfile

  • ما واقعاً در حال ساختن یک تصویر هستیم We are Really Building an Image

  • آشنایی با بقیه Dockerfile Understanding the Rest of the Dockerfile

  • ساختن تصویر و اجرای یک کانتینر Building an Image and Running a Container

  • نقشه برداری بندر Port Mapping

  • بازسازی تصویر ما Rebuilding Our Image

  • همگام سازی کد ما با Bind Mounts Syncing Our Code with Bind Mounts

  • استفاده از جلدهای ناشناس Using Anonymous Volumes

  • تقصیر داکر نیست! It's Not Docker's Fault!

  • نادیده گرفتن فایل ها با Docker Ignore Ignoring Files with Docker Ignore

  • لایه بندی داکر و ذخیره سازی Docker Layering and Caching

چالش اختیاری - داکر کردن یک برنامه Optional Challenge - Dockerizing an App

  • چالش The Challenge

  • راه حل The Solution

استقرار یک برنامه کانتینری Deploying a Containerized Application

  • مقدمه ای برای کنترل هواپیما An Intro to Control Plane

  • مشاهده GVC ما Viewing Our GVC

  • فشار دادن تصویر ما به یک مخزن تصویر Pushing Our Image to an Image Repository

  • اجرای حجم کاری Running a Workload

  • کشتن استقرار ما Killing Our Deployment

چند کانتینر و ارتباطات شبکه Multi Containers and Network Communications

  • بررسی اجمالی برنامه Application Overview

  • نحوه مدیریت برنامه های کاربردی چند مولفه How to Handle Multiple Component Applications

  • عبور از کد شروع Going Through the Starter Code

  • کشیدن تصاویر از یک مخزن تصویر Pulling Images From an Image Repository

  • ساختن تصویر گره ما و اجرای کانتینر Building our Node Image and Running the Container

  • اتصال کانتینرهای ما از طریق Localhost Connecting Our Containers Through Localhost

  • استفاده از آدرس IP کانتینر Utilizing the Container's IP Address

  • معرفی شبکه های داکر Introducing Docker Networks

  • داکر کردن برنامه React ما Dockerizing Our React App

  • در حال اجرا به یک مسئله کوچک Running into a Little Issue

  • رندر سمت کلاینت مشکل است Client Side Rendering is the Problem

  • بهینه سازی گردش کار ما با حجم Optimizing Our Workflow with Volumes

Docker Compose برای برنامه‌های چند کانتینری Docker Compose for Multi Container Apps

  • مقدمه ای برای Docker Compose An Intro to Docker Compose

  • کمی درباره نحو YAML A Little About YAML Syntax

  • نوشتن پیکربندی MongoDB Writing the MongoDB Configuration

  • تنظیم متغیرهای محیطی Setting Environment Variables

  • docker-compose up و docker-compose down docker-compose up and docker-compose down

  • راه اندازی کانتینر Backend Setting Up the Backend Container

  • تست ادغام Testing the Integration

  • راه اندازی کانتینر Frontend Setting Up the Frontend Container

استقرار در AWS با ECS Deploying to AWS with ECS

  • گردش کار استقرار ما Our Deployment Workflow

  • نوشتن Dockerfile Writing the Dockerfile

  • اجرای کانتینر به صورت محلی Running the Container Locally

  • یک مخزن تصویر ایجاد کنید و AWS CLI را دانلود کنید Create an Image Repository and Downloading the AWS CLI

  • IAM برای مدیریت دسترسی IAM for Access Management

  • فشار دادن تصویر ما به رجیستری Pushing Our Image to the Registry

  • ایجاد یک ECS Cluster Creating an ECS Cluster

  • ایجاد یک تعریف وظیفه Creating a Task Definition

  • اجرای Task با سرویس ECS Running the Task with a ECS Service

  • پیکربندی قوانین ورودی گروه امنیتی ما Configuring the Inbound Rules of Our Security Group

خودکار کردن گردش کار ما با خط لوله CI/CD Automating Our Workflows with a CI/CD Pipeline

  • استقرار مجدد تغییرات در Codebase Redeploying Changes in the Codebase

  • مسائل مربوط به یک فرآیند دستی The Issues with a Manual Process

  • راه حل اتوماسیون است The Solution is Automation

  • درک گردش کار درجه تولید Understanding a Production Grade Workflow

  • فشار دادن کد ما به GitHub Pushing Our Code to GitHub

  • ایجاد یک درخواست کشش Creating a Pull Request

  • ساخت خط لوله یکپارچه سازی Building the Integration Pipeline

  • تنظیم قوانین حفاظت از شعبه (در واقع نه) Setting up Branch Protection Rules (Not Really)

  • تنظیم اعتبار AWS در GitHub Actions Setting Up AWS Credentials in GitHub Actions

  • ساختن و هل دادن تصویر ما به ECR Building and Pushing Our Image to ECR

  • همه بد من My Bad Everyone

  • دانلود و به روز رسانی فایل task-definition.json Downloading and Updating the task-definition.json File

  • استقرار تعریف وظیفه Deploying the Task Definition

  • رفع مشکل استقرار ما Fixing Our Deployment Issue

  • مشکل اصلی این راه حل The Major Issue with This Solution

  • استقرار آبی/سبز راه حل بهینه است Blue/Green Deployments is the Optimal Solution

  • پاره کردن خوشه ECS Tearing Down the ECS Cluster

استقرار چند کانتینر در AWS ECS Multi Container Deployment to AWS ECS

  • استقرار چند کانتینر Multi Container Deployment

  • نیاز به NGINX The Need for NGINX

  • چند مرحله ای Dockerfile Multi Stage Dockerfile

  • مسائل مربوط به استفاده از کانتینر پایگاه داده The Issues With Using a Database Container

  • راه اندازی پایگاه کد ما برای استقرار Setting Up Our Codebase for Deployment

  • فشار دادن تصویر ما به AWS ECR Pushing Our Image to AWS ECR

  • تعریف وظیفه چند کانتینری Defining a Multi Container Task Defintion

  • اضافه کردن متغیرهای محیطی Adding Environment Variables

  • به روز رسانی تعریف وظیفه Updating the Task Definition

زمان کوبرنتیس است Time for Kubernetes

  • پروژه جدید (بسیار بزرگتر) ما Our New (Much Larger) Project

  • آیا می‌توانیم همین کار را انجام دهیم؟ Can We Just Do the Same Thing?

  • Kubernetes برای نجات Kubernetes to the Rescue

  • ارتباط از طریق Kubectl Communication via Kubectl

  • نصب Kubernetes Installing Kubernetes

درک Pods Understanding Pods

  • نوشتن اولین فایل مانیفست ما Writing Our First Manifest File

  • کانتینرها در غلاف اجرا می شوند Containers Run in Pods

  • انتخاب اشیاء Kubernetes با apiVersion Selecting Kubernetes Objects With the apiVersion

  • درک بقیه فایل مانیفست Understanding the Rest of the Manifest File

  • در حال اجرا Pod ما Running Our Pod

خدمات Kubernetes برای ارتباطات Kubernetes Services for Communication

  • نوشتن فایل مانیفست سرویس Writing a Service Manifest File

  • سرویس NodePort چگونه کار می کند How the NodePort Service Works

  • ایجاد Node و Mongo Pods Creating the Node and Mongo Pods

  • سرویس ClusterIP برای ارتباطات داخلی ClusterIP Service for Internal Communication

استقرار برای مدیریت Pods ما Deployments to Manage Our Pods

  • اگر پاد خراب شود چه اتفاقی می افتد؟ What Happens if the Pod Crashes?

  • اعزام به امداد Deployments to the Rescue

  • تشریح فایل Manifest Dissecting the Manifest File

  • ایجاد Frontend Store ClusterIP Creating the Frontend Store ClusterIP

  • ایجاد Deployment و ClusterIP برای محصولات API Creating the Deployment and ClusterIP For the Products API

  • ایجاد استقرار MongoDB Creating the MongoDB Deployment

  • اجرای همه فایل های مانیفست Running All the Manifest Files

  • استقرار برای Notifications API Deployment for the Notifications API

  • استقرار و ClusterIP برای RabbitMQ Deployment and ClusterIP for RabbitMQ

  • بررسی اینکه آیا همه چیز کار می کند یا خیر Checking if Everything Works

متغیرهای محیط، ConfigMaps و Secrets Environment Variables, ConfigMaps and Secrets

  • افزودن متغیرهای محیطی به کد ما Adding Environment Variables to Our Code

  • تعریف متغیرهای محیطی Defining Environment Variables

  • ConfigMaps برای متغیرهای محیطی که معمولاً استفاده می شود ConfigMaps for Commonly Used Environment Variables

  • مخفی کردن متغیرهای محیطی با اسرار Hide Environment Variables With Secrets

سرویس ورودی به شبکه در خوشه Ingress Service to Network Into the Cluster

  • نیاز به یک سرویس ورودی The Need for an Ingress Service

  • نوشتن برخی از تنظیمات ورودی Writing Some Ingress Configuration

  • برخی از داده های محصول Some Product Data

  • آزمایش دستی برنامه ما Manually Testing Out Our App

  • درک پیکربندی Ingress Understanding the Ingress Configuration

جلدهای Kubernetes، جلدهای پایدار و ادعاهای حجم مداوم Kubernetes Volumes, Persistent Volumes & Persistent Volume Claims

  • داده های ما ماندگار نیستند! Our Data is Not Persisting!

  • یادآوری در مورد حجم A Reminder on Volumes

  • جلدهای Kubernetes راه حل نیستند Kubernetes Volumes Are Not the Solution

  • Persistent Volumes, for well... Persistent Data Persistent Volumes, for well... Persistent Data

  • ادعاهای حجم مداوم Persistent Volume Claims

  • نوشتن پیکربندی و اعمال PVC Writing the Config and Applying the PVC

استقرار در برنامه ما برای AWS EKS Deploying to Our App to AWS EKS

  • فرآیند استقرار The Deployment Process

  • ایجاد یک خوشه EKS با Eksctl Creating a EKS Cluster with Eksctl

  • درک زمینه Kubectl Understanding Kubectl Context

  • ایجاد Twilio Secret در Prod Creating the Twilio Secret in Prod

  • اضافه کردن تعادل بار ورودی AWS Adding an AWS Ingress Load Balancer

  • تعریف دامنه میزبان Defining the Host Domain

  • اعمال بقیه تنظیمات ما Applying the Rest of Our Configuration

  • آزمایش برنامه مستقر ما! Testing Our Deployed App!

ساخت یک خط لوله CD برای خوشه EKS ما Building a CD Pipeline for Our EKS Cluster

  • به روز رسانی خوشه تولید ما Updating Our Production Cluster

  • مراحلی که خط لوله سی دی ما باید انجام دهد The Steps Our CD Pipeline Needs to Take

  • ایجاد یک مخزن GitHub Creating a GitHub Repository

  • شروع گردش کار استقرار ما Starting Our Deployment Workflow

  • ساختن و ارسال تصویر ما به DockerHub Building and Pushing Our Image to DockerHub

  • تکمیل خط لوله با به روز رسانی خوشه ما Completing Our Pipeline By Updating Our Cluster

  • کار کرد! It Worked!

  • حذف خوشه ما Deleting Our Cluster

نمایش نظرات

آموزش Docker و Kubernetes - راهنمای کامل توسعه دهندگان
جزییات دوره
12.5 hours
137
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,223
4.6 از 5
دارد
دارد
دارد
Laith Harb
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Laith Harb Laith Harb

مهندس نرم افزار