digital-garden/source/книги/книготека/Микросервисы. Паттерны разработки и рефакторинга.md
2024-06-13 21:01:37 +03:00

4.9 KiB
Raw Blame History

tags date author linked zero-link ISBN
content/book
2024-01-11
Ричардсон Крис
00 Разработка
978-5-4461-0996-8

Описание

Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились — переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности.

Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проекnироваь и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения — и монолит превращается в набор микросервисов.

Главная идея книги

Тезисы

Литературные заметки

Побег из монолитного ада

Медленным шагом в монолитный ад

Пример приложения, на основе которого рассматриваются проблемы монолитов: FTGO - популярный сервис по заказу еду.

Клиенты заказывают еду в местных ресторанах на сайте компании или с помощью мобильного приложения. FTGO координирует сеть курьеров. Также компания отвечает за оплату услуг курьеров и ресторанов. Рестораны могут редактировать меню и управлять заказами.

Архитектура приложения FTGO

Архитектура представляет собой типичную гексогональную архитектуру. Не смотря на логически модульную структуру, приложение упаковывается в единый WAR-файл.

Так как приложение представляет собой монолит, состоящий из единого файла WAR, написанное с использование уже устаревших фремворков, которое с годами стало большим и сложным и превратилось в Большой комок грязи.

В итоге несмотря на использование гибких методик планирования, темп разработки продолжил замедляться.

Жизнь в монолитном аду

Популярность FTGO привела к тому, что оно выросло из монолитной архитектуры. В итоге команда разработки оказалась в монолитном аду.

Команда приняла решение, что приложение нужно переводить на микросервисную архитектуру.

Программная архитектура имеет мало общего с функциональными требованиями. Их можно достичь используя любую архитектуру. А вот с не функциональными требованиями сложнее.

Микросервисная архитектура спешит на помощь

Куб масштабирования и микросервисы

Куб масштабирования приложений

У каждого сервиса есть своя база данных

Database per service

Микросервисная архитектура для FTGO

Применив к FTGO декомпозицию получаем следующую архитектуру:

  • Order — управляет заказами;
  • Delivery — управляет доставкой заказов из ресторана клиентам;
  • Restaurant — хранит информацию о ресторанах;
  • Kitchen — отвечает за подготовку заказов;
  • Accounting — управляет биллингом и платежами.