ݺߣ

ݺߣShare a Scribd company logo
API в SAAS,
с облаком и без
ресурсы, SLA, балансировка, расширяемость и
всякая чепуха
Обо мне
• Егор Назаркин
• So ware Engineer
• Киев, Украина
Easy-to-use Machine Learning service that
helps people build models and predict on them.
внутри платформы
intake transform build
serve
client
внутри платформы
примеры использования
приложение на входе на выходе
рекомендации
товаров
клик по позиции список “похожих”
исследование и
предсказание
цены
недвижимость,
авиабилеты
динамика и
склонность
(вероятность)
изменения
поиск
мошенничества
атрибуты
транзакции
принять/
отклонить
транзакцию
вовлеченность в
игру
игровая
активность
изменение
сложности
типичное (wsgi) приложение
Web Appclient reverse proxy
конфигурация
round robin
Web Appclient
reverse proxy
balancer
конфигурация
Проблемы
• предсказания делаются на обученых моделях
• модель может занимать гигабайты памяти
• обработка запроса длится от 20 до 600
миллисекунд
• загрузка в память занимает в 10-30 раз
больше времени
Каждому узлу по собственной модели
1
2
3
4
5
6node
client
reverse proxy
balancer
Hash ключ
Конфигурация
Пропадание узла
• умирает один сервер —нужно перебалансировать всю систему
4 / 12 3 / 12
1 2 3
4 5 6
7 8 9
10 11 12
1 2 3 4
5 6 7 8
9 10 11 12
Consistent hash
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
1
23
4
Consistent hash
10.0.0.1
10.0.0.210.0.0.4
1
23
4
С nginx
160 * weight
h ps://www.nginx.com/resources/wiki/modules/consistent_hash/
И что?
Почему не подходит?
• пассивная проверка хоста
• необходимость обновления конфигурации
на всех узлах (вспомнить про consul)
• нужен “прогрев” моделей в кеше узла
• масштабирование?
Структура кластера
load balancer
workermodel
node
router
Architecture
worker1
worker2
worker3
uWSGI
emperor modesentinelcontroller +
algorithm
API
nginx
uWSGI
fil屹.
Controller.lua
Controller.py
Controller.py
Controller.py
Controller.py
Controller.py
Mappers
• Random
• Hash
• Hash Ring
• Model weight
Random
Hash
Model weight
m1 m2
h1 h2 h3 h4
Model weight
Hash ring
Hash ring
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
Итоги
• Know your instrument!
• Сопротивляйся
• Минимизируй зоопарк решений
• Старайся уменьшить объем работы
• Конфигурация
• Расширяемость
• Тестирование
Ссылки
• So You Wanna Go On-prem Do Ya —h p://bit.ly/1THE0CS
• HAProxy zero-downtime, zero-delay reloads with multibinder
—h p://bit.ly/2gp4dwC
• Autoscaled Internal Load Balancing using HAProxy and Consul on
Compute Engine —h ps://goo.gl/ZZPDCr
• load balancing и оптимальная загрузка кластера — h ps://
goo.gl/kbDTP8
• Prediction API as a service on premise solution —h p://bit.ly/
2hkzna1
Вопросы?

More Related Content

What's hot (7)

CQRS innovations
CQRS innovationsCQRS innovations
CQRS innovations
Andrey Lomakin
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Provectus
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзорCloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
Clouds NN
Azure Mobile Backend
Azure Mobile BackendAzure Mobile Backend
Azure Mobile Backend
Vitaly Baum
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисов
SQALab
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest
Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012
Yuriy Ryashko
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Provectus
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзорCloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
Clouds NN
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисов
SQALab
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest
Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012
Yuriy Ryashko

Viewers also liked (7)

Mapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные картыMapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные карты
EatDog
Принципы Solid на практике
Принципы Solid на практикеПринципы Solid на практике
Принципы Solid на практике
EatDog
Выжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим ГопейВыжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим Гопей
EatDog
Distributed Domain Driven Design with the help of Azure Reliable Actors
Distributed Domain Driven Design with the help of Azure Reliable ActorsDistributed Domain Driven Design with the help of Azure Reliable Actors
Distributed Domain Driven Design with the help of Azure Reliable Actors
EatDog
View models for component driven
View models for component drivenView models for component driven
View models for component driven
EatDog
Нельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIНельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование API
EatDog
Angular vs Angular 2 vs React. Сергей Александров
Angular vs Angular 2 vs React. Сергей АлександровAngular vs Angular 2 vs React. Сергей Александров
Angular vs Angular 2 vs React. Сергей Александров
EatDog
Mapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные картыMapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные карты
EatDog
Принципы Solid на практике
Принципы Solid на практикеПринципы Solid на практике
Принципы Solid на практике
EatDog
Выжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим ГопейВыжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим Гопей
EatDog
Distributed Domain Driven Design with the help of Azure Reliable Actors
Distributed Domain Driven Design with the help of Azure Reliable ActorsDistributed Domain Driven Design with the help of Azure Reliable Actors
Distributed Domain Driven Design with the help of Azure Reliable Actors
EatDog
View models for component driven
View models for component drivenView models for component driven
View models for component driven
EatDog
Нельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIНельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование API
EatDog
Angular vs Angular 2 vs React. Сергей Александров
Angular vs Angular 2 vs React. Сергей АлександровAngular vs Angular 2 vs React. Сергей Александров
Angular vs Angular 2 vs React. Сергей Александров
EatDog

Similar to API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость (20)

Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
Media Gorod
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
Sergey Skvortsov
Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"
Fwdays
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
solit
Zabbix в сервисной компании ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании ОНЛАНТА - Zabbix Meetup Moscow
Vadim Nesterov
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
Maxim Krentovskiy
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Fwdays
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
WDDay
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
Media Gorod
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021
Timur Shemsedinov
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей СмирновКлиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
Ontico
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspa
yaevents
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
solit
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
Clouds NN
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.
EatDog
Developing Resilient Cloud Architecture
Developing Resilient Cloud ArchitectureDeveloping Resilient Cloud Architecture
Developing Resilient Cloud Architecture
Anton Vidishchev
SOA: послать запрос на сервер? Что может быть проще?!
SOA: послать запрос на сервер? Что может быть проще?!SOA: послать запрос на сервер? Что может быть проще?!
SOA: послать запрос на сервер? Что может быть проще?!
Ivan Kruglov
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки. Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Андрей Бростовский
Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...
Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...
Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...
Радик Кутлов
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
Media Gorod
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
Sergey Skvortsov
Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"
Fwdays
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
solit
Zabbix в сервисной компании ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании ОНЛАНТА - Zabbix Meetup Moscow
Vadim Nesterov
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
Maxim Krentovskiy
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Fwdays
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
WDDay
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
Media Gorod
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021
Timur Shemsedinov
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей СмирновКлиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
Ontico
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspa
yaevents
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
solit
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
Clouds NN
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.
EatDog
Developing Resilient Cloud Architecture
Developing Resilient Cloud ArchitectureDeveloping Resilient Cloud Architecture
Developing Resilient Cloud Architecture
Anton Vidishchev
SOA: послать запрос на сервер? Что может быть проще?!
SOA: послать запрос на сервер? Что может быть проще?!SOA: послать запрос на сервер? Что может быть проще?!
SOA: послать запрос на сервер? Что может быть проще?!
Ivan Kruglov
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки. Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Андрей Бростовский
Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...
Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...
Презентация проекта "Виртуальное частное облако как инструмент повышения эффе...
Радик Кутлов

More from EatDog (18)

Классифицируем текст в iOS без CoreML: как и зачем?
Классифицируем текст в iOS без CoreML: как и зачем? Классифицируем текст в iOS без CoreML: как и зачем?
Классифицируем текст в iOS без CoreML: как и зачем?
EatDog
macOS app development for iOS devs: expand your horizons
macOS app development for iOS devs: expand your horizonsmacOS app development for iOS devs: expand your horizons
macOS app development for iOS devs: expand your horizons
EatDog
Dependency Injections in Kotlin
Dependency Injections in KotlinDependency Injections in Kotlin
Dependency Injections in Kotlin
EatDog
Быстрый в имплементации и в работе мониторинг с использованием ELK
Быстрый в имплементации и в работе мониторинг с использованием ELKБыстрый в имплементации и в работе мониторинг с использованием ELK
Быстрый в имплементации и в работе мониторинг с использованием ELK
EatDog
Continuous integration / continuous delivery
Continuous integration / continuous deliveryContinuous integration / continuous delivery
Continuous integration / continuous delivery
EatDog
Как мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системахКак мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системах
EatDog
Отказоустойчивый Redis кластер
Отказоустойчивый Redis кластерОтказоустойчивый Redis кластер
Отказоустойчивый Redis кластер
EatDog
Кодстайл и насилие.
Кодстайл и насилие. Кодстайл и насилие.
Кодстайл и насилие.
EatDog
Refactor to Reactive With Spring 5 and Project Reactor
Refactor to Reactive With Spring 5 and Project ReactorRefactor to Reactive With Spring 5 and Project Reactor
Refactor to Reactive With Spring 5 and Project Reactor
EatDog
GraphQL: APIs the New Way.
GraphQL: APIs the New Way.GraphQL: APIs the New Way.
GraphQL: APIs the New Way.
EatDog
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
EatDog
Microservices in a Wild.
Microservices in a Wild.Microservices in a Wild.
Microservices in a Wild.
EatDog
Dependency Rejection and TDD without Mocks
Dependency Rejection and TDD without MocksDependency Rejection and TDD without Mocks
Dependency Rejection and TDD without Mocks
EatDog
Стероиды для Дотнетчика
Стероиды для ДотнетчикаСтероиды для Дотнетчика
Стероиды для Дотнетчика
EatDog
Domain Driven Design – просто о сложном.
Domain Driven Design – просто о сложном.Domain Driven Design – просто о сложном.
Domain Driven Design – просто о сложном.
EatDog
Влияние UX на исходный код приложения. Валерий Сорокобатько
Влияние UX на исходный код приложения. Валерий СорокобатькоВлияние UX на исходный код приложения. Валерий Сорокобатько
Влияние UX на исходный код приложения. Валерий Сорокобатько
EatDog
Data flow layer. Захарченко Артем
Data flow layer. Захарченко АртемData flow layer. Захарченко Артем
Data flow layer. Захарченко Артем
EatDog
Offline first: application data and synchronization
Offline first: application data and synchronizationOffline first: application data and synchronization
Offline first: application data and synchronization
EatDog
Классифицируем текст в iOS без CoreML: как и зачем?
Классифицируем текст в iOS без CoreML: как и зачем? Классифицируем текст в iOS без CoreML: как и зачем?
Классифицируем текст в iOS без CoreML: как и зачем?
EatDog
macOS app development for iOS devs: expand your horizons
macOS app development for iOS devs: expand your horizonsmacOS app development for iOS devs: expand your horizons
macOS app development for iOS devs: expand your horizons
EatDog
Dependency Injections in Kotlin
Dependency Injections in KotlinDependency Injections in Kotlin
Dependency Injections in Kotlin
EatDog
Быстрый в имплементации и в работе мониторинг с использованием ELK
Быстрый в имплементации и в работе мониторинг с использованием ELKБыстрый в имплементации и в работе мониторинг с использованием ELK
Быстрый в имплементации и в работе мониторинг с использованием ELK
EatDog
Continuous integration / continuous delivery
Continuous integration / continuous deliveryContinuous integration / continuous delivery
Continuous integration / continuous delivery
EatDog
Как мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системахКак мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системах
EatDog
Отказоустойчивый Redis кластер
Отказоустойчивый Redis кластерОтказоустойчивый Redis кластер
Отказоустойчивый Redis кластер
EatDog
Кодстайл и насилие.
Кодстайл и насилие. Кодстайл и насилие.
Кодстайл и насилие.
EatDog
Refactor to Reactive With Spring 5 and Project Reactor
Refactor to Reactive With Spring 5 and Project ReactorRefactor to Reactive With Spring 5 and Project Reactor
Refactor to Reactive With Spring 5 and Project Reactor
EatDog
GraphQL: APIs the New Way.
GraphQL: APIs the New Way.GraphQL: APIs the New Way.
GraphQL: APIs the New Way.
EatDog
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
EatDog
Microservices in a Wild.
Microservices in a Wild.Microservices in a Wild.
Microservices in a Wild.
EatDog
Dependency Rejection and TDD without Mocks
Dependency Rejection and TDD without MocksDependency Rejection and TDD without Mocks
Dependency Rejection and TDD without Mocks
EatDog
Стероиды для Дотнетчика
Стероиды для ДотнетчикаСтероиды для Дотнетчика
Стероиды для Дотнетчика
EatDog
Domain Driven Design – просто о сложном.
Domain Driven Design – просто о сложном.Domain Driven Design – просто о сложном.
Domain Driven Design – просто о сложном.
EatDog
Влияние UX на исходный код приложения. Валерий Сорокобатько
Влияние UX на исходный код приложения. Валерий СорокобатькоВлияние UX на исходный код приложения. Валерий Сорокобатько
Влияние UX на исходный код приложения. Валерий Сорокобатько
EatDog
Data flow layer. Захарченко Артем
Data flow layer. Захарченко АртемData flow layer. Захарченко Артем
Data flow layer. Захарченко Артем
EatDog
Offline first: application data and synchronization
Offline first: application data and synchronizationOffline first: application data and synchronization
Offline first: application data and synchronization
EatDog

API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость