Sobes.tech
Middle

Кандай кызмат түрлөрү бар жана алар төмөнкү деңгээлде кандай иштейт?

sobes.tech AI

AIден жооп

Микросервистер жана таралган системалар контекстинде негизги түрлөрү бар:

  • Монолиттик колдонмолор: Бирдиктүү, бөлүнбөс код базасы, бардык функцияларды камтыйт.
  • Микросервистер: Кичинекей, көз карандысыз кызматтардын жыйындысы, ар бири өз бизнес логикасын ишке ашырат. API аркылуу өз ара аракеттенишет.
  • Serverless (серверсиз): Булуттагы провайдер ресурстарды динамикалык бөлүштүрүү жана масштабдоо менен иштейт. Дамытуучу функциялардын кодуна гана көңүл бурат.

Төмөнкү деңгээлде иштөө мындайча көрүнөт:

Монолит:

Бир процесстен ишке ашырылат. Бардык компоненттер бир убакта эс тутумга жүктөлөт. Компоненттер ортосунда байланыш функциялар же методдор аркылуу болот. Төзүмдүүлүк резервдик көчүрмө аркылуу камсыздалат. Масштабдоо кыйын, бардык колдонмону кеңейтүү керек. Ресурстар көбүнчө ашыкча пайдаланылат.

Микросервистер:

Ар бир микросервис — өзүнчө процесс же процесстердин топтому. Өзүнчө контейнерде, виртуалдык машинада иштейт. Тармак аркылуу байланышат, көбүнчө HTTP/gRPC аркылуу — синхрон жана асинхрон протоколдор менен (мисалы, RabbitMQ, Kafka). Ар бир кызматтын өз технологиялык стек жана маалымат базасы болушу мүмкүн. Масштабдоо ар бир кызмат үчүн өзүнчө жүргүзүлөт. Жогорку ишенимдүүлүк камсыздалат (бир кызматтын иштебей калышы башка кызматтарга таасир этпейт), ресурстарды натыйжалуу пайдалануу. Башкаруу татаалданат (Service Discovery, API Gateway, логдоо жана мониторинг керек).

Микросервистердин тармактык өз ара аракеттенүүсүнүн мисалы:

// Сервис Aга суроо
GET /users/123 HTTP/1.1
Host: service-a.example.com
// Сервис Aдан жооп
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "username": "testuser"
}

Serverless:

Функциянын коду булуттагы чөйрөдө жайгаштырылат. Булут провайдери белгилүү окуяларга (HTTP-суроолор, кезекке билдирүүлөр, маалымат базасындагы өзгөрүүлөр) жооп катары функцияны иштетет. Инфраструктура (серверлер, ОС) провайдер тарабынан башкарылат. Функциялар кыска мөөнөттүү жана stateless (күй сакталбайт). Масштабдоо автоматтык, окуялардын санына жараша. Төлөм ресурстарды колдонуу боюнча жүргүзүлөт (аткаруу саны, иштөө убактысы). Төмөнкү деңгээлде провайдер контейнерлер же виртуалдык машиналар колдонуп, функцияларды изоляциялайт жана иштетет, бирок бул деңгээл колдонуучудан жашырын.

AWS Lambda мисалы — Serverless-функция:

# Жөнөкөй Lambda функциясы
import json

def lambda_handler(event, context):
    # Кирүү окуясын иштетүү
    # Логиканы аткаруу
    response_body = {
        "message": "Hello from Lambda!",
        "input": event
    }

    return {
        "statusCode": 200,
        "body": json.dumps(response_body)
    }

Салыштыруу таблицасы:

Өзгөчөлүк Монолит Микросервистер Serverless
Архитектура Бир код базасы Эркин кызматтар Функциялар, окуяларга негизделген
Орнотуу Бир процесс Ар бир кызмат үчүн өзүнчө Провайдер тарабынан башкарылат
Масштабдоо Горизонталдуу (көчүрүү) Ар бир кызмат үчүн өзүнчө Автоматтык, окуяларга негизделген
Түзүмдүүлүк Төмөн (азайтуу мүмкүн) Жогорку (бөлүнгөн) Жогорку (энергетикалык)
Ресурстарды пайдалануучу Кээде ашыкча, ашыкча Натыйжалуу Колдонуу боюнча төлөө
Башкаруу татаалдыгы Төмөн Жогорку Төмөн (инфраструктура үчүн)
Байланышуу Ички процесстер арасында Тармак аркылуу (API, билдирүүлөр) Окуялар аркылуу