Golem Course – Telegram
Golem Course
2.93K subscribers
47 photos
43 videos
40 files
144 links
Alireza Aghamohammadi, Ph.D.

https://youtube.com/@GolemCourse
Download Telegram
02-Scaling.pdf
568.9 KB
جزوه جلسه دو طراحی سیستم‌ها به پیوست تقدیم می‌گردد. در این بخش به روش‌های مقیاس کردن سایت خود می‌پردازیم.

#System_Design
#02_Scaling
7👍1
در جلسه دوم از درس طراحی سیستم‌ها یاد می‌گیریم که چگونه یک سیستم را به گونه‌ای مقیاس‌پذیر کنیم تا بتواند چندصد هزار درخواست را مدیریت کند. به طور مشخص با دو تکنیک مقیاس کردن عمودی (Vertical Scaling) و مقیاس کردن افقی (Horizontal Scaling) آشنا می‌شویم.
https://youtu.be/Ogb5zZ5u6f0
👍41
03-DNS.pdf
342.3 KB
جزوه جلسه سوم درس طراحی سیستم‌ها به پیوست تقدیم می‌گردد. در این بخش با نحوه کارکرد DNS ها برای تبدیل Domain Name به IP Address آشنا می‌شویم.

#System_Design
#03_DNS
👍5
04-Load-Balancer.pdf
458.7 KB
توازن‌کننده بار مقیاس کردن افقی سیستم را امکان‌پذیر می‌کند. جزوه جلسه چهارم در رابطه با توازن‌کننده‌های بار به پیوست تقدیم می‌گردد.
#04_Load_Balancer
#System_Design
👍42
زمانی که یک محصول را توسعه می‌دهیم گاهی نیاز است که به یک سرور لینوکسی تحت شبکه (با IP مشخص) دسترسی داشته باشیم. با توجه به این که خرید سرور به لطف قیمت دلار گران است و هم اتصال ssh این روزها به خاطر اختلال اینترنت آزاردهنده است، می‌توان یک ماشین مجازی ubuntu server بر روی دستکتاپ/لپ‌تاپ شخصی ایجاد کرد و static ip به آن نسبت داد تا هم بتوانیم در یک private network به آن دسترسی داشته باشیم و هم قابلیت ssh برای دسترسی به ترمینال داشته باشد. در این ویدیو ایجاد چنین محیطی را آموزش می‌دهم:

https://youtu.be/CsQ6xqZNHV8
👍3
05-database-replication.pdf
541.1 KB
در درس‌های گذشته یاد گرفتیم که چگونه می‌توانیم برای افزایش مقیاس‌پذیری سیستم، تعداد سرورها را افزایش دهیم. اما همچنان پایگاه داده سیستم به صورت مرکزی قرار دارد. یعنی با افزایش خواندن/نوشتن داده، پایگاه داده می‌تواند به گلوگاه (bottleneck) تبدیل شود.

#05_database_replication
#System_Design
👍1
06-cache.pdf
619 KB
برای افزایش کارایی سیستم‌ها، یک تکنیک استفاده از caching است. در این درس، با این روش آشنا می‌شویم.
#06_cache
#System_Design
👍1🔥1
07-proxies.pdf
257.2 KB
پراکسی در طراحی سیستم‌ها کاربرد زیادی دارند. توزان کننده بار (load balancer) که در جلسه‌های گذشته صحبت کردیم در واقع پراکسی است.

#07_proxies
#System_Design
👍4
08-cdn.pdf
449.6 KB
کاربران سیستم ما لزوماً از یک منطقه جغرافیایی نیستند. ممکن است برخی از آن‌ها در ایران ساکن باشند و برخی در قاره آمریکا. اگر قرار باشد همه درخواست‌ها به یک مکان ارسال شود، زمان پاسخ کاربران بسته به محل سکونت آن‌ها متفاوت خواهد بود. برای افزایش سرعت و کارایی سیستم می‌توان از ایده شبکه توزیع محتوا (Conent Delivery Network ) بهره برد.
#08_CDN
#System_Design
👍2
09-sharding.pdf
522.5 KB
سناریویی را در نظر بگیرید که حجم داده آنقدر زیاد شده است که امکان قرار دادن آن در یک سرور ذخیره‌سازی (پایگاه داده) امکان پذیر نیست. حتی ممکن است بهبود توان و فضای سرور ذخیره‌سازی هم مقرون به صرفه نباشد زیرا پاسخ به درخواست وارده باید کل پایگاه داده را بررسی کند.
افراز بندی پایگاه داده که به آن شارد کردن (sharding) نیز می‌گویند، یک راه معروف برای حل مشکل فوق است.

#09_Sharding
#System_Design
👍3