Hansı xidmət növləri mövcuddur və onlar aşağı səviyyədə necə işləyir?
sobes.tech Süni İntellekt
AI-dan cavab
Mikroservis arxitekturası və paylanmış sistemlər kontekstində bir neçə əsas xidmət növü mövcuddur:
- Monolit tətbiqlər: Bütün funksionallığı əhatə edən, bölünməz, tək kod bazası.
- Mikroservislər: Kiçik, müstəqil xidmətlər toplusu, hər biri müəyyən biznes məntiqini həyata keçirir. API vasitəsilə qarşılıqlı əlaqə qururlar.
- Serverless (serversiz): Bulud provayderinin resursların ayırılması və miqyaslandırılmasını dinamik idarə etdiyi hesablama modeli. İnkişaf etdirici yalnız funksiyaların koduna diqqət yetirir.
Aşağı səviyyədə işləmə belə görünür:
Monolit:
Bir proses kimi icra olunur. Bütün komponentlər eyni zamanda yaddaşa yüklənir. Komponentlər arasında qarşılıqlı əlaqə funksiyaların və ya metodların çağırışları vasitəsilə olur. Dayanıqlıq bütün monolitin ehtiyat nüsxəsi ilə təmin edilir. Miqyaslandırma çətindir, bütün tətbiq nümunəsini miqyaslandırmaq lazımdır. Resurs istifadəsi çox vaxt artıq olur.
Mikroservislər:
Hər mikroservis ayrı proses və ya proseslər qrupudur. İzolyasiya olunmuş mühitdə işləyir (konteyner, virtual maşın). Şəbəkə vasitəsilə, adətən HTTP/gRPC ilə sinxron və ya asinxron protokollar üzərindən qarşılıqlı əlaqə qururlar (məsələn, RabbitMQ, Kafka). Hər xidmətin öz texnologiya yığını və verilənlər bazası ola bilər. Miqyaslandırma hər xidmət üçün müstəqil həyata keçirilir. Yüksək dayanıqlıq təmin edilir (bir xidmətin çökməsi digərinə təsir etmir) və resursların daha yaxşı istifadəsi təmin olunur. İdarəetmə çətinləşir (Service Discovery, API Gateway, paylanmış qeydiyyat və monitorinq tələb olunur).
Mikroservislərin şəbəkə qarşılıqlı əlaqəsinin nümunəsi:
// Service A-ya sorğu
GET /users/123 HTTP/1.1
Host: service-a.example.com
// Service A-dan cavab
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 123,
"username": "testuser"
}
Serverless:
Funksiya kodu bulud mühitində yerləşdirilir. Bulud provayderi müəyyən hadisələrə (HTTP sorğuları, növbədə mesajlar, verilənlər bazasında dəyişikliklər) cavab olaraq funksiya kodunu işə salır. İnfrastruktur (serverlər, OS) provayder tərəfindən idarə olunur. Funksiyalar adətən qısa ömürlü və stateless (yaddaş saxlamayan) olur. Miqyaslandırma avtomatikdir və hadisələrin sayına əsaslanır. Ödəniş resursların istifadəsinə görə həyata keçirilir (icra sayı, işləmə vaxtı). Aşağı səviyyədə provayder konteynerlər və ya virtual maşınlar istifadə edir, lakin bu səviyyə istifadəçidən gizlənmişdir.
AWS Lambda nümunəsi:
# Sadə Lambda funksiyası
import json
def lambda_handler(event, context):
# Gələn hadisənin işlənməsi
# Məntiqin icrası
response_body = {
"message": "Hello from Lambda!",
"input": event
}
return {
"statusCode": 200,
"body": json.dumps(response_body)
}
Müqayisəli cədvəl:
| Xüsusiyyət | Monolit | Mikroservislər | Serverless |
|---|---|---|---|
| Arxitektura | Tək kod bazası | Müstəqil xidmətlər | Hadisələrlə idarə olunan funksiyalar |
| Yerləşdirmə | Tək proses | Hər xidmət üçün müstəqil | Provayder tərəfindən idarə olunur |
| Miqyaslandırma | Üfüqi (kopyalama) | Hər xidmət üçün müstəqil | Avtomatik, hadisələrə əsasən |
| Dayanıqlıq | Aşağı | Yüksək (izolyasiya olunmuş) | Yüksək (daxilidir) |
| Resursların istifadəsi | Qismən artıqdır | Daha effektiv | İstifadə üçün ödəniş |
| İdarəetmə mürəkkəbliyi | Aşağı | Yüksək | Aşağı (infrastruktur üçün) |