آموزش پیاده سازی معماری نرم افزار یک سیستم در مقیاس بزرگ

Implementing Software Architecture of a Large-Scale System

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: رویکرد عملی به راه حل های نرم افزاری معماری سیستم های مقیاس بزرگ با استفاده از روش های مدرن و محصولات منبع باز درک از طریق کد، چالش های معماری توسعه سیستم های در مقیاس بزرگ - مقیاس پذیری، قابلیت اطمینان، استقرار، اجرای کد مشاهده پذیری از ابزارها و فناوری های مختلف مورد استفاده برای ساختن سیستم‌های مقیاس بزرگ - Redis، RabbitMQ، Netflix، Fluentd، Elasticsearch، Kubernetes و غیره کدهای قابل دانلود به همراه پیکربندی، اسکریپت‌ها و دستورالعمل‌ها برای اجرای یک سیستم کوچک بر روی لپ‌تاپ و در محیط ابری نمایشی عملی از نحوه مقیاس‌بندی سیستم‌ها و هم در محیط On-Premises و هم در محیط های Cloud عمل می کند. اگر جاوا را نمی دانید، تجربه خوبی با هر زبان برنامه نویسی مدرن دیگری نیز انجام خواهد داد. آشنایی با دستورات بسیار ابتدایی پوسته لینوکس و اسکریپت نویسی مفید خواهد بود. اگر روی لینوکس کار نکرده اید، یک تجربه اسکریپت نویسی خوب در هر پلتفرم دیگری نیز انجام خواهد شد.

بهترین راه برای یادگیری توسعه نرم افزار، نوشتن کد است. بهترین راه برای یادگیری معماری نرم افزار، ساخت و اجرای یک سیستم است. این دقیقاً همان کاری است که شما می خواهید به عنوان بخشی از این دوره انجام دهید!

این دوره بعدی از سری دوره های توسعه دهنده تا معمار است. دوره قبلی "تکنولوژی معماری نرم افزار سیستم های مقیاس بزرگ" بر روی مفاهیم و اصول معماری نرم افزاری متمرکز بود که بر سیستم های مدرن در مقیاس بزرگ حاکم است.

این دوره آموزشی «پیاده‌سازی عملی معماری نرم‌افزاری در مقیاس بزرگ» بر پیاده‌سازی آن نرم‌افزار و اصول معماری راه‌حل در یک سیستم ساختگی مقیاس بزرگ (سیستم کوچک یا ساده مینی‌سیس) با استفاده از فناوری‌های منبع باز متمرکز است.

با یک پایه کد قابل دانلود یک سیستم کوچک شروع می شود. ما این سیستم کوچک را به یک پیاده‌سازی کامل سیستم در مقیاس بزرگ تبدیل می‌کنیم که همراه با دوره پیش می‌رویم. هدف ما یادگیری چالش‌های معماری معمولی است که هر سیستم در مقیاس بزرگ با آن مواجه است و این چالش‌ها را با استفاده از ابزارها، فناوری‌ها و روش‌های مدرن حل کنیم.

شما می توانید با کار کردن بر روی یک سیستم زنده در مورد این چالش ها و راه حل های آنها اطلاعات کسب کنید. برای همین، می توانید یک پایگاه کد سیستم کوچک ارائه شده توسط NewTechWays در Bitbucket یا Github دانلود کنید. برای دانلود، ساخت و اجرای این پایگاه کد می توانید دستورالعمل ها را دنبال کنید. اگرچه دستورالعمل‌ها و اتوماسیون کدها برای پلتفرم‌ها آگنوستیک هستند، این دوره از Google Cloud Platform با استفاده از یک ماشین لینوکس به عنوان محیط آزمایشی ما برای ساخت و اجرای سیستم استفاده می‌کند. بعداً سیستم خود را با استفاده از Kubernetes در Google Cloud Platform در یک محیط تولیدی قرار خواهیم داد.

همانطور که با این دوره پیش می رویم، چالش های معماری زیر را پوشش خواهیم داد و از فناوری های زیر به عنوان راه حل آنها استفاده خواهیم کرد:

  • برنامه 3 لایه

    • Webapp – Python Django

    • سرویس RESTful – Java Spring Boot

    • پایگاه داده – PostgreSQL Cassandra

    • SPA - ReactJS

  • Containerization از سیستم

    • کانتینرهای Docker

    • Docker Compose

  • درخواست مسیریابی در Microservices

    • کشف – Netflix Eureka

    • Gateway – Netflix Zuul

    • بالانسر بار سمت مشتری – روبان

    • تعادل کننده بار سمت سرور - Nginx

  • قابلیت مشاهده سیستم

    • Logging – Elasticsearch، Fluent، Kibana

    • ردیابی - Jaeger

    • هشدارهای نظارت - پرومتئوس

  • مدیریت داده در مقیاس بزرگ

    • در حال ذخیره - Redis

    • پردازش ناهمزمان - RabbitMQ

    • پارتیشن بندی داده افقی - کاساندرا

  • استقرار تولید

    • استقرار ابر - Kubernetes در GCP

    • مقیاس‌سازی خودکار – Kubernetes

    • در دسترس بودن بالا - Kubernetes

    • به روز رسانی های رول - Kubernetes


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

بررسی اجمالی دوره Course Overview

  • معرفی Introduction

  • بررسی اجمالی دوره Course Overview

راه اندازی محیط کار Work Environment Setup

  • محیط کار Work environment

  • VM ایستگاه کاری لینوکس را در فضای ابری ایجاد کنید Create Linux workstation VM on cloud

  • کد ساخت Build code

  • پشتیبان گیری VM ایستگاه کاری Workstation VM backup

اجزای سیستم - زبان ها و چارچوب ها System Components - Languages & Frameworks

  • نمای کلی اجزای سیستم System components overview

  • اجرای سیستم بر روی ابر لینوکس VM Running the system on cloud Linux VM

  • معماری اپلیکیشن وب و انتخاب فناوری Web app architecture and technology selection

  • مروری بر کد برنامه وب Python Django Python Django web app code overview

  • معماری خدمات Services architecture

  • انتخاب فناوری خدمات Services technology selection

  • مروری بر کد خدمات Java SpringBoot Java SpringBoot services code overview

  • انتخاب فناوری پایگاه داده Database technology selection

  • نمای کلی طرحواره RDBMS Postgres Postgres RDBMS schema overview

  • انتخاب فناوری برنامه تک صفحه ای Single page app technology selection

  • معماری ReactJS SPA ReactJS SPA architecture

ظروف داکر - جداسازی وابستگی‌های اجزا و محیط Docker Containers - Isolating component dependencies and environment

  • چرا اجزای برنامه را کانتینریزه کنیم؟ Why containerize application components?

  • سیستم با کانتینرهای داکر System with docker containers

  • برنامه وب جنگو را Dockerize کنید Dockerize django webapp

  • نوشتن Docker برای اتوماسیون Docker compose for automation

  • پایگاه داده postgres را Dockerize کنید Dockerize postgres database

  • خدمات فنری بوت جاوا Dockerize Dockerize java springboot services

  • برنامه تک صفحه ای Reactjs Dockerize Dockerize reactjs single page app

  • اجرای تمام اجزای dockerized Running all dockerized components

  • سیستم در حال اجرا با شبکه داکر Running system with docker network

  • شبکه داکر و حجم Docker network and volumes

  • بررسی سیستم با ظروف docker System review with docker containers

Microservices - Gateway، Discovery & Load Balancing Microservices - Gateway, Discovery & Load Balancing

  • چالش مسیریابی مشتری و خدمات دروازه Client routing challenge & Gateway services

  • کد و پیکربندی سرویس دروازه Netfix Zuul Netfix Zuul gateway service code and configuration

  • سیستم در حال اجرا با سرویس دروازه Netfliz Zuul Running system with Netfliz Zuul gateway service

  • چالش مسیریابی استاتیک و خدمات کشف Static routing challenge & Discovery services

  • کد و پیکربندی سرویس اکتشاف Netflix Eureka Netflix Eureka discovery service code and configuration

  • سیستم در حال اجرا با سرویس اکتشاف Netflix Eureka Running system with Netflix Eureka discovery service

  • تعادل بار مبتنی بر مشتری و سرور Client based & Server based Load balancing

  • کد و پیکربندی متعادل کننده بار Netflix Ribbon Netflix Ribbon load balancer code and configuration

  • سیستم در حال اجرا با بار متعادل کننده های Nginx & Ribbon Running system with Nginx & Ribbon load balancers

ثبت متمرکز با Elasticsearch، Fluentd و Kibana (پشته EFK) Centralized Logging with Elasticsearch, Fluentd & Kibana (EFK stack)

  • قابلیت مشاهده سیستم - ثبت، ردیابی و نظارت System Observability - Logging, Tracing and Monitoring

  • ثبت چالش ها در سیستم های مقیاس بزرگ Logging challenges in large-scale systems

  • معماری ورود به سیستم متمرکز Centralized logging architecture

  • افزایش ظرفیت VM Incrementing VM capacity

  • پیکربندی Elasticsearch، Fluentd و Kibana (پشته EFK) Configuration of Elasticsearch, Fluentd & Kibana (EFK stack)

  • سیستم مشاهده با پشته Elasticsearch، Fluentd، Kibana Observing system with Elasticsearch, Fluentd, Kibana stack

ردیابی توزیع شده با Uber Jaeger Distributed Tracing with Uber Jaeger

  • ردیابی چالش ها در سیستم های مقیاس بزرگ Tracing challenges in large-scale systems

  • معماری ردیابی توزیع شده Distributed tracing architecture

  • ردیابی توزیع شده با Uber Jaeger Distributed tracing with Uber Jaeger

  • مکانیسم هسته ردیابی توزیع شده Distributed tracing core mechanism

  • کد و پیکربندی ابزار دقیق Uber Jaeger Uber Jaeger instrumentation code and configuration

  • مشاهده تأخیر API با استفاده از ردیابی Jaeger Observing API latency using Jaeger tracing

مانیتورینگ متریک با پرومتئوس Metrics Monitoring with Prometheus

  • معیارها برای سیستم های مقیاس بزرگ Metrics for large-scale systems

  • افشای معیارهای مؤلفه برنامه برای Prometheus Exposing application component metrics for Prometheus

  • پیکربندی پرومتئوس برای معیارها Prometheus configuration for metrics

  • مشاهده معیارهای سیستم از طریق پرومتئوس Observing system metrics through Prometheus

ذخیره داده با کش Redis Data Caching with Redis Cache

  • چالش های درخواست و حجم داده بالا Challenges of high request and data volume

  • ذخیره برای مدیریت بار فقط خواندنی Caching for managing read only load

  • انتخاب فناوری ذخیره سازی Caching technology selection

  • کد سرویس برای کش Redis تغییر می کند Service code changes for Redis cache

  • پیکربندی کش Redis Redis cache configuration

  • سیستم در حال اجرا با کش Redis Running system with Redis cache

پردازش ناهمزمان با RabbitMQ Asynchronous Processing with RabbitMQ

  • مدیریت بار فقط نوشتن برای گردش‌های کاری Async Managing write only load for Async workflows

  • انتخاب فناوری صف پیام Messaging queue technology selection

  • تغییر کد سرویس برای RabbitMQ Service code changes for RabbitMQ

  • پیکربندی RabbitMQ RabbitMQ configuration

  • سیستم در حال اجرا با RabbitMQ Running system with RabbitMQ

مقیاس پذیری افقی با کاساندرا Horizontal Scalability with Cassandra

  • محدودیت های RDBMS و پارتیشن بندی داده ها RDBMS Limitations and Data Partitioning

  • انتخاب فناوری پایگاه داده توزیع شده Distributed database technology selection

  • طرحواره کاساندرا در مقابل طرحواره پستگرس Cassandra schema vs Postgres schema

  • کد سرویس برای کاساندرا تغییر می کند Service code changes for Cassandra

  • پیکربندی کاساندرا Cassandra configuration

  • سیستم در حال اجرا با خوشه پایگاه داده کاساندرا بسیار در دسترس Running system with highly available Cassandra database cluster

استقرار با Kubernetes در Google Cloud Deployment with Kubernetes on Google Cloud

  • حرکت از استقرار آزمایشی به استقرار تولید Moving from test deployment to production deployment

  • دلایل استقرار Kubernetes و Cloud Reasons for Kubernetes and Cloud deployment

  • معماری خوشه ای Kubernetes Kubernetes cluster architecture

  • راه اندازی Cloud Container Registry Setting up Cloud Container Registry

  • ایجاد خوشه Kubernetes در Google Cloud Creating Kubernetes Cluster on Google Cloud

  • پیکربندی Kubernetes برای سیستم Kubernetes configuration for the system

  • استقرار سیستم در Kubernetes Deploying system on Kubernetes

  • قرار دادن سیستم در معرض اینترنت با استفاده از تعادل بار خارجی Exposing system to Internet using External Load Balancers

  • در دسترس بودن بالا با Kubernetes High availability with Kubernetes

  • مقیاس بندی خودکار با Kubernetes Auto-scaling with Kubernetes

  • ارتقاءهای در حال حرکت با Kubernetes Rolling upgrades with Kubernetes

  • خاموش کردن خوشه Kubernetes Shutting down Kubernetes cluster

نمایش نظرات

آموزش پیاده سازی معماری نرم افزار یک سیستم در مقیاس بزرگ
جزییات دوره
11.5 hours
82
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,825
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

NewTechWays - Anurag Yadav NewTechWays - Anurag Yadav

در دسترس قرار دادن دانش برای همه