fbpx

Микросервис архитектур (Microservices Architecture) гэдэг нь программ хангамжийн системийг жижиг, бие даасан, тодорхой үүрэгтэй олон жижиг үйлчилгээ (service) болгон хуваах загвар юм. Эдгээр үйлчилгээ бүр нь тусдаа ажиллаж, бие даан хөгжүүлэгдэж, байршуулж, удирдагддаг.

Товчоор хэлбэл, том нэг системийг олон жижиг систем болгон задлах гэсэн санаа юм.

Микросервисийн үндсэн ойлголт

      • Нэг үйлчилгээг нэг зорилгод зориулна: Жишээ нь, хэрэглэгчийн бүртгэл, төлбөрийн систем, барааны мэдээлэл гэх мэт тус тусдаа микросервисүүд байж болно.

      • Бие даасан: Үйлчилгээ бүр өөрийн өгөгдлийн сантай байж болно, бусадтай шууд мэдээлэл хуваалцахгүй.

      • API-гаар холбогдоно: Үйлчилгээ хоорондоо HTTP/REST, gRPC, messaging (RabbitMQ, Kafka) зэргээр харилцана.

      • Тусдаа хөгжүүлэлт ба байршуулалт: Нэг үйлчилгээний өөрчлөлт бусдад нөлөөлөхгүйгээр сайжруулж болно.

      • Polyglot байдал: Үйлчилгээ бүр өөр өөр программчлалын хэл, өгөгдлийн сан ашиглаж болно.

Микросервис архитектурын зорилго

      1. Хурдасгасан хөгжүүлэлт — Багаар зэрэг ажиллах боломжийг нэмэгдүүлнэ.

      2. Өргөтгөх чадвар — Зөвхөн шаардлагатай үйлчилгээг масштаблах боломж.

      3. Технологийн уян хатан байдал — Шинэ технологи ашиглах, туршихад хялбар.

      4. Ашиглалтын найдвартай байдал — Нэг үйлчилгээ уналаа ч бусад хэвийн ажиллана.

      5. DevOps-т суурилсан автомат байршуулалт — CI/CD ашиглан үйлчилгээг түргэн, хялбараар байршуулна.

Давуу талууд:

      • Өргөтгөхөд хялбар (Horizontal scalability)

      • Олон баг зэрэг ажиллах боломжтой

      • Алдаа тусгаарлалттай — алдаа зөвхөн тухайн үйлчилгээнд нөлөөлнө

      • Хурдан байршуулалт

      • Шинэчлэл хийхэд хялбар

      • Тест хийхэд илүү хялбар (unit level)

Сул талууд:

      • Нарийн төвөгтэй байдал — олон сервис удирдах хэрэг гарна

      • Өндөр DevOps чадавх шаарддаг — CI/CD, Docker, Kubernetes зэрэг ашиглах шаардлагатай

      • Үйлчилгээ хоорондын харилцаа төвөгтэй — сүлжээний саатал, authentication, latency зэргийг тооцоолох шаардлагатай

      • Өгөгдлийн менежмент — үйлчилгээ тус бүр өөрийн DB-тай учир transaction удирдах төвөгтэй болдог

      • Хяналт ба логжуулалт — төвлөрсөн лог, мониторинг хэрэгтэй (Prometheus, Grafana, ELK Stack гэх мэт)

Хэзээ микросервис хэрэглэх вэ?

Микросервис нь том, олон модулиас бүрдсэн, түгээмэл өргөжих шаардлагатай, байнгын шинэчлэгддэгсистемд тохиромжтой. Жишээ нь:

      • Онлайн худалдааны платформ (Amazon)

      • Банканд суурилсан системүүд

      • SaaS платформууд (Google Workspace, Office365)

      • Тээвэр, ложистикийн системүүд

Харин жижиг, энгийн системд микросервис нь шаардлагагүй төвөгтэй байж болзошгүй.

Микросервисийн архитектур нь орчин үеийн программ хангамж хөгжүүлэлтийн хүчирхэг шийдэл бөгөөд системийг уян хатан, өргөтгөх боломжтой, хуваарилагдсан байдлаар хөгжүүлэхэд тусалдаг. Гэвч зөв хэрэгжүүлэлт, зохион байгуулалт, автоматжуулалт шаардагдах тул бэлтгэл сайтай байж хэрэгжүүлэх нь хамгийн чухал.

Leave a Reply