SlideShare ist ein Scribd-Unternehmen logo
1 von 86
Downloaden Sie, um offline zu lesen
Рефакторинг монолита в
микросервисы на Go
Минкин Андрей
Кто я
• TeamLead в MadDevs.io
• Nambataxi.com
• Nambafood.kg
• Cybernamba.com
• Kuppi.kg
• Moika.kg
• House.kg
Namba Taxi
• 4 года на рынке Бишкека
Namba Taxi
• 4 года на рынке Бишкека
• Не менее 8к заказов в сутки
Namba Taxi
• 4 года на рынке Бишкека
• Не менее 8к заказов в сутки
• 600+ водителей на линии
Namba Taxi
• 4 года на рынке Бишкека
• Не менее 8к заказов в сутки
• 600+ водителей на линии
• 300к довольных клиентов
Namba Taxi
• 4 года на рынке Бишкека
• Не менее 8к заказов в сутки
• 600+ водителей на линии
• 300к довольных клиентов
• 300 рпс на серверах
AVG response time
• Водители 20 ms
• Операторы 2.5 ms
Что такое такси
Что такое такси
• Клиенты
• Водители
• Операторы КЦ
• Контроль качества
• Back office
Как вызвать такси
Как вызвать такси
• Приложение
Как вызвать такси
• Приложение
• СМС
Как вызвать такси
• Приложение
• СМС
• Сайт
Как вызвать такси
• Приложение
• СМС
• Сайт
• IPTV
Как вызвать такси
• Приложение
• СМС
• Сайт
• IPTV
• Сторонние приложения (вызов по API)
Как вызвать такси
• Приложение
• СМС
• Сайт
• IPTV
• Сторонние приложения (вызов по API)
• Позвонить оператору
Водители
Водители
Что делает оператор
Что делает оператор
• Клиенты
• Входящие/исходящие звонки
Что делает оператор
• Клиенты
• Входящие/исходящие звонки
• Заказы
• Наблюдение
Что делает оператор
• Клиенты
• Входящие/исходящие звонки
• Заказы
• Наблюдение
• Водители
• Тревога
• Подержка
Контроль качества
Back-office
• Отчеты
• Отчеты
• Отчеты
Что по архитектуре
• SOA
Что по архитектуре
• SOA
• Redis
Что по архитектуре
• Django монолит
• Go, Twisted
Раньше
• Ruby
• Node.js
Storage
• Percona
• Redis
• Elasticsearch
Сервисы? Какие сервисы
• Отправщик пушей.
Сервисы? Какие сервисы
• Отправщик пушей.
• Отправщик СМС
Сервисы? Какие сервисы
• Отправщик пушей.
• Отправщик СМС
• Backend для водителей
Сервисы? Какие сервисы
• Отправщик пушей.
• Отправщик СМС
• Прокси для водителей
• Бекенд для клиентов
А еще у нас есть Docker
Что в Django
• Отдел контроля качества
• Прием платежей
• Учетное ядро
• Отчеты
• API для водителей
• Менеджерская для управления
Проблемы
• Приложение – один большой кусок, который нужно
выкатывать очень часто
• Невозможно параллельно, многопоточно выполнять какие-
то задачи
• Много интеграций со сторонними сервисами
Решения
• Поддерживать существующее и жить дальше
• Все переписать :trollface:
И пока не случилось
Давай в микросервисы
Микросервисы
• Маленькие
Микросервисы
• Маленькие
• Сфокусированные
Микросервисы
• Маленькие
• Сфокусированные
• Слабосвязанные
Микросервисы
• Маленькие
• Сфокусированные
• Слабосвязанные
• Высокосогласованные
Микросервисы
• Малый размер
• Тонкое масштабирование
• Быстрый деплой
• Легкость тестирования
• Любой язык
Синхронный подход
© Nginx.com
Асинхронный подход
© Nginx.com
А почему Go
• Строготипизированный
• Компилируемый
• CSP
• Goroutine
• sync.WaitGroup
Что есть в Go
• Go-kit
• Gizmo
• Micro
• Echo
• Gin
• Mux
Как рефакторить
• Четкие границы в коде между модулями
Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
• Тесты
Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
• Тесты
• Много тестов
Как рефакторить
• Четкие границы в коде между модулями
• Понимание, что выносить
• Нет повторений в коде и копипасты
• Тесты
• Много тестов
• Очень много тестов
Tradeoffs
Tradeoffs
• Latency
Tradeoffs
• Latency
• Распределенные блокировки
Tradeoffs
• Latency
• Распределенные блокировки
• Eventual consistency
Tradeoffs
• Latency
• Распределенные блокировки
• Eventual consistency
• Operational Complexity
Разделение на микросервисы
• Учетное ядро ака биллинг
• Сервис отчетов
• Сервис тарификации
• Операторская
• Бекенд водителей
Ок, кто первый?
• Учетное ядро ака биллинг
Наш путь
• Синхронный подход
• Проще
• Легче
• В случае фейла все повторится
• HTTP REST API
• Go
• Echo
• GORM
• JWT
Наш путь
• Написали на Go
• Написали тестов
• Написали e2e тесты
• Прогнали все
• Собрали в докер
• Спланировали
• Задеплоили
Заблуждения
Заблуждения
• Более чистый код
Заблуждения
• Более чистый код
• Это легче
Заблуждения
• Более чистый код
• Это легче
• Это быстрее
Заблуждения
• Более чистый код
• Это легче
• Это быстрее
• Это лучше для инженеров
Заблуждения
• Более чистый код
• Это легче
• Это быстрее
• Это лучше для инженеров
• Это лучше масштабируется
Какие бенефиты?
Какие бенефиты?
• Меньше расход ресурсов
Какие бенефиты?
• Меньше расход ресурсов
• Можем масштабировать отдельную фичу
Какие бенефиты?
• Меньше расход ресурсов
• Можем масштабировать отдельную фичу
• Поддерживать код стало чуть легче
Какие проблемы и подводные камни
• Конкурентный доступ
• Балансировка
Конкурентный доступ
• Percona
• Транзакции + select … for update
• Redis
• Setnx
Балансировка
• Неравномерное использование ресурсов
Выводы
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
• Лучше планируйте
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
• Лучше планируйте
• Преждевременно не оптимизируйте
Выводы
• Не нужно добавлять сетевое ограничение чтобы оправдать
написание лучшего кода
• Распределенные транзакции никогда не легче
• К микросервисам нужно прийти
• Лучше планируйте
• Преждевременно не оптимизируйте
• Рефакторите итеративно
Вопросы?
Контакты
• https://github.com/gen1us2k
• chaka@maddevs.io
• http://gen1us2k.com
• Слайды
• http://bit.ly/gdgalmaty2016

Weitere ähnliche Inhalte

Was ist angesagt?

NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
Daniel Podolsky
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
Max Lapshin
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Anton Baranov
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...
Ontico
 

Was ist angesagt? (18)

NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
 
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...
 
Tk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlTk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosql
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
 
Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...
Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...
Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Web Performance в Казнете
Web Performance в КазнетеWeb Performance в Казнете
Web Performance в Казнете
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
 
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...
SOA: послать запрос на сервер? Что может быть проще?! / Иван Круглов (Booking...
 
"Изоморфная разработка на javascript с помощью react.js" Максим Климишин
"Изоморфная разработка на javascript с помощью react.js" Максим Климишин"Изоморфная разработка на javascript с помощью react.js" Максим Климишин
"Изоморфная разработка на javascript с помощью react.js" Максим Климишин
 
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
 

Andere mochten auch

SQL. Django, начало
SQL. Django, началоSQL. Django, начало
SQL. Django, начало
pelid
 
Как улучшить сервис такси мобильными приложениями
Как улучшить сервис такси мобильными приложениямиКак улучшить сервис такси мобильными приложениями
Как улучшить сервис такси мобильными приложениями
Andrew Minkin
 
django-and-postgresql
django-and-postgresqldjango-and-postgresql
django-and-postgresql
Oleg Churkin
 
События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...
События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...
События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...
Ontico
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Ontico
 

Andere mochten auch (13)

Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
 
SQL. Django, начало
SQL. Django, началоSQL. Django, начало
SQL. Django, начало
 
Как мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuКак мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.Ru
 
Maps for devs
Maps for devsMaps for devs
Maps for devs
 
Networks for beginners
Networks for beginnersNetworks for beginners
Networks for beginners
 
Как улучшить сервис такси мобильными приложениями
Как улучшить сервис такси мобильными приложениямиКак улучшить сервис такси мобильными приложениями
Как улучшить сервис такси мобильными приложениями
 
Обработка геоданных в Go
Обработка геоданных в GoОбработка геоданных в Go
Обработка геоданных в Go
 
Нагрузочное тестирование с помощью locust.io
Нагрузочное тестирование с помощью locust.ioНагрузочное тестирование с помощью locust.io
Нагрузочное тестирование с помощью locust.io
 
django-and-postgresql
django-and-postgresqldjango-and-postgresql
django-and-postgresql
 
События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...
События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...
События, шины и интеграция данных в непростом мире микросервисов / Валентин Г...
 
django+python + nginx + gunicorn
django+python + nginx + gunicorn django+python + nginx + gunicorn
django+python + nginx + gunicorn
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
 
Something about Golang
Something about GolangSomething about Golang
Something about Golang
 

Ähnlich wie Рефакторинг монолита в микросервисы на Go

Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Ontico
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Ontico
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Ontico
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование
Iosif Itkin
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Sergey Xek
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 

Ähnlich wie Рефакторинг монолита в микросервисы на Go (20)

Работа с геоданными в Go GDGNSK / Work with Geodata in Go
Работа с геоданными в Go GDGNSK / Work with Geodata in GoРабота с геоданными в Go GDGNSK / Work with Geodata in Go
Работа с геоданными в Go GDGNSK / Work with Geodata in Go
 
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
 
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
 
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
Как я написала платформу, взаимодействующую более чем с 15 странами по всему ...
Как я написала платформу, взаимодействующую более чем с 15 странами по всему ...Как я написала платформу, взаимодействующую более чем с 15 странами по всему ...
Как я написала платформу, взаимодействующую более чем с 15 странами по всему ...
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование
 
Кластеризация семантики
Кластеризация семантикиКластеризация семантики
Кластеризация семантики
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
201107 Что происходит в хостинге?
201107 Что происходит в хостинге?201107 Что происходит в хостинге?
201107 Что происходит в хостинге?
 
Sivko
SivkoSivko
Sivko
 

Рефакторинг монолита в микросервисы на Go