Əsas məzmuna keç
DevScallix
← ProqramlarPlanlaşdırılır

Microservices və Distributed Systems

Servis sərhədləri, məlumat sahibliyi, uğursuzluqla işləmə və nə vaxt monolit daha yaxşıdır.

Bu proqram planlaşdırılır və hələ cədvələ salınmayıb. Tarix, qiymət və qrup elan olunmayıb. Maraq bildirsəniz, proqram planlaşdırıldıqda və ya fərdi format müzakirə olunduqda sizinlə əlaqə saxlayarıq.

Məqsəd

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.

Kimin üçündür

  • Spring Boot-da güclü təcrübəsi olan və çox servisli sistemlərlə işləyən və ya işləyəcək mühəndislər
  • Monolitdən parçalanma qərarında iştirak edən senior namizədlər
  • Sistemin başqa hissələrinə təsirini düşünməli olan backend developer-lər
  • Arxitektura rolu istiqamətində hərəkət edənlər

Kimin üçün deyil

  • Spring Boot və verilənlər bazası əsaslarını yenicə öyrənənlər: Java Backend Career Track ilə başlayın
  • Yalnız Kubernetes administratorluğu öyrənmək istəyənlər: proqram yalnız lazımi konseptləri əhatə edir
  • Mikroservisi hər problem üçün hazır cavab hesab edənlər: proqram bu fikri sorğulayır

İlkin tələblər

  • Spring Boot ilə real servis yazmaq təcrübəsi
  • Transaction, index və SQL anlayışı
  • REST API dizaynı və HTTP-nin əsasları
  • Docker ilə konteyner işə salmaq
  • Message broker-in nə olduğunu ümumi bilmək

Proqramın sonunda nə bacaracaqsınız

Proqramın sonunda nə bacaracaqsınız

  • Domain sərhədləri əsasında servis bölgüsü təklif edib əsaslandırmaq
  • Hər datanın bir sahibi olmasını təmin edən məlumat modeli qurmaq
  • Sinxron və asinxron kommunikasiyanı konkret ssenari üzrə seçmək
  • Timeout, retry, backoff və circuit breaker-i birlikdə düzgün konfiqurasiya etmək
  • Saga ilə çoxservisli əməliyyatı kompensasiya məntiqi ilə həyata keçirmək
  • Eventual consistency-nin istifadəçi təcrübəsinə təsirini izah etmək
  • Distributed tracing ilə sorğunun servislər arasında izini araşdırmaq
  • Servisi konteynerdə paketləyib Kubernetes konseptləri (deployment, probe, resource limit) ilə təsvir etmək

Heç bir təhsil proqramı işə qəbula və ya vəzifə yüksəlişinə zəmanət verə bilməz.

Tədris planı

Tədris planı

  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

    Praktik 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

    Praktik 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

    Praktik 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ş

    Praktik 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

    Praktik 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

    Praktik 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

    Praktik 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

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

Praktik tapşırıqlar

  • Servis bölgüsü təklifi və trade-off cədvəli
  • Nasazlıq inyeksiyası ilə dayanıqlılıq testi
  • Saga implementasiyası və kompensasiya testi
  • Trace əsaslı yavaşlıq araşdırması
  • Arxitektura qərar qeydi (ADR)

Portfolio nəticələri

  • Üç servisli nümunə sistem və arxitektura diaqramı
  • Dayanıqlılıq testinin nəticə hesabatı
  • Saga axını və kompensasiya testləri
  • Monolit/mikroservis qərarını əsaslandıran ADR

Necə qiymətləndirilir

  • Arxitektura dizaynının müdafiəsi
  • Mentor code review-su
  • Nasazlıq ssenarisinin yazılı təhlili
  • ADR-lərə rəy

Alətlər və texnologiyalar

  • Spring Boot
  • Docker
  • Kubernetes (konseptual səviyyə)
  • OpenTelemetry
  • Resilience4j
  • PostgreSQL
  • Kafka və ya RabbitMQ
  • gRPC
  • Grafana

Səviyyə ardıcıllığı

Əvvəl
Əvvəl: Enterprise Spring Boot və ya Spring Boot ilə güclü middle səviyyəli təcrübə.
Sonra
Sonra: Kafka və Event-Driven Architecture, System Design.
Müddət və format
Müddət və format hələ müəyyən edilməyib; proqram planlaşdırılır və təqvimə salınmayıb.

Tez-tez verilən suallar

Tez-tez verilən suallar

Proqram hazırda açıqdır?

Xeyr. Proqram planlaşdırılır və hələ cədvələ salınmayıb. Tarix və qiymət elan olunmayıb. Maraq bildirə və ya konsultasiya istəyə bilərsiniz.

Kubernetes bilməliyəm?

Əvvəlcədən bilmək tələb olunmur. Proqram yalnız deployment, probe və resource limit kimi konseptləri izah edir; administratorluq əhatə olunmur.

Proqram mikroservisi təbliğ edir?

Xeyr. Mikroservislərin dəyəri və xərci eyni dərəcədə müzakirə olunur, modul monolitin üstün olduğu hallar ayrıca modulda təhlil edilir.

Sertifikat və ya iş vədi var?

Xeyr. Sertifikat və ya nəticə vədi yoxdur. Dəyərləndirmə dizayn müdafiəsi və mentor rəyi şəklindədir və tövsiyə xarakteri daşıyır.

Maraq bildirin

Bu, müraciət və ya ödəniş öhdəliyi deyil. Proqram planlaşdırıldıqda və ya sizə uyğun format müzakirə olunduqda əlaqə saxlayırıq.

Sizinlə necə əlaqə saxlayaq?