Əsas məzmuna keç
DevScallix
← ProqramlarMüraciət açıqdır

Microservices və System Design

İşləyən Java/backend mühəndisləri üçün 16 həftəlik müəllim rəhbərliyi ilə proqram: arxitektura trade-off-ları, DDD, Kafka, outbox və saga, PostgreSQL yük altında, Kubernetes, AWS Well-Architected, observability və AI ilə mühəndislik. Bütün kurs boyu bir paylanmış sistemi inkişaf etdirir və yekunda onu işlək kod, ADR-lər, yük testi və uğursuzluq ssenarisi ilə müdafiə edirsiniz. Planlaşdırılmış sillabusdur, qrupa görə dəyişə bilər; iş zəmanəti yoxdur.

Müddət
16 həftə
Canlı dərslər
həftədə 2 dərs, hər biri 90 dəqiqə
Mərhələ
4 mərhələ
Dil
Azərbaycan və ya ingilis dili (qrupa görə)
Həftəlik yük
Laboratoriyalarla birlikdə həftədə ən azı 6 saat praktika planlayın
Necə bitir
ADR-lər, yük testi və uğursuzluq ssenarisi ilə arxitektura müdafiəsi

Kurs boyu qurulan sistem

Bir paylanmış sistem, on altı həftə

Bilet platformasını addım-addım böyüdürsünüz. Pattern seçin: hansı problemi həll etdiyini, necə sındığını və hansı həftədə öyrədildiyini görün.

Pattern seçin
Kubernetes klasteriVeb / mobilAPI gatewayKataloqSifarişlərÖdənişlərBiletlərKafkaBildirişlərPostgreSQLRedisPostgreSQLPostgreSQLÖdəniş provayderi (mock)OpenTelemetry

Problem

Sifarişi yazmaq və hadisəni dərc etmək eyni anda uğurlu olmalıdır.

Necə sınır

Broker dayanır və hadisə itir, ya da təkrar mesaj iki bildiriş göndərir.

Öyrədilir

Həftə 7

Diaqram kursun tədris sistemini göstərir (real şirkət deyil). Kubernetes labları pulsuz lokal klasterdə (kind/k3d), AWS isə ödənişli resurs yaratmadan öyrədilir.

Proqram haqqında

Kimin üçün

Java backend developerlər (junior+ və middle) və Java & Backend Engineering məzunları: servis sərhədlərini çəkmək, servisləri etibarlı əlaqələndirmək və system design qərarlarını əsaslandırmaq istəyənlər.

İlkin tələblər

  • Spring Boot ilə REST API yazırsınız
  • SQL, tranzaksiyalar və JPA ilə işləmisiniz
  • Git, testlər və Docker əsasları

Texnologiyalar

  • Java 21
  • Spring Boot
  • PostgreSQL, Flyway
  • Kafka
  • Outbox, saga, CQRS
  • OpenAPI, contract testləri
  • Resilience4j
  • Redis
  • OpenTelemetry, Micrometer
  • Docker, CI/CD
  • OAuth2/OIDC

Necə tamamlanır

  • Mərhələ yoxlama nöqtələri: context map və contract testi olan iki servis; outbox, idempotent consumer və saga; yük testi, trace-lər, SLO və rollback planı
  • Yekun: öz qurduğunuz servis sistemi, dizayn sənədi, ADR-lər, insident ssenarisi və rubrika ilə texniki müdafiə

Mentorluq və rəy

Canlı dərsləri müəllim aparır; hər həftəlik tapşırıq 100 ballıq rubrika ilə yoxlanılır və yazılı rəy alırsınız. Mərhələ sonlarında yoxlama nöqtəsi var; zəif sahələr vaxtında göstərilir.

16 həftə

Həftə-həftə tədris planı

Planlaşdırılan tədris planıdır: sıra və dərinlik qrupa uyğun dəyişə bilər. İş təminatı və ya vəzifə vədi deyil.

01 · 1–4-cü həftələr

Arxitektura əsasları

Mərhələnin məqsədi: Keyfiyyət atributlarından başlayaraq sistemi nə vaxt və necə bölməyi, müqavilələri və verilənlər bazasını yük altında idarə etməyi öyrənmək.

  1. Həftə 1

    Arxitektura, keyfiyyət atributları və trade-off-lar

    • Keyfiyyət atributları: əlçatanlıq, gecikmə, dəyişkənlik, xərc
    • Modulyar monolit və mikroservislər: nə vaxt bölməmək
    • ADR və C4 diaqramları
    • Kurs boyu sistem: Seatwise-ın paylanmış versiyası

    Laboratoriya: Tədris monolitinin C4 kontekst və konteyner diaqramlarını çəkib iki keyfiyyət atributu üçün ssenari yazmaq.

    Tapşırıq: ADR: monolit qalmaq, yoxsa bir modulu ayırmaq — əsaslandırma və alternativlərlə.

  2. Həftə 2

    Domain-driven design və servis dekompozisiyası

    • Ubiquitous language, bounded context, context map
    • Aggregate-lər və invariantlar
    • Data sahibliyi: hər servisin öz bazası
    • Strangler fig ilə tədrici çıxarma

    Laboratoriya: Event storming: bilet platformasında kontekstləri, aggregate-ləri və data sahiblərini tapmaq.

    Tapşırıq: Context map və strangler fig ilə ilk servisin çıxarılma planı.

  3. Həftə 3

    Servis müqavilələri: REST, gRPC və asinxron əlaqə

    • Sinxron və asinxron əlaqə: coupling və uğursuzluq
    • OpenAPI və gRPC ilə contract-first
    • Versiyalaşdırma və geriyə uyğunluq
    • Consumer-driven contract testləri və API Gateway

    Laboratoriya: Çıxarılan servis üçün OpenAPI müqaviləsi, gateway marşrutu və onu qoruyan contract testi.

    Tapşırıq: Müqaviləni pozmadan yeni versiya buraxmaq; pozan dəyişikliyi CI-ın tutduğunu göstərmək.

  4. Həftə 4

    PostgreSQL miqyasda: sorğular, izolyasiya və kilidlər

    • EXPLAIN ANALYZE və indeks dizaynı
    • İzolyasiya səviyyələri, kilidlər və deadlock-lar
    • Connection pooling (HikariCP) və tükənmə
    • Sıfır dayanmalı miqrasiyalar

    Laboratoriya: Yavaş sorğu və deadlock-u yük altında yaradıb ölçmək, sonra düzəltmək.

    Tapşırıq: Ölçmələrlə (əvvəl/sonra) performans hesabatı və geri qaytarıla bilən miqrasiya.

Yoxlama nöqtəsi: ADR, C4, context map, contract testi və ölçülmüş performans düzəlişi.

02 · 5–8-cü həftələr

Paylanmış data və hadisələr

Mərhələnin məqsədi: Servisləri Kafka ilə məlumat itirmədən və təkrar emal etmədən əlaqələndirmək, konsistentliyi şüurlu seçmək.

  1. Həftə 5

    Paylanmış sistemlərin əsasları

    • Replikasiya və partitioning
    • Konsistentlik modelləri və CAP haqqında yanlış təsəvvürlər
    • Çatdırılma semantikası və sıralama
    • Uğursuzluğun aşkarlanması və koordinasiya

    Laboratoriya: Şəbəkə gecikməsi və bölünməsini simulyasiya edib iki replikanın davranışını müşahidə etmək.

    Tapşırıq: Sistemin hər əməliyyatı üçün konsistentlik tələbi cədvəli və əsaslandırması.

  2. Həftə 6

    Kafka və hadisə əsaslı sistemlər

    • Partition, consumer group, offset və rebalancing
    • Çatdırılma zəmanətləri və idempotent producer
    • Schema təkamülü və hadisə müqavilələri
    • Retry, dead-letter topic və consumer lag

    Laboratoriya: Uğursuzluq laboratoriyası: yavaş istehlakçı lag yaradır və rebalancing fırtınası başlayır — diaqnoz və düzəliş.

    Tapşırıq: Hadisə müqaviləsi, DLT siyasəti və lag üçün xəbərdarlıq həddi.

  3. Həftə 7

    Outbox, idempotentlik və saga-lar

    • Dual write problemi və transactional outbox
    • İdempotent istehlakçı
    • Saga: xoreoqrafiya və orkestrasiya, kompensasiya
    • Paylanmış tranzaksiyaların alternativləri

    Laboratoriya: Sifariş → ödəniş → yer rezervasiyası saga-sı; broker dayananda heç bir hadisə itmir.

    Tapşırıq: Hər uğursuzluq nöqtəsi üçün davranışı göstərən testlər və saga vəziyyət diaqramı.

  4. Həftə 8

    CQRS, event sourcing və keşləmə

    • Read model-lər və eventual consistency-ni istifadəçiyə göstərmək
    • Event sourcing: nə vaxt dəyər, nə vaxt yox
    • Redis keş strategiyaları və invalidasiya
    • Cache stampede və konsistentlik

    Laboratoriya: Hadisələrdən read model qurmaq, sıfırdan yenidən qurmaq və keşi yük testində ölçmək.

    Tapşırıq: ADR: event sourcing istifadə etmək və ya etməmək — sistemin bir konteksti üçün.

Yoxlama nöqtəsi: Outbox, idempotent consumer, kompensasiyalı saga, read model və Kafka uğursuzluq laboratoriyası.

03 · 9–12-cü həftələr

Cloud-native əməliyyatlar

Mərhələnin məqsədi: Sistemi dayanıqlı etmək, Kubernetes-də deploy və debug etmək, müşahidə etmək və insidentləri idarə etmək.

  1. Həftə 9

    Dayanıqlıq və performans

    • Timeout büdcələri, retry və backoff (jitter)
    • Circuit breaker və bulkhead
    • Backpressure, rate limiting və yükün atılması
    • Yük testi və bottleneck analizi

    Laboratoriya: Uğursuzluq laboratoriyası: yavaş asılılıq retry fırtınası yaradır — Resilience4j və limitlərlə qorumaq, k6 ilə sübut etmək.

    Tapşırıq: Yük testi nəticələri, seçilmiş limitlərin əsaslandırılması və insident hesabatı.

  2. Həftə 10

    Konteynerlər və Kubernetes I

    • OCI image-lər və təhlükəsiz Dockerfile
    • Kubernetes arxitekturası: control plane, node, pod
    • Deployment, Service, Ingress/Gateway
    • ConfigMap, Secret, probe-lar, requests və limits

    Laboratoriya: Servisləri lokal kind/k3d klasterinə deploy etmək və sınmış probe-u debug etmək (pulsuz, öz kompüterinizdə).

    Tapşırıq: Manifestlər, resurs limitlərinin əsaslandırılması və troubleshooting qeydləri.

  3. Həftə 11

    Kubernetes II: buraxılış, miqyas və təhlükəsizlik

    • Rolling update, rollback və buraxılış strategiyaları
    • HPA və autoscaling
    • Helm, namespace və GitOps prinsipləri
    • RBAC, network policy və klaster təhlükəsizliyi

    Laboratoriya: Uğursuzluq laboratoriyası: səhv konfiqurasiyalı rollout — aşkarlamaq, geri qaytarmaq və Helm chart-ı düzəltmək.

    Tapşırıq: Helm chart, network policy və rollback runbook-u.

  4. Həftə 12

    Observability və istehsalat əməliyyatları

    • OpenTelemetry: trace, metrika, log
    • Prometheus, Grafana və xəbərdarlıq dizaynı
    • SLI, SLO və error budget
    • İnsident idarəsi, RCA və runbook-lar

    Laboratoriya: Uğursuzluq laboratoriyası: gecikmə reqressiyası trace-lərlə tapılır; SLO pozuntusunun RCA-sı.

    Tapşırıq: Dashboard, SLO, iki xəbərdarlıq və blameless postmortem.

Yoxlama nöqtəsi: Yük testi, Helm chart, rollback runbook-u, SLO və postmortem.

04 · 13–16-cü həftələr

Bulud arxitekturası, AI və yekun layihə

Mərhələnin məqsədi: Bulud və təhlükəsizlik qərarlarını əsaslandırmaq, AI alətlərindən tənqidi istifadə etmək və sistemi müdafiə etmək.

  1. Həftə 13

    AWS və bulud arxitekturası (Well-Architected)

    • VPC, IAM və şəbəkə əsasları
    • EKS, RDS və idarə olunan mesajlaşma: nə vaxt hansı
    • Yüksək əlçatanlıq, disaster recovery və sirlər
    • Xərc idarəsi və Well-Architected review

    Laboratoriya: Sistemin AWS üzərində hədəf arxitekturası, IAM siyasətləri və aylıq xərc hesablaması (ödənişli resurs yaratmadan).

    Tapşırıq: Well-Architected sütunları üzrə review və DR planı (RPO/RTO).

  2. Həftə 14

    System design: metod və təhlükəsizlik arxitekturası

    • Tələblər, tutum hesablaması və miqyas
    • Partitioning və keşlə dizayn qərarları
    • Threat modeling, servis identifikasiyası və OAuth2/OIDC
    • Dizayn review-u: trade-off-ları müdafiə etmək

    Laboratoriya: Mentorla canlı system design review: yekun layihənin dizayn sənədi.

    Tapşırıq: Dizayn sənədi: tələblər, tutum, C4, threat model və ADR-lər.

  3. Həftə 15

    AI ilə mühəndislik: Claude Code, review və risklər

    • Agentic iş axınları, layihə təlimatları və MCP anlayışları
    • AI ilə test yaratmaq və code review — nəticəni yoxlamaq
    • Prompt injection, data sızması və insan təsdiqi sərhədləri
    • Xərc, token intizamı və təkrarlana bilən qiymətləndirmə

    Laboratoriya: Claude Code ilə bir feature və onun testləri; AI-ın yazdığı kodda ən azı iki səhvi tapıb sübut etmək.

    Tapşırıq: AI istifadə siyasəti: hansı işlər, hansı yoxlamalar, hansı məlumat heç vaxt göndərilmir.

  4. Həftə 16

    Yekun arxitektura layihəsi və texniki müdafiə

    • İşlək servislər, asinxron mesajlaşma və konsistentlik strategiyası
    • Deploy manifestləri, monitorinq və avtomatik testlər
    • Yük testi, uğursuzluq simulyasiyaları və təhlükəsizlik review-u
    • Xərc hesablaması, ADR-lər və müdafiə

    Laboratoriya: Canlı demo və mentorun verdiyi uğursuzluq ssenarisi altında sistemin davranışı.

    Tapşırıq: Rubrika ilə qiymətləndirilən yekun texniki müdafiə (həm implementasiya, həm arxitektura əsaslandırması).

Yoxlama nöqtəsi: Dizayn sənədi, xərc hesablaması, AI istifadə siyasəti və rubrika ilə yekun müdafiə.