میکروسرویس و میکروفرانتاند
Microservices & micro-frontendsمیکروسرویس یک ارتقا نیست؛ یک معامله است. پیچیدگی داخل کد را کم میکنی و به شبکه منتقلش میکنی. این مسیر هر دو طرف معامله را نشان میدهد و بیشترین وقتش را روی سختترین بخش میگذارد: اینکه سرویسها چطور با هم حرف بزنند.
پیشرفت تو
درصد هر فصل از دو چیز میآید: چقدر از بخشهایش را خواندهای (۵۵٪) و چند تمرینش را تیک زدهای (۴۵٪). همهچیز داخل مرورگر خودت میماند.
فصل
فصلها به هم وابستهاند و ترتیبشان معنا دارد. هر مسیر با پروژههای نهایی تمام میشود: ساده، متوسط، پیچیده.
مونولیت بد نیست — کِی میکروسرویس
نشانههای واقعی نیاز، و هزینهای که میپذیری.
در نوبت نوشتنمرزبندی سرویسها
bounded context، و اشتباه مرزبندی بر اساس جدول.
در نوبت نوشتنارتباط همگام ۱: REST
طراحی API، نسخه، و هزینهٔ فراخوانی زنجیرهای.
در نوبت نوشتنارتباط همگام ۲: gRPC
protobuf، استریم، و کِی از REST بهتر است.
در نوبت نوشتنارتباط ناهمگام ۱: صف پیام
RabbitMQ، تحویل، تأیید و صف مرده.
در نوبت نوشتنارتباط ناهمگام ۲: جریان رویداد
Kafka، partition، consumer group و ترتیب.
در نوبت نوشتنمقایسهٔ روشهای ارتباط
ماتریس تصمیم: کدام روش برای کدام مسئله.
در نوبت نوشتنAPI Gateway و BFF
یک درِ ورودی، و اینکه چرا هر کلاینت BFF خودش را میخواهد.
در نوبت نوشتنservice discovery و توزیع بار
سرویسها چطور همدیگر را پیدا میکنند.
در نوبت نوشتنداده: هر سرویس، پایگاهدادهٔ خودش
و مسئلهای که این قانون میسازد.
در نوبت نوشتنتراکنش توزیعشده: Saga
choreography در برابر orchestration، و جبران.
در نوبت نوشتنالگوی Outbox و تحویل تضمینشده
چطور پیام و پایگاهداده از هم جدا نیفتند.
در نوبت نوشتنتابآوری
retry، timeout، circuit breaker، bulkhead.
در نوبت نوشتنidempotency و پیام تکراری
شبکه پیام را دو بار میرساند. آماده باش.
در نوبت نوشتنمشاهدهپذیری توزیعشده
لاگ، متریک و trace با OpenTelemetry.
در نوبت نوشتننسخهگذاری API و سازگاری
تغییر بدون شکستن کلاینتها.
در نوبت نوشتنمیکروفرانتاند
روشها: build-time، run-time، module federation — و trade-offها.
در نوبت نوشتنضدالگوها
مونولیت توزیعشده، و بقیهٔ راههای شکست.
در نوبت نوشتنپروژهٔ ۱ — دو سرویس با REST
تقسیم یک مونولیت کوچک به دو سرویس.
در نوبت نوشتنپروژهٔ سادهپروژهٔ ۲ — افزودن صف و Saga
یک عملیات چندسرویسه با جبران خطا.
در نوبت نوشتنپروژهٔ متوسطپروژهٔ ۳ — سامانهٔ کامل
gateway، رویداد، trace توزیعشده و circuit breaker.
در نوبت نوشتنپروژهٔ پیچیده