Download - Рефакторинг монолита в микросервисы на Go
![Page 1: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/1.jpg)
Рефакторинг монолита в микросервисы на GoМинкин Андрей
![Page 2: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/2.jpg)
Кто я
• TeamLead в MadDevs.io• Nambataxi.com• Nambafood.kg• Cybernamba.com• Kuppi.kg• Moika.kg• House.kg
![Page 3: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/3.jpg)
Namba Taxi
• 4 года на рынке Бишкека
![Page 4: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/4.jpg)
Namba Taxi
• 4 года на рынке Бишкека• Не менее 8к заказов в сутки
![Page 5: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/5.jpg)
Namba Taxi
• 4 года на рынке Бишкека• Не менее 8к заказов в сутки• 600+ водителей на линии
![Page 6: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/6.jpg)
Namba Taxi
• 4 года на рынке Бишкека• Не менее 8к заказов в сутки• 600+ водителей на линии• 300к довольных клиентов
![Page 7: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/7.jpg)
Namba Taxi
• 4 года на рынке Бишкека• Не менее 8к заказов в сутки• 600+ водителей на линии• 300к довольных клиентов• 300 рпс на серверах
![Page 8: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/8.jpg)
AVG response time
• Водители 20 ms• Операторы 2.5 ms
![Page 9: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/9.jpg)
Что такое такси
![Page 10: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/10.jpg)
Что такое такси
• Клиенты• Водители• Операторы КЦ• Контроль качества• Back office
![Page 11: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/11.jpg)
Как вызвать такси
![Page 12: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/12.jpg)
Как вызвать такси
• Приложение
![Page 13: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/13.jpg)
Как вызвать такси
• Приложение• СМС
![Page 14: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/14.jpg)
Как вызвать такси
• Приложение• СМС• Сайт
![Page 15: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/15.jpg)
Как вызвать такси
• Приложение• СМС• Сайт• IPTV
![Page 16: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/16.jpg)
Как вызвать такси
• Приложение• СМС• Сайт• IPTV• Сторонние приложения (вызов по API)
![Page 17: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/17.jpg)
Как вызвать такси
• Приложение• СМС• Сайт• IPTV• Сторонние приложения (вызов по API)• Позвонить оператору
![Page 18: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/18.jpg)
Водители
![Page 19: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/19.jpg)
Водители
![Page 20: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/20.jpg)
Что делает оператор
![Page 21: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/21.jpg)
Что делает оператор
• Клиенты• Входящие/исходящие звонки
![Page 22: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/22.jpg)
Что делает оператор
• Клиенты• Входящие/исходящие звонки
• Заказы• Наблюдение
![Page 23: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/23.jpg)
Что делает оператор
• Клиенты• Входящие/исходящие звонки
• Заказы• Наблюдение
• Водители• Тревога• Подержка
![Page 24: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/24.jpg)
Контроль качества
![Page 25: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/25.jpg)
Back-office
• Отчеты• Отчеты• Отчеты
![Page 26: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/26.jpg)
Что по архитектуре
• SOA
![Page 27: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/27.jpg)
Что по архитектуре
• SOA• Redis
![Page 28: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/28.jpg)
Что по архитектуре
• Django монолит• Go, Twisted
![Page 29: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/29.jpg)
Раньше
• Ruby• Node.js
![Page 30: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/30.jpg)
Storage
• Percona• Redis• Elasticsearch
![Page 31: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/31.jpg)
Сервисы? Какие сервисы
• Отправщик пушей.
![Page 32: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/32.jpg)
Сервисы? Какие сервисы
• Отправщик пушей. • Отправщик СМС
![Page 33: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/33.jpg)
Сервисы? Какие сервисы
• Отправщик пушей. • Отправщик СМС• Backend для водителей
![Page 34: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/34.jpg)
Сервисы? Какие сервисы
• Отправщик пушей. • Отправщик СМС• Прокси для водителей• Бекенд для клиентов
![Page 35: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/35.jpg)
А еще у нас есть Docker
![Page 36: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/36.jpg)
Что в Django
• Отдел контроля качества• Прием платежей• Учетное ядро• Отчеты• API для водителей• Менеджерская для управления
![Page 37: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/37.jpg)
Проблемы
• Приложение – один большой кусок, который нужно выкатывать очень часто• Невозможно параллельно, многопоточно выполнять какие-то задачи• Много интеграций со сторонними сервисами
![Page 38: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/38.jpg)
Решения
• Поддерживать существующее и жить дальше• Все переписать :trollface:
![Page 39: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/39.jpg)
И пока не случилось
![Page 40: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/40.jpg)
Давай в микросервисы
![Page 41: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/41.jpg)
Микросервисы
• Маленькие
![Page 42: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/42.jpg)
Микросервисы
• Маленькие• Сфокусированные
![Page 43: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/43.jpg)
Микросервисы
• Маленькие• Сфокусированные• Слабосвязанные
![Page 44: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/44.jpg)
Микросервисы
• Маленькие• Сфокусированные• Слабосвязанные• Высокосогласованные
![Page 45: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/45.jpg)
Микросервисы
• Малый размер • Тонкое масштабирование• Быстрый деплой• Легкость тестирования• Любой язык
![Page 46: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/46.jpg)
Синхронный подход
© Nginx.com
![Page 47: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/47.jpg)
Асинхронный подход
© Nginx.com
![Page 48: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/48.jpg)
А почему Go
• Строготипизированный• Компилируемый• CSP• Goroutine• sync.WaitGroup
![Page 49: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/49.jpg)
Что есть в Go• Go-kit• Gizmo• Micro
• Echo• Gin• Mux
![Page 50: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/50.jpg)
Как рефакторить
• Четкие границы в коде между модулями
![Page 51: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/51.jpg)
Как рефакторить
• Четкие границы в коде между модулями• Понимание, что выносить
![Page 52: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/52.jpg)
Как рефакторить
• Четкие границы в коде между модулями• Понимание, что выносить• Нет повторений в коде и копипасты
![Page 53: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/53.jpg)
Как рефакторить
• Четкие границы в коде между модулями• Понимание, что выносить• Нет повторений в коде и копипасты• Тесты
![Page 54: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/54.jpg)
Как рефакторить
• Четкие границы в коде между модулями• Понимание, что выносить• Нет повторений в коде и копипасты• Тесты• Много тестов
![Page 55: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/55.jpg)
Как рефакторить
• Четкие границы в коде между модулями• Понимание, что выносить• Нет повторений в коде и копипасты• Тесты• Много тестов• Очень много тестов
![Page 56: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/56.jpg)
Tradeoffs
![Page 57: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/57.jpg)
Tradeoffs
• Latency
![Page 58: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/58.jpg)
Tradeoffs
• Latency• Распределенные блокировки
![Page 59: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/59.jpg)
Tradeoffs
• Latency• Распределенные блокировки• Eventual consistency
![Page 60: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/60.jpg)
Tradeoffs
• Latency• Распределенные блокировки• Eventual consistency• Operational Complexity
![Page 61: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/61.jpg)
Разделение на микросервисы
• Учетное ядро ака биллинг• Сервис отчетов• Сервис тарификации• Операторская• Бекенд водителей
![Page 62: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/62.jpg)
Ок, кто первый?
• Учетное ядро ака биллинг
![Page 63: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/63.jpg)
Наш путь
• Синхронный подход• Проще• Легче• В случае фейла все повторится
• HTTP REST API• Go• Echo• GORM• JWT
![Page 64: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/64.jpg)
Наш путь
• Написали на Go• Написали тестов• Написали e2e тесты• Прогнали все• Собрали в докер• Спланировали • Задеплоили
![Page 65: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/65.jpg)
Заблуждения
![Page 66: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/66.jpg)
Заблуждения
• Более чистый код
![Page 67: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/67.jpg)
Заблуждения
• Более чистый код• Это легче
![Page 68: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/68.jpg)
Заблуждения
• Более чистый код• Это легче• Это быстрее
![Page 69: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/69.jpg)
Заблуждения
• Более чистый код• Это легче• Это быстрее• Это лучше для инженеров
![Page 70: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/70.jpg)
Заблуждения
• Более чистый код• Это легче• Это быстрее• Это лучше для инженеров• Это лучше масштабируется
![Page 71: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/71.jpg)
Какие бенефиты?
![Page 72: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/72.jpg)
Какие бенефиты?
• Меньше расход ресурсов
![Page 73: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/73.jpg)
Какие бенефиты?
• Меньше расход ресурсов• Можем масштабировать отдельную фичу
![Page 74: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/74.jpg)
Какие бенефиты?
• Меньше расход ресурсов• Можем масштабировать отдельную фичу• Поддерживать код стало чуть легче
![Page 75: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/75.jpg)
Какие проблемы и подводные камни
• Конкурентный доступ• Балансировка
![Page 76: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/76.jpg)
Конкурентный доступ
• Percona• Транзакции + select … for update
• Redis• Setnx
![Page 77: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/77.jpg)
Балансировка
• Неравномерное использование ресурсов
![Page 78: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/78.jpg)
Выводы
![Page 79: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/79.jpg)
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать написание лучшего кода
![Page 80: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/80.jpg)
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать написание лучшего кода• Распределенные транзакции никогда не легче
![Page 81: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/81.jpg)
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать написание лучшего кода• Распределенные транзакции никогда не легче• К микросервисам нужно прийти
![Page 82: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/82.jpg)
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать написание лучшего кода• Распределенные транзакции никогда не легче• К микросервисам нужно прийти • Лучше планируйте
![Page 83: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/83.jpg)
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать написание лучшего кода• Распределенные транзакции никогда не легче• К микросервисам нужно прийти • Лучше планируйте• Преждевременно не оптимизируйте
![Page 84: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/84.jpg)
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать написание лучшего кода• Распределенные транзакции никогда не легче• К микросервисам нужно прийти • Лучше планируйте• Преждевременно не оптимизируйте• Рефакторите итеративно
![Page 85: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/85.jpg)
Вопросы?
![Page 86: Рефакторинг монолита в микросервисы на Go](https://reader034.vdocuments.net/reader034/viewer/2022052606/5872cd4f1a28ab74188b457f/html5/thumbnails/86.jpg)
Контакты
• https://github.com/gen1us2k• [email protected]• http://gen1us2k.com
• Слайды• http://bit.ly/gdgalmaty2016