63 lines
4.9 KiB
Markdown
63 lines
4.9 KiB
Markdown
---
|
||
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 — управляет биллингом и платежами.
|
||
|