Mikroservislər
Mikroservis böyük tətbiqi kiçik və müstəqil hissələrə ayıran arxitektura yanaşmasıdır. Hər servis öz işini görür və başqa servislə rabitə qurur.
Niyə ehtiyac var?
- Böyük layihələr idarə etmək çətindir
- Komanda işi asanlaşır
- Yenilik əlavə etmək sürətlənir
- Xəta bir yerdə qalarsa, sistem dayanmır
| Üstünlüklər | Çətinliklər |
|---|---|
| Müstəqil işləmə | Şəbəkə mürəkkəbliyi |
| Asan scale | Servislər arası əlaqə |
| Texnologiya seçimi | Test mürəkkəbliyi |
| Ayrı deploy | Monitorinq çətinliyi |
| Yaxşı performans | Data uyğunsuzluğu |
Mövzular və Keçidlər
🔧 İnfrastruktur və Rabitə
| Mövzu | Təsvir |
|---|---|
| Service Discovery | Servislər bir-birini necə tapır |
| Kommunikasiya | Servislər arası rabitə növləri |
| Deployment Strategiyaları | Servisləri yeniləmə yolları |
💾 Data İdarəetməsi
| Mövzu | Təsvir |
|---|---|
| Database Per Service | Hər servis üçün ayrı database |
| API Composition | Data birləşdirmə pattern-i |
| CQRS | Command Query ayrılığı |
🛡️ Etibarlılıq və Resilience
| Mövzu | Təsvir |
|---|---|
| Circuit Breaker | Sistem qoruma mexanizmi |
| Saga | Transaction idarəetməsi |
| Dead Letter Queue | Uğursuz mesajlar üçün növbə |
🏗️ Arxitektura Pattern-ləri
| Mövzu | Təsvir |
|---|---|
| Domain-Driven Design | Domain mərkəzli dizayn |
| Event-Driven | Hadisə əsaslı arxitektura |
| Hexagonal | Port və Adapter pattern-i |
Monolitik vs Microservice
Monolitik Arxitektura
- Bütün kod bir yerdədir
- Bir database istifadə olunur
- Bütün sistem birlikdə deploy olunur
- Sadə başlanğıc üçün yaxşıdır
Microservice Arxitektura
- Kod ayrı servislərə bölünür
- Hər servisin öz database-i var
- Servislər ayrı-ayrı deploy olunur
- Böyük sistemlər üçün uyğundur
Arxitektura Diaqramları
Monolitik Sistem
graph TB
subgraph "Monolitik Aplikasiya"
A[UI Layer]
B[Business Logic]
C[Data Access Layer]
A --> B
B --> C
end
C --> D[(Database)]
Mikroservis Sistemi
graph TB
subgraph "User Service"
A[User Logic]
A --> B[(User DB)]
end
subgraph "Order Service"
C[Order Logic]
C --> D[(Order DB)]
end
subgraph "Payment Service"
E[Payment Logic]
E --> F[(Payment DB)]
end
G[Client] --> A
G --> C
G --> E
C -.-> A
C -.-> E