آموزش System Design

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

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

مخاطبین دوره:

  • توسعه دهندگان نرم افزار که می خواهند مهارت های خود را در سطح معماری ارتقا دهند.

  • مهندسان بک اند که به دنبال درک عمیق تری از طراحی سیستم های مقیاس پذیر هستند.

  • افرادی که برای مصاحبه های طراحی سیستم در شرکت های بزرگ آماده می شوند.

با شرکت در این دوره، دانش و مهارت های لازم برای طراحی سیستم های مدرن و مقیاس پذیر را کسب خواهید کرد و می توانید راهکارهای عملی برای چالش های پیچیده نرم افزاری ارائه دهید.

مقدمه‌ای بر طراحی سیستم‌
مقدمه ای بر معماری کامپیوتر
تفاوت و تاثیر پردازنده ها در پردازش اطلاعات
تفاوت و تاثیر RAM در عملکرد پاسخ دهی و مدیریت سرویس
تفاوت و تاثیر Disk در عملکرد پاسخ دهی و مدیریت سرویس
چرا دانش شبکه برای توسعه دهنده لازم است
مدل OSI و لایه‌های آن
TCP vs UDP
HTTP vs HTTPS
مقایسه HTTP/1، HTTP/1.1، HTTP/2 و HTTP/3
بررسی ساختار آدرس URL
تفاوت URL، URI و URN
مقدمه ای بر hashing
مقدمه ای بر UUID
password hash
checksum hash
consistent hashing
لود بالانسینگ (Load Balancing)
الگوریتم‌های لود بالانسینگ (Load Balancing Algorithms)
کاربردهای Load Balancing
انواع Load Balancer
Stateless vs. Stateful Load Balancing
High Availability و Fault Tolerance
Scalability و Performance
چالش‌های Load Balancer
معرفی API Gateway
کاربردهای API Gateway
مزایا و معایب استفاده از API Gateway
سیستم نام دامنه (DNS – Domain Name System)
فرایند حل و فصل DNS (DNS Resolution Process)
توزیع بار و دسترسی بالا در DNS
انواع رکوردهای DNS و کاربرد آن‌ها
مقدمه‌ای بر کشینگ (Caching)
اهمیت Caching و نقش آن در پروژه‌های بزرگ
انواع Caching به صورت جامع
Cache Replacement Policies
Cache Invalidation
Cache Read Strategies
Cache Coherence and Consistency Models
Caching Challenges
Cache Performance Metrics
درک اولیه در ratelimit
نیازمندی های یک سیستم مبتنی بر ratelimit
دیزاین و معماری ratelimit
الگوریتم های مختلف در ratelimit
CDN (Content Delivery Network)
Origin Server vs. Edge Server
CDN Architecture
Push CDN vs. Pull CDN
پروکسی سرور (Proxy Server) چیست؟
کاربردهای پروکسی سرور (Uses of Proxies)
چالش‌های استفاده از پروکسی‌ها
VPN در مقابل Proxy Server
مقدمه‌ای بر Theorem CAP
Components of CAP Theorem
Trade-offs in CAP Theorem
Examples of CAP Theorem in Practice
فراتر از تئوری CAP
مقدمه‌ای بر پایگاه داده‌ها
پایگاه‌های داده SQL
پایگاه‌های داده NoSQL
مقایسه SQL و NoSQL
Normalization و Denormalization در SQL
In-Memory Database vs. On-Disk Database
Data Replication vs. Data Mirroring
Database Federation
مقدمه‌ای بر Data Partitioning
روش‌های Partitioning
تکنیک‌های Data Sharding
مزایای Data Partitioning
مشکلات رایج در Data Partitioning
Indexes در پایگاه داده‌ها
انواع ایندکس‌ها در پایگاه داده
معرفی ساختار key-value store
معماری و طراحی key-value store
اطمینان از Replication و مقیاس پذیری
ورژن‌سازی داده و تنظیم‌دهی سیستم
مدیریت خطا و خطایابی در Key-Value Store
ویژگی‌های کلیدی در طراحی سیستم‌های مقیاس‌پذیر و توزیع‌شده
در دسترس بودن (Availability)
مقیاس‌پذیری (Scalability)
تأخیر و کارایی (Latency and Performance)
همزمانی و هماهنگی (Concurrency and Coordination)
پایش و مشاهده‌پذیری (Monitoring and Observability)
تاب‌آوری و مدیریت خطا (Resilience and Error Handling)
تحمل خطا در مقابل دسترس‌پذیری بالا (Fault Tolerance vs. High Availability)
Redundancy چیست؟
Replication چیست؟
Replication Strategies
مقایسه Data Backup و Disaster Recovery
کش کردن در سیستم های مقیاس پذیر
الگوریتم‌های ذخیره‌سازی مقیاس پذیر
معماری Distributed Cache
موارد استفاده واقعی Distributed Cache
مسائل و چالش‌های Distributed Cache
آشنایی با صف پیام توزیع‌ شده (Distributed Messaging Queue)
نیازمندی‌های طراحی یک صف پیام توزیع‌ شده
ملاحظات کلیدی در طراحی صف پیام توزیع‌ شده
معماری سطح بالا در صف پیام توزیع‌ شده
طراحی جزئیات معماری صف پیام توزیع‌شده
ارزیابی معماری و تصمیمات طراحی
مانیتورینگ چیست
مدل‌های مختلف مانیتورینگ
Distributed Monitoring
معماری مانیتورینگ توزیع‌شده و پیش‌نیازهای آن
Back-of-the-Envelope Calculation در طراحی سیستم
Authentication
Authorization
Authenticate Requests
Authentication and Authorization Tokens
Distributed Authentication
Distributed Authorization
SSO and Identity Provider
instructor-image

علی بیگدلی

توسعه دهنده backend (AI,IOT,Python)

بیشتر از 8 سال سابقه فعالیت در زمینه برنامه نویسی و تدریس

امتیازات شرکت کنندگان

0

(بر اساس بررسی کلی)

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/400

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.