گرانترین باگها در مرحله بررسی طراحی تایید میشوند. یک فرض پذیرفتهشده درباره سازگاری، تلاشهای مجدد یا انحراف ساعت میتواند به قطعیهای چند ساعته، تخریب دادهها یا بیدار شدن در ساعت ۳ صبح تبدیل شود، مدتها پس از اینکه سند تایید شده بود. این دوره مهارتی را آموزش میدهد که از این اتفاقات جلوگیری میکند: خواندن سند طراحی سیستمهای توزیعشده و یافتن مستقل نقاط ضعفی که دیگران نادیده گرفتهاند.
این دوره درباره نحوه طراحی سیستمها از صفر یا آمادگی برای مصاحبههای طراحی سیستم نیست. بلکه درباره وظیفه بررسیکننده است: قضاوت مستقل و انتقادی روی معماری شخص دیگر پیش از انتشار. شما یاد میگیرید که یک سند طراحی را به چالش بکشید، مسائل را در یک نردبان شدت مشخص رتبهبندی کنید و تفاوت بین یک تایید صوری و یک بررسی واقعی که از محیط Production محافظت میکند را درک کنید.
این دوره برای چه کسانی است؟
- مهندسان ارشد (Senior)، استاف (Staff) و پرینسیپال (Principal) که طرحهای سیستم را بررسی یا تایید میکنند.
- مهندسانی که در حال ارتقا به سطوح استاف یا پرینسیپال هستند و میخواهند مهارت بررسی را به نقطه قوت خود تبدیل کنند.
- لیدهای فنی و معمارانی که مسئول کیفیت بررسی طراحی در تیم خود هستند.
- هر کسی که شاهد قطعی سیستم به دلیل یک طراحی تایید شده بوده و میخواهد دفعات بعد را پیشبینی کند.
این دوره برای چه کسانی نیست؟
- مبتدیها، فارغالتحصیلان بوتکمپ یا مهندسان تازهوارد به سیستمهای توزیعشده: مطالب با سرعت پیش میروند و فرض میشود شما اصول اولیه را میدانید.
- افرادی که به دنبال تمرینات مصاحبه طراحی سیستم یا آموزشهای «چگونه X را بسازیم» هستند.
- هر کسی که به دنبال قالبهای آماده معماری برای کپی-پیست است، به جای یادگیری قضاوت و استدلال.
پیشنیازها
شما باید در حال حاضر با سیستمهای توزیعشده، پایگاههای داده، شبکه و همزمانی (Concurrency) راحت باشید و بتوانید یک سند طراحی واقعی را بخوانید. این یک دوره پیشرفته و تخصصی است. اگر اصطلاحاتی مانند Linearizability، Quorum یا Write Skew برای شما جدید است، ابتدا یک دوره مقدماتی بگذرانید و سپس بازگردید تا بهره بیشتری ببرید.
چه تواناییهایی کسب خواهید کرد؟
- تحلیل دقیق یک سند طراحی و رتبهبندی هر مشکل در یک نردبان شدت مشخص.
- اجرای محاسبات سریع ظرفیت (Back-of-the-envelope) برای شناسایی اعدادی که از نظر فیزیکی غیرممکن هستند.
- استدلال دقیق درباره سازگاری، اجماع، تکثیر (Replication) و حالتهای شکست به جای حدس و گمان.
- ارائه بازخوردهای سخت و صریح به گونهای که پذیرفته شوند و مخالفت بدون متوقف کردن روند تیم.
هسته اصلی این دوره، دانش سیستمهای توزیعشده است که یک بررسیکننده واقعی را از یک تاییدکننده صوری جدا میکند. شما طیف سازگاری (Linearizability, Sequential, Causal, Eventual) و سردرگمیهایی که حتی مهندسان باسابقه را به اشتباه میاندازد (مانند تفاوت Linearizability با Serializability یا C در CAP با C در ACID) را بررسی میکنید. شما CAP و PACELC را طبق تعریف واقعیشان به کار میگیرید و یاد میگیرید که نتایج غیرممکن مانند FLP، مسئله دو ژنرال و خطاهای بیزانسی واقعاً چه معنایی برای یک طراحی دارند.
شما در نقاطی که طراحیها به طور نامحسوس میشکنند عمیق میشوید: اجماع با Paxos و Raft؛ زمان، ساعتها و علیت (انحراف ساعت، ساعتهای Lamport و Vector، HLC، TrueTime)؛ قفلهای توزیعشده، اجارهها (Leases) و توکنهای حصارگذاری، شامل بحث Redlock؛ تراکنشهای توزیعشده با 2PC، 3PC و Sagas؛ سطوح جداسازی و ناهنجاریهایی مانند Write Skew، Snapshot Isolation، SSI و MVCC؛ تضمینهای تکثیر مانند Read-your-writes، خواندنهای یکنواخت، کورومها و CRDTها؛ و پارتیشنبندی با Consistent Hashing.
سپس یک مدل کاربردی از حالتهای شکست پشت حوادث واقعی میسازید: شکستهای خاکستری، شکستهای آبشاری، طوفانهای تلاش مجدد و شکستهای متاستابل؛ افسانه Exactly-once و نحوه عملکرد واقعی Idempotency؛ و تاخیرهای دم (Tail Latency) از طریق تئوری صف، قانون لیتل و تله بهرهوری، به همراه Caching، Backpressure و Load Shedding. دوره با بررسیهای غیرعملیاتی (SLIs, SLOs, بودجه خطا، مشاهدهپذیری، تست دیباگ در ساعت ۳ صبح)، الگوهای پیشرفته (Event Sourcing, CQRS, Watermarks، متدهای رسمی مانند TLA+) و هنر انسانی بررسی (ارائه بازخوردهای انتقادی، توافق پس از مخالفت و اجتناب از سوگیریهای شناختی) به پایان میرسد.
هر مفهوم بر اساس منابعی است که مهندسان ارشد به آنها اعتماد دارند، از جمله کتاب Designing Data-Intensive Applications، مقاله Raft، The Tail at Scale، تحقیقات شکستهای متاستابل، کتاب SRE گوگل و استفاده از متدهای رسمی در AWS. در نهایت با یک پروژه نهایی نمرهگذاری شده، طرحهای عمداً معیوب را بررسی میکنید و یک کاتالوگ از «پرچمهای قرمز» دریافت میکنید که میتوانید مستقیماً در بررسیهای بعدی خود از آن استفاده کنید.
ثبتنام کنید و به مهندسی تبدیل شوید که نقصهای فاجعهبار را قبل از انتشار شناسایی میکند: بررسیکنندهای که تیمها به او اعتماد دارند و قضاوتی که شما را به سمت جایگاه Staff و Principal سوق میدهد.
Kishore Newton
معمار سازمانی
نمایش نظرات