ݺߣ

ݺߣShare a Scribd company logo
Как мы экспериментируем в больших
микросервисных системах?
Alexandr Baranezky, PDFfiller
● Быстрая доставка фич и фиксов
● Экосистема A/B тестов
● Масштабирование микросервисов на
случай нагрузки
Как мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системах
А нужны ли микросервисы?
31 мая 2018
The history of DevOps
PDFfiller’s TeamCity stats
Build Agents 20
Build configurations 1565
Active build configurations 1357 (86%)
Projects 1049
A/B тесты в PDFfiller
Как мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системах
● Большое количество кода пишется в
соответствии с A/B тестами, а потом уже с
инженерными: SOLID, DRY, e.t.c.
● Каким бы ни было хорошим решение, если оно
проигрывает в A/B тесте, оно не будет
допущено на прод
● A/B тесты внедрены в 80% кода компании
Глобальный контекст
А - 90%
B - 10%
V 1.0
V 2.0
Обзор архитектуры системы PDFFiller
Как мы экспериментируем в больших микросервисных системах
Client app
Web Sockets
AUTH LOGGER Rest API
CLIENT
WebSocket
Business
Logic
Platform
(PHP)
Worker
Сборка микросервиса
более
200
микросервисов
Кто работает с подобной системой?
Подход, который ускоряет разработку
Крутая фича
Разработчик
Как мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системах
Как мы экспериментируем в больших микросервисных системах
Как стартует микросервис
Как мы держим нагрузку?
Сервис 1
Сервис 2
Сервис 4
Сервис 5
Сервис 3
Am
azon
ECS
-
Наш
е
все
Фишки, которые мы используем в работе
Единая структура данных на всех уровнях (AST)
● В идеале — один код на клиенте и сервере
(NodeJS, JS)
● В дерево можно добавлять новые сущности
(поля), но не трогать старые
(backward compatibility)
● Огромные деревья (более 1 мегабайта)
передаются по частям командами,
изменяющими состояние
CQRS
Microservices at PDFfiller
Alex V. Baranezky
SE at PDFfiller.com
Q / A
PDFfiller’s TeamCity stats

More Related Content

What's hot (15)

Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1C
Alexey Lustin
DevOps для Legacy-продуктов
DevOps для Legacy-продуктовDevOps для Legacy-продуктов
DevOps для Legacy-продуктов
ScrumTrek
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Создаем масштабируемое корпоративное JavaScript-приложение, Влад ПлотникСоздаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Sigma Software
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMПетр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRM
ScrumTrek
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
Positive Hack Days
Гибкое нагрузочное тестирование. Круковский
Гибкое нагрузочное тестирование. КруковскийГибкое нагрузочное тестирование. Круковский
Гибкое нагрузочное тестирование. Круковский
Dev.by
Имплементация инженерных практик для 1C
Имплементация инженерных практик для 1CИмплементация инженерных практик для 1C
Имплементация инженерных практик для 1C
Alexey Lustin
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
Igor Khrol
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
SQALab
лустин статические анализаторы систем 1с ad2015
лустин   статические анализаторы систем 1с ad2015лустин   статические анализаторы систем 1с ad2015
лустин статические анализаторы систем 1с ad2015
Magneta AI
Адаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1сАдаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1с
Alexey Lustin
статические анализаторы кода за и против
статические анализаторы кода  за и противстатические анализаторы кода  за и против
статические анализаторы кода за и против
Roman Kalita
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Zestranec
Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015
Alexey Lustin
Адаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктовАдаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктов
Alexey Lustin
Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1C
Alexey Lustin
DevOps для Legacy-продуктов
DevOps для Legacy-продуктовDevOps для Legacy-продуктов
DevOps для Legacy-продуктов
ScrumTrek
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Создаем масштабируемое корпоративное JavaScript-приложение, Влад ПлотникСоздаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Создаем масштабируемое корпоративное JavaScript-приложение, Влад Плотник
Sigma Software
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMПетр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRM
ScrumTrek
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
Positive Hack Days
Гибкое нагрузочное тестирование. Круковский
Гибкое нагрузочное тестирование. КруковскийГибкое нагрузочное тестирование. Круковский
Гибкое нагрузочное тестирование. Круковский
Dev.by
Имплементация инженерных практик для 1C
Имплементация инженерных практик для 1CИмплементация инженерных практик для 1C
Имплементация инженерных практик для 1C
Alexey Lustin
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
Igor Khrol
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
SQALab
лустин статические анализаторы систем 1с ad2015
лустин   статические анализаторы систем 1с ad2015лустин   статические анализаторы систем 1с ad2015
лустин статические анализаторы систем 1с ad2015
Magneta AI
Адаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1сАдаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1с
Alexey Lustin
статические анализаторы кода за и против
статические анализаторы кода  за и противстатические анализаторы кода  за и против
статические анализаторы кода за и против
Roman Kalita
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Zestranec
Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015Cтатические анализаторы систем 1с AgileDays 2015
Cтатические анализаторы систем 1с AgileDays 2015
Alexey Lustin
Адаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктовАдаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктов
Alexey Lustin

Similar to Как мы экспериментируем в больших микросервисных системах (20)

TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...
Iosif Itkin
TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...
TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...
TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...
Anna Toropova
Подходы к мониторингу информационных систем
Подходы к мониторингу информационных системПодходы к мониторингу информационных систем
Подходы к мониторингу информационных систем
Cisco Russia
Как капля здравого смысла может спасти проект внедрения СЭД?
Как капля здравого смысла может спасти проект внедрения СЭД?Как капля здравого смысла может спасти проект внедрения СЭД?
Как капля здравого смысла может спасти проект внедрения СЭД?
DocTrix Product Line
Tools to ensure quality of information system
Tools to ensure quality of information system Tools to ensure quality of information system
Tools to ensure quality of information system
soft-point
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеAgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в Банке
Михаил Кононов
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
Iosif Itkin
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
Sergey Baranov
Презентация RPA
Презентация RPAПрезентация RPA
Презентация RPA
Danixoid Saum
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
Fwdays
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
Andrew Gubskiy
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
Dmitry Semenov
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Ontico
Средства автоматизации в процессе разработки
Средства автоматизации в процессе разработкиСредства автоматизации в процессе разработки
Средства автоматизации в процессе разработки
InfoTeCS
«Облака» под контролем: как эффективно оценить производительность облачных т...
«Облака» под контролем:  как эффективно оценить производительность облачных т...«Облака» под контролем:  как эффективно оценить производительность облачных т...
«Облака» под контролем: как эффективно оценить производительность облачных т...
СвязьКомплект
CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crm
Roman Savran
Обеспечение и контроль качества услуг
Обеспечение и контроль качества услугОбеспечение и контроль качества услуг
Обеспечение и контроль качества услуг
Cisco Russia
Freelance - система РСУ от компании АВВ
Freelance  - система РСУ от компании АВВFreelance  - система РСУ от компании АВВ
Freelance - система РСУ от компании АВВ
APPAU_Ukraine
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
SQALab
TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...
Iosif Itkin
TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...
TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...
TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединени...
Anna Toropova
Подходы к мониторингу информационных систем
Подходы к мониторингу информационных системПодходы к мониторингу информационных систем
Подходы к мониторингу информационных систем
Cisco Russia
Как капля здравого смысла может спасти проект внедрения СЭД?
Как капля здравого смысла может спасти проект внедрения СЭД?Как капля здравого смысла может спасти проект внедрения СЭД?
Как капля здравого смысла может спасти проект внедрения СЭД?
DocTrix Product Line
Tools to ensure quality of information system
Tools to ensure quality of information system Tools to ensure quality of information system
Tools to ensure quality of information system
soft-point
AgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в БанкеAgileDays 2016. Внедрение Agile в Банке
AgileDays 2016. Внедрение Agile в Банке
Михаил Кононов
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
Iosif Itkin
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
Sergey Baranov
Презентация RPA
Презентация RPAПрезентация RPA
Презентация RPA
Danixoid Saum
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
Fwdays
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
Andrew Gubskiy
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
Dmitry Semenov
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Ontico
Средства автоматизации в процессе разработки
Средства автоматизации в процессе разработкиСредства автоматизации в процессе разработки
Средства автоматизации в процессе разработки
InfoTeCS
«Облака» под контролем: как эффективно оценить производительность облачных т...
«Облака» под контролем:  как эффективно оценить производительность облачных т...«Облака» под контролем:  как эффективно оценить производительность облачных т...
«Облака» под контролем: как эффективно оценить производительность облачных т...
СвязьКомплект
CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crm
Roman Savran
Обеспечение и контроль качества услуг
Обеспечение и контроль качества услугОбеспечение и контроль качества услуг
Обеспечение и контроль качества услуг
Cisco Russia
Freelance - система РСУ от компании АВВ
Freelance  - система РСУ от компании АВВFreelance  - система РСУ от компании АВВ
Freelance - система РСУ от компании АВВ
APPAU_Ukraine
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
SQALab

More from EatDog (20)

Классифицируем текст в 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
Отказоустойчивый 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
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.
EatDog
Принципы Solid на практике
Принципы Solid на практикеПринципы Solid на практике
Принципы Solid на практике
EatDog
Mapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные картыMapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные карты
EatDog
Нельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIНельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование API
EatDog
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
EatDog
Выжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим ГопейВыжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим Гопей
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
Отказоустойчивый 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
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.
EatDog
Принципы Solid на практике
Принципы Solid на практикеПринципы Solid на практике
Принципы Solid на практике
EatDog
Mapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные картыMapbox GL: как работают современные векторные карты
Mapbox GL: как работают современные векторные карты
EatDog
Нельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIНельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование API
EatDog
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
EatDog
Выжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим ГопейВыжить с помощью ООП. Максим Гопей
Выжить с помощью ООП. Максим Гопей
EatDog

Как мы экспериментируем в больших микросервисных системах