4.9 KiB
tags | date | author | linked | zero-link | ISBN | |||
---|---|---|---|---|---|---|---|---|
|
2024-01-11 |
|
|
978-5-4461-0996-8 |
Описание
Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились — переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности.
Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проекnироваь и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения — и монолит превращается в набор микросервисов.
Главная идея книги
Тезисы
Литературные заметки
Побег из монолитного ада
Медленным шагом в монолитный ад
Пример приложения, на основе которого рассматриваются проблемы монолитов: FTGO - популярный сервис по заказу еду.
Клиенты заказывают еду в местных ресторанах на сайте компании или с помощью мобильного приложения. FTGO координирует сеть курьеров. Также компания отвечает за оплату услуг курьеров и ресторанов. Рестораны могут редактировать меню и управлять заказами.
Архитектура приложения FTGO
Архитектура представляет собой типичную гексогональную архитектуру. Не смотря на логически модульную структуру, приложение упаковывается в единый WAR-файл.
Так как приложение представляет собой монолит, состоящий из единого файла WAR, написанное с использование уже устаревших фремворков, которое с годами стало большим и сложным и превратилось в Большой комок грязи.
В итоге несмотря на использование гибких методик планирования, темп разработки продолжил замедляться.
Жизнь в монолитном аду
Популярность FTGO привела к тому, что оно выросло из монолитной архитектуры. В итоге команда разработки оказалась в монолитном аду.
Команда приняла решение, что приложение нужно переводить на микросервисную архитектуру.
Программная архитектура имеет мало общего с функциональными требованиями. Их можно достичь используя любую архитектуру. А вот с не функциональными требованиями сложнее.
Микросервисная архитектура спешит на помощь
Куб масштабирования и микросервисы
У каждого сервиса есть своя база данных
Микросервисная архитектура для FTGO
Применив к FTGO декомпозицию получаем следующую архитектуру:
- Order — управляет заказами;
- Delivery — управляет доставкой заказов из ресторана клиентам;
- Restaurant — хранит информацию о ресторанах;
- Kitchen — отвечает за подготовку заказов;
- Accounting — управляет биллингом и платежами.