Код Читати оригінал на Dev 1 хв читання 0

Розгортання Spring Petclinic у хмарному середовищі AWS командою DMI

Команда учасників програми DMI успішно розгорнула мікросервісний застосунок Spring Petclinic у хмарному середовищі AWS, використовуючи сучасні DevOps-практики. Проєкт став практичним полігоном для відпрацювання складних процесів контейнеризації, взаємодії сервісів та моніторингу в реальних умовах. Ключовим результатом роботи стала побудова стійкої архітектури з використанням API Gateway, Discovery Server та інструментів розподіленого трасування.

Технічна схема архітектури мікросервісів із компонентами Spring Cloud, API Gateway, різними сервісами, базами даних та системою моніторингу.
Технічна схема архітектури мікросервісів із компонентами Spring Cloud, API Gateway, різними сервісами, базами даних та системою моніторингу. · Джерело зображення: Dev

Як повідомляє Dev, команда DMI (DevOps Micro Internship) завершила розгортання мікросервісного застосунку Spring Petclinic на платформі AWS. Проєкт передбачав створення складної екосистеми незалежних сервісів, які взаємодіють через централізовану конфігурацію, механізми пошуку сервісів та системи моніторингу.

Архітектурний стек та інструменти спостереження

Для забезпечення стабільної роботи мікросервісної структури було використано наступний набір компонентів:

  • Config Server для централізованого керування конфігураціями;
  • Discovery Server (Eureka) для реєстрації сервісів;
  • API Gateway як єдина точка входу;
  • Спеціалізовані сервіси: Customers, Visits, Vets та GenAI Service;
  • Admin Server для адміністрування системи.

Окрім основного функціоналу, розробники інтегрували інструменти спостереження Prometheus, Grafana та Zipkin. Це дозволило відстежувати стан системи в реальному часі, аналізувати продуктивність застосунків та здійснювати розподілене трасування запитів між різними компонентами.

Процеси контейнеризації та розгортання

Один із ключових етапів роботи включав валідацію стека Docker Compose локально перед деплоєм. Це дозволило перевірити порядок запуску сервісів, статус їхнього здоров'я та коректність мережевої комунікації. Для забезпечення сумісності з хмарним середовищем AWS були зібрані образи контейнерів під архітектуру Linux/AMD64.

Для покращення відстежуваності версій розробники впровадили тегування образів за допомогою Git commit hashes. Такий підхід забезпечує чітку простежність змін та можливість швидкого відкату до попередніх стабільних конфігурацій у разі виникнення помилок. Фінальний етап включав автентифікацію Docker з Amazon Elastic Container Registry (ECR) та публікацію готових образів у репозиторії.

Головним технічним викликом стала складність управління залежностями між численними мікросервісами. Команда мала забезпечити синхронне розгортання всіх компонентів, що потребувало ретельного тестування взаємодії між ними та постійного вирішення проблем із конфігураціями мереж.

Використання комбінації Spring Boot, Docker та хмарних послуг AWS дозволило команді реалізувати повний DevOps-пайплайн: від розробки до моніторингу в продакшені.

Контекст для України

Для українських розробників цей кейс є актуальним через високий попит на спеціалістів, що вміють працювати з AWS та Spring Boot в умовах мікросервісної архітектури. На ринку України значної частини вакансій у сфері Fintech та E-commerce базується саме на подібних стеках. Використання Docker Compose для локальної валідації перед деплоєм є стандартною практикою, яку активно вивчають українські студенти та Junior+ інженери на платформах типу DOU або в онлайн-школах. Також важливо, що знання роботи з Amazon ECR стає критичним для релокованих команд, які будують хмарну інфраструктуру за стандартами міжнародних компаній.

Часті запитання

Які інструменти використовувалися для спостереження за системою?
Розробники інтегрували спеціалізовані сервіси Prometheus, Grafana та Zipkin. Це дозволило відстежувати стан системи в реальному часі, аналізувати продуктивність застосунків та здійснювати розподілене трасування запитів між різними компонентами мікросервісної структури.
Як команда забезпечила простежність версій контейнерів?
Для покращення відстежуваності версій розробники впровадили тегування образів за допомогою Git commit hashes. Такий підхід забезпечує чітку простежність змін та можливість швидкого відкату до попередніх стабільних конфігурацій у разі виникнення помилок.
Telegram

Свіжі новини у нашому Telegram

Отримуйте миттєві сповіщення про нові публікації в рубриці «Код»

@procodeandevenmore