Əsas məzmuna keç
DevScallix

Microservices və Distributed Systems: Modullar

Proqram paylanmış sistemlərin əsas çətinliklərini real qərar çərçivəsində öyrədir: servis sərhədlərini necə çəkmək, məlumatı kimin saxladığını necə müəyyən etmək, şəbəkə uğursuzluğu ilə necə yaşamaq. Mikroservislərin həmişə cavab olmadığı da açıq müzakirə olunur və modul monolitin üstün olduğu hallar təhlil edilir.

  1. 01

    Servis sərhədləri

    Servisləri texniki qatlara görə yox, biznes qabiliyyətlərinə görə bölməyi öyrənirik.

    • Bounded context və domain-driven dizayn əsasları
    • Sərhəd əlaməti: dəyişiklik tezliyi və komanda sahibliyi
    • Coupling növləri və paylanmış monolit tələsi
    • Strangler yanaşması ilə tədricən parçalama
    • Modul monolit alternativi

    Laboratoriya: Verilmiş monolit sifariş sistemi üçün servis bölgüsü təklif edib iki alternativi trade-off cədvəli ilə müqayisə etmək.

  2. 02

    Məlumat sahibliyi

    Hər servis öz datasına sahib olanda sorğu və hesabat necə qurulur sualına cavab veririk.

    • Servis başına verilənlər bazası və paylaşılan baza riski
    • Data duplikasiyası və read model
    • API composition və CQRS giriş
    • Referans bütövlüyünün itməsi ilə yaşamaq
    • Verilənlərin miqrasiyası və schema sahibliyi

    Laboratoriya: İki servisin ortaq cədvəldən ayrılması: sahiblik sərhədi çəkib məlumatı köçürmək üçün mərhələli plan yazmaq.

  3. 03

    Sinxron və asinxron kommunikasiya

    REST, gRPC və mesajlaşma arasında seçimin nəticələrini müqayisə edirik.

    • REST və gRPC: müqavilə və performans fərqləri
    • Mesajlaşma və event əsaslı əlaqə
    • Temporal coupling və availability hesablaması
    • Müqavilə testləri (consumer-driven contract)
    • API gateway və BFF rolu

    Laboratoriya: Eyni iş axınını sinxron və asinxron qurub əlçatanlıq və gecikmə baxımından müqayisə etmək.

  4. 04

    Uğursuzluqla işləmə

    Şəbəkə etibarsızdır; sistemin buna düzgün cavab verməsini dizayn edirik.

    • Timeout büdcəsi və cascading failure
    • Retry, exponential backoff və jitter
    • Circuit breaker, bulkhead və load shedding
    • Idempotency açarları
    • Chaos təcrübələrinə giriş

    Laboratoriya: Servisə nasazlıq inyeksiya edib timeout və circuit breaker olmadan və olarkən sistemin davranışını müqayisə etmək.

  5. 05

    Saga və uyğunluq modelləri

    Paylanmış transaction əvəzinə kompensasiyalı axınlar və eventual consistency ilə işləyirik.

    • Strong və eventual consistency
    • Saga: choreography və orchestration
    • Kompensasiya əməliyyatları və geri qaytarıla bilməyən addımlar
    • Transactional outbox
    • İstifadəçiyə qismən vəziyyəti göstərmək

    Laboratoriya: Sifariş, ödəniş və anbar servisləri üçün saga qurub ödəniş uğursuzluğunda kompensasiyanı testlə yoxlamaq.

  6. 06

    Distributed tracing və müşahidə

    Bir sorğu bir neçə servisdən keçəndə nə baş verdiyini görünən edirik.

    • Trace, span və context propagation
    • OpenTelemetry ilə instrumentasiya
    • Servislər arası correlation ID
    • Servis xəritəsi və asılılıq analizi
    • SLO əsaslı xəbərdarlıq

    Laboratoriya: Üç servisli axında OpenTelemetry qurub yavaşlığın mənbəyini trace ilə tapmaq.

  7. 07

    Deployment: konteyner və Kubernetes konseptləri

    Servisi paketləmək və işlətmək üçün lazım olan konseptləri, administratorluğa girmədən öyrənirik.

    • Docker image qatları və kiçik image
    • Deployment, Service və ConfigMap konseptləri
    • Liveness/readiness probe
    • Resource request/limit və JVM yaddaş uyğunluğu
    • Rolling update və geri qayıtma

    Laboratoriya: Servisi konteynerləşdirib deployment manifestini yazmaq və probe-ların səhv konfiqurasiyasının nəticəsini müşahidə etmək.

  8. 08

    Modul monolit nə vaxt daha yaxşıdır

    Mikroservis seçiminin real dəyərini və alternativlərini dürüst qiymətləndiririk.

    • Əməliyyat mürəkkəbliyinin dəyəri
    • Komanda ölçüsü və Conway qanunu
    • Modul monolit ilə sərhəd intizamı
    • Qərar qeydi (ADR) yazmaq

    Laboratoriya: Verilmiş şirkət ssenarisi üçün monolit, modul monolit və mikroservis variantlarını ADR formatında müqayisə edib qərar yazmaq.

Proqram səhifəsinə qayıtPlan haqqında sual ver