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

Software Architecture & Technology of Large-Scale Systems

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: سیستم های نرم افزاری معماری را با کارایی بالا، مقیاس پذیری، در دسترس بودن، امنیت با استفاده از فناوری های مدرن یاد بگیرید. نحوه ایجاد یک پشته فنی با به دست آوردن بینش معماری در مورد محصولاتی مانند Nodejs، Redis، Cassandra، Kafka، Hadoop، Elastic Search، .. و بسیاری از الزامات غیر کاربردی دیگر: نحوه طراحی معماری با در نظر گرفتن عملکرد، مقیاس پذیری، قابلیت اطمینان و استقرار امنیت سیستم های تولید در مقیاس بزرگ با استفاده از ابزارهایی مانند Docker & Kubernetes پیش نیازها: شما برنامه نویس خوبی هستید یا بوده اید، می توانید طراحی کد انجام دهید و کد را حداقل به یک زبان برنامه نویسی بنویسید. برنامه های وب، سرویس ها و پایگاه های داده به معنای

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

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

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

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

برای ارائه برخی جزئیات از آنچه به طور خاص پوشش داده شده است:

  • معماری ویژگی‌های غیر کاربردی مانند عملکرد، مقیاس‌پذیری، قابلیت اطمینان، امنیت.

  • استقرار و عملیات در مقیاس بزرگ با استفاده از کانتینرهای Docker و Kubernetes.

  • کار داخلی محصولات منبع باز محبوب مانند Node.js، Redis، Kafka، Cassandra، ELK stack، Hadoop، و غیره برای طراحی مطمئن راه حل های نرم افزاری.

به طور خلاصه، این دوره به شما کمک می کند تا در مدت زمان بسیار کوتاهی هر آنچه را که برای تبدیل شدن به یک معمار «واقعی» نیاز دارید، بیاموزید.


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

معرفی Introduction

  • Developer To Architect Developer To Architect

  • مقدمه ای بر Developer To Architect Introduction to Developer To Architect

کارایی Performance

  • نمای کلی محتویات ماژول Module contents overview

  • یک سیستم نرم افزار مرجع برای بحث در مورد عملکرد A reference software system for discussing performance

  • عملکرد چیست What is performance

  • مشکلات عملکرد چگونه به نظر می رسند How do performance problems look like

  • اصول عملکرد Performance principles

  • اهداف عملکرد سیستم System performance objectives

  • معیارهای سنجش عملکرد Performance measurement metrics

  • تأخیر درخواست سریال Serial request latency

  • تأخیر انتقال شبکه Network transfer latency

  • به حداقل رساندن تاخیر انتقال شبکه Minimizing network transfer latency

  • تأخیر دسترسی به حافظه Memory access latency

  • به حداقل رساندن تأخیر دسترسی به حافظه Minimizing memory access latency

  • تأخیر دسترسی به دیسک Disk access latency

  • به حداقل رساندن تاخیر دسترسی به دیسک Minimizing disk access latency

  • تأخیر پردازش CPU CPU processing latency

  • به حداقل رساندن تاخیر پردازش CPU Minimizing CPU processing latency

  • برخی از هزینه های تاخیر رایج Some common latency costs

  • تأخیر مربوط به همزمانی Concurrency related latency

  • قانون امدال برای کارهای همزمان Amdahl's law for concurrent tasks

  • قانون مقیاس پذیری جهانی گانتر Gunther's universal scalability law

  • اختلاف منابع مشترک Shared resource contention

  • به حداقل رساندن اختلاف منابع مشترک Minimizing shared resource contention

  • به حداقل رساندن اختلافات مربوط به قفل کردن Minimizing locking related contention

  • قفل بدبینانه Pessimistic Locking

  • قفل خوش بینانه Optimistic Locking

  • مکانیسم مقایسه و مبادله Compare and swap mechanism

  • بن بست ها Deadlocks

  • تاخیرهای مرتبط با انسجام Coherence related delays

  • ذخیره سازی Caching

  • معماری سیستم برای عملکرد System architecture for performance

  • ذخیره برای عملکرد Caching for performance

  • HTTP ذخیره سازی داده های ایستا HTTP Caching of static data

  • ذخیره سازی داده های پویا Caching of dynamic data

  • چالش‌های مربوط به حافظه پنهان Caching related challenges

  • خلاصه Summary

  • اسلایدهای ارائه عملکرد Performance presentation slides

مقیاس پذیری Scalability

  • نمای کلی محتویات ماژول Module contents overview

  • عملکرد در مقابل مقیاس پذیری Performance vs Scalability

  • مقیاس پذیری عمودی و افقی Vertical & Horizontal scalability

  • پروکسی معکوس Reverse proxy

  • یک سیستم نرم افزار مرجع برای بحث مقیاس پذیری A reference software system for discussing scalability

  • اصول مقیاس پذیری Scalability principles

  • مدولار بودن برای مقیاس پذیری Modularity for scalability

  • همانند سازی Replication

  • Replication Stateful در برنامه های وب Stateful replication in web applications

  • تکرار بدون حالت در برنامه های کاربردی وب Stateless replication in web applications

  • تکرار خدمات بدون تابعیت Stateless replication of services

  • تکثیر پایگاه داده Database replication

  • انواع تکرار پایگاه داده Database replication types

  • نیاز به خدمات تخصصی Need for specialized services

  • خدمات تخصصی - SOAP/REST Specialized services - SOAP/REST

  • خدمات ناهمزمان Asynchronous services

  • پردازش ناهمزمان و مقیاس پذیری Asynchronous processing & scalability

  • ذخیره سازی برای مقیاس پذیری Caching for scalability

  • پارتیشن بندی عمودی با میکرو سرویس ها Vertical partitioning with micro-services

  • پارتیشن بندی پایگاه داده Database partitioning

  • انتخاب پارتیشن بندی پایگاه داده Database partitioning selection

  • مسیریابی با پارتیشن بندی پایگاه داده Routing with database partitioning

  • روش های مقیاس پذیری افقی Methods for horizontal scalability

  • برخورد با سیستم های مقیاس بزرگ Dealing with large scale systems

  • تعادل بار چندین نمونه Load balancing multiple instances

  • سرویس اکتشاف و تعادل بار Discovery service and load balancing

  • کشف متعادل کننده بار Load balancer discovery

  • HLB در مقابل SLB HLB vs SLB

  • متعادل کننده بار لایه 7 Layer-7 load balancers

  • DNS به عنوان متعادل کننده بار DNS as load balancer

  • تعادل بار سرور جهانی Global server load balancing

  • تکثیر داده های جهانی Global data replication

  • نمونه های مقیاس بندی خودکار Auto scaling instances

  • معماری میکرو خدمات Micro-Services Architecture

  • انگیزه خدمات خرد Micro-Services Motivation

  • معماری سرویس گرا Service Oriented Architecture

  • سبک معماری Micro-Services Micro-Services Architecture Style

  • تراکنش ها در خدمات خرد Transactions in Micro-Services

  • تراکنش های جبرانی - الگوی SAGA Compensating Transactions - SAGA Pattern

  • مدل ارتباطی خدمات خرد Micro-services communication model

  • تراکنش های رویداد محور Event driven transactions

  • مقیاس پذیری فوق العاده با NoSQL و کافکا Extreme scalability with NoSQL and Kafka

  • خلاصه Summary

  • اسلایدهای ارائه مقیاس پذیری Scalability presentation slides

قابلیت اطمینان Reliability

  • نمای کلی محتویات ماژول Module contents overview

  • خرابی در سیستم های توزیع شده در مقیاس بزرگ Failures in large scale distributed systems

  • خرابی های جزئی سیستم Partial system failures

  • مباحث مهندسی قابلیت اطمینان Reliability engineering topics

  • قابلیت اطمینان Reliability

  • دسترسی Availability

  • در دسترس بودن بالا High Availability

  • تحمل خطا Fault Tolerance

  • طراحی تحمل خطا Designing Fault Tolerance

  • طراحی مقاوم به خطا Fault tolerant design

  • افزونگی Redundancy

  • انواع افزونگی Types of redundancy

  • تنها نقطه شکست Single point of failures

  • افزونگی اجزای بدون تابعیت Stateless component redundancy

  • افزونگی جزء حالتی Stateful component redundancy

  • افزونگی متعادل کننده بار Load balancer redundancy

  • زیرساخت مرکز داده به عنوان SPOF Datacentre infrastructure as SPOF

  • ایجاد افزونگی مرکز داده Creating datacenter redundancy

  • تشخیص عیب Fault detection

  • مدل های خطا Fault models

  • بررسی های سلامت Health checks

  • خدمات مانیتورینگ خارجی External monitoring service

  • پایش خوشه ای داخلی Internal cluster monitoring

  • تشخیص عیب در یک سیستم Fault detection in a system

  • بهبودی از شکست ها Recovering from failures

  • بازیابی اجزای بدون تابعیت Stateless component recovery

  • Failover های Stateful Stateful Failovers

  • Load Balancer در دسترس بودن بالا Load Balancer high availability

  • بازیابی پایگاه داده با حالت آماده به کار داغ Database recovery with hot standby

  • بازیابی پایگاه داده با آماده به کار گرم Database recovery with warm standby

  • بازیابی پایگاه داده با پشتیبان گیری سرد Database recovery with cold backups

  • در دسترس بودن بالا در سیستم های مقیاس بزرگ High Availability in large scale systems

  • بهترین شیوه های شکست Failover best practices

  • ثبات سیستم System stability

  • تایم اوت ها Timeouts

  • دوباره تلاش می کند Retries

  • مدار شکن Circuit Breaker

  • شکست سریع و کاهش بار Fail Fast and Shed Load

  • خلاصه Summary

  • اسلایدهای ارائه قابلیت اطمینان Reliability presentation slides

امنیت Security

  • نمای کلی محتویات ماژول Module contents overview

  • اهداف امنیتی Security objectives

  • امنیت شبکه Network security

  • رمزگذاری کلید متقارن Symmetric key encryption

  • رمزگذاری کلید عمومی Public key encryption

  • پروتکل شبکه ایمن Secure network protocol

  • SSL و TLS SSL and TLS

  • هش کردن Hashing

  • امضای دیجیتال Digital signatures

  • گواهی های دیجیتال Digital certificates

  • زنجیره اعتماد Chain of trust

  • دست دادن TLS/SSL TLS/SSL handshake

  • کانال شبکه ایمن Secure network channel

  • فایروال ها Firewalls

  • امنیت شبکه Network security

  • مدیریت هویت Identity management

  • احراز هویت و مجوز Authentication and authorization

  • احراز هویت Authentication

  • انتقال مدارک Credentials transfer

  • تأیید اعتبار Credentials verification

  • احراز هویت Stateful Stateful authentication

  • احراز هویت بدون تابعیت Stateless authentication

  • Single Sign-On Single Sign-On

  • مدیریت دسترسی Access management

  • مدل کنترل دسترسی مبتنی بر نقش Role based access control model

  • نمونه دسترسی مبتنی بر نقش Role based access example

  • مجوز Authorization

  • کمک هزینه توکن OAuth2 OAuth2 token grant

  • کمک هزینه رمز OAuth2 - جریان کد OAuth2 token grant - Code Flow

  • اهدای رمز OAuth2 - جریان رمز عبور OAuth2 token grant - Password Flow

  • OAuth2 در یک سیستم OAuth2 in a system

  • انواع توکن OAuth2 OAuth2 token types

  • توکن های وب Json Json Web Tokens

  • ذخیره توکن Token storage

  • ایمن سازی داده ها در حالت استراحت Securing data at rest

  • ایمن سازی یک سیستم نرم افزاری Securing a Software System

  • آسیب پذیری های رایج Common vulnerabilities

  • تزریق SQL SQL Injection

  • اسکریپت متقابل سایت Cross Site Scripting

  • جعل منابع متقابل سایت Cross Site Resource Forgery

  • خلاصه Summary

  • اسلایدهای ارائه امنیتی Security presentation slides

گسترش Deployment

  • نمای کلی محتویات ماژول Module contents overview

  • چالش های استقرار در مقیاس بزرگ Large scale deployment challenges

  • استقرار برنامه Application deployment

  • استقرار زیرساخت Infrastructure deployment

  • عملیات سیستم System operations

  • راه حل های استقرار مدرن Modern deployment solutions

  • استقرار برنامه Application deployment

  • استقرار کامپوننت Component deployment

  • اتوماسیون استقرار کامپوننت Component deployment automation

  • استقرار با ماشین های مجازی Deployment with Virtual Machines

  • جداسازی از طریق ماشین های مجازی Isolation through virtual machines

  • استقرار با کانتینرها Deployment with Containers

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

  • استقرار زیرساخت Infrastructure deployment

  • الزامات زیرساختی Infrastructure requirements

  • تامین و پیکربندی Provisioning and configuration

  • استقرار با کانتینرها در Cloud Deployment with containers on Cloud

  • استقرار با پشته ابری AWS Deployment with AWS cloud stack

  • استقرار با Kubernetes Deployment with Kubernetes

  • مدیریت چرخه عمر Kubernetes Kubernetes lifecycle management

  • نامگذاری و آدرس دهی کوبرنتیس Kubernetes naming and addressing

  • مقیاس بندی Kubernetes با چندین نمونه Kubernetes scaling with multiple instances

  • تعادل بار Kubernetes Kubernetes load balacing

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

  • ارتقاءهای در حال حرکت Kubernetes Kubernetes rolling upgrades

  • قابلیت های Kubernetes Kubernetes capabilities

  • استقرار Kubernetes Kubernetes deployment

  • خدمات و بار کاری Kubernetes Kubernetes services and workloads

  • معماری Kubernetes Kubernetes architecture

  • ارتقاء سیستم System upgrades

  • به روز رسانی های در حال چرخش Rolling updates

  • استقرار قناری Canary deployment

  • ایجاد مجدد استقرار Recreate deployment

  • استقرار سبز آبی Blue Green deployment

  • تست A/B A/B testing

  • خلاصه Summary

  • اسلایدهای ارائه استقرار Deployment presentation slides

پشته فناوری Technology Stack

  • نمای کلی محتویات ماژول Module contents overview

  • سیستم مرجع برای استفاده از بسترهای فناوری Reference system for using tech platforms

  • برنامه های کاربردی وب Web applications

  • راه حل برای برنامه های کاربردی وب Solutions for web applications

  • وب سرور آپاچی Apache web server

  • معماری وب سرور آپاچی Apache webServer architecture

  • مقیاس پذیری وب سرور آپاچی Apache webserver scalability

  • وب سرور Nginx Nginx webserver

  • معماری Nginx Nginx architecture

  • Nginx به عنوان پروکسی معکوس و کش Nginx as reverse proxy and cache

  • کانتینرهای وب و چارچوب فنری Web containers & spring framework

  • اسکله و بهار Jetty & Spring

  • Node.JS Node.JS

  • حلقه رویداد Node.JS Node.JS event loop

  • راه حل های ابری برای وب Cloud Solutions for web

  • فضای ذخیره ابری Cloud storage

  • Cloud CDN Cloud CDN

  • خدمات Services

  • راه حل های خدماتی Services solutions

  • Memcached Memcached

  • معماری Memcached Memcached Architecture

  • Redis Cache و معماری آن Redis Cache & its architecture

  • راه حل های ذخیره سازی ابری Cloud caching solutions

  • RabbitMQ RabbitMQ

  • معماری RabbitMQ RabbitMQ architecture

  • معماری کافکا Kafka architecture

  • Redis Pub/Sub Redis Pub/Sub

  • راه حل های Cloud MQ Cloud MQ solutions

  • انبارهای داده Datastores

  • راه حل های ذخیره اطلاعات Datastore solutions

  • RDBMS RDBMS

  • معماری مقیاس پذیری RDBMS RDBMS scalability architecture

  • اهداف و مبادلات NoSQL NoSQL objectives & trade-offs

  • آمازون DynamoDB Amazon DynamoDB

  • معماری DynamoDB DynamoDB architecture

  • Google BigTable Google BigTable

  • معماری BigTable BigTable architecture

  • HBase HBase

  • کاساندرا Cassandra

  • ویژگی های کاساندرا Cassandra features

  • MongoDB MongoDB

  • معماری MongoDB MongoDB architecture

  • تجزیه و تحلیل Analytics

  • راه حل های تجزیه و تحلیل Analytics solutions

  • معماری لاگستاش Logstash architecture

  • معماری جریان داده Logstash Logstash data streaming architecture

  • روان Fluentd

  • Elasticsearch Elasticsearch

  • معماری Elasticsearch Elasticsearch architecture

  • Hadoop HDFS Hadoop HDFS

  • نقشه-کاهش Map-Reduce

  • آپاچی اسپارک Apache Spark

  • پردازش جریان Stream processing

  • خلاصه Summary

  • اسلایدهای ارائه فناوری پشته Technology Stack presentation slides

نمایش نظرات

آموزش معماری نرم افزار و فناوری سیستم های مقیاس بزرگ
جزییات دوره
25.5 hours
256
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
38,909
4.5 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

NewTechWays - Anurag Yadav NewTechWays - Anurag Yadav

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