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

63 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags:
- content/book
date: 2024-01-11
author:
- "[[Ричардсон Крис]]"
linked:
zero-link:
- "[[00 Разработка]]"
ISBN: 978-5-4461-0996-8
---
## Описание
Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились — переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности.
Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проекnироваь и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения — и монолит превращается в набор микросервисов.
## Главная идея книги
## Тезисы
# Литературные заметки
## Побег из монолитного ада
### Медленным шагом в монолитный ад
Пример приложения, на основе которого рассматриваются проблемы монолитов: FTGO - популярный сервис по заказу еду.
Клиенты заказывают еду в местных ресторанах на сайте компании или с помощью мобильного приложения. FTGO координирует сеть курьеров. Также компания отвечает за оплату услуг курьеров и ресторанов. Рестораны могут редактировать меню и управлять заказами.
#### Архитектура приложения FTGO
Архитектура представляет собой типичную [гексогональную архитектуру](Гексогональная%20архитектура.md). Не смотря на логически модульную структуру, приложение упаковывается в единый WAR-файл.
Так как приложение представляет собой [монолит](Монолитная%20архитектура.md), состоящий из единого файла WAR, написанное с использование уже устаревших фремворков, которое с годами стало большим и сложным и превратилось в [Большой комок грязи](Большой%20комок%20грязи.md).
![](Pasted%20image%2020240404203816.png)
В итоге несмотря на использование гибких методик планирования, темп разработки продолжил замедляться.
#### Жизнь в монолитном аду
Популярность FTGO привела к тому, что оно выросло из монолитной архитектуры. В итоге команда разработки оказалась в [монолитном аду](Монолитный%20ад.md).
Команда приняла решение, что приложение нужно переводить на [микросервисную архитектуру](Микросервисная%20архитектура.md).
Программная архитектура имеет мало общего с функциональными требованиями. Их можно достичь используя любую архитектуру. А вот с не функциональными требованиями сложнее.
### Микросервисная архитектура спешит на помощь
#### Куб масштабирования и микросервисы
![Куб масштабирования приложений](Куб%20масштабирования%20приложений.md)
#### У каждого сервиса есть своя база данных
![Database per service](Database%20per%20service.md)
#### Микросервисная архитектура для FTGO
Применив к FTGO декомпозицию получаем следующую архитектуру:
![](Pasted%20image%2020240412211723.png)
- Order — управляет заказами;
- Delivery — управляет доставкой заказов из ресторана клиентам;
- Restaurant — хранит информацию о ресторанах;
- Kitchen — отвечает за подготовку заказов;
- Accounting — управляет биллингом и платежами.