Slide 1

Slide 1 text

Дмитрий Столяров CTO & Co-founder Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes

Slide 2

Slide 2 text

Productivity Base Complexity

Slide 3

Slide 3 text

Productivity Base Complexity Monolith

Slide 4

Slide 4 text

Productivity Base Complexity Monolith as complexity kicks in, productivity starts failing rapidly

Slide 5

Slide 5 text

Microservice Productivity Base Complexity Monolith for less-complex systems, the extra baggage required to manage microservices reduces productivity

Slide 6

Slide 6 text

Microservice Productivity Base Complexity Monolith the decreased coupling of microservices reduces the attenuation of productivity

Slide 7

Slide 7 text

Productivity Base Complexity Monolith Microservice for less-complex systems, the extra baggage required to manage microservices reduces productivity as complexity kicks in, productivity starts failing rapidly the decreased coupling of microservices reduces the attenuation of productivity

Slide 8

Slide 8 text

Microservice Productivity Base Complexity Monolith Martin Fowler https://martinfowler.com/bliki/MicroservicePremium.html 13 мая 2015

Slide 9

Slide 9 text

Что привносит Kubernetes?

Slide 10

Slide 10 text

Microservice Productivity Base Complexity Monolith

Slide 11

Slide 11 text

Microservice Monolith Productivity Base Complexity Microservice Monolith

Slide 12

Slide 12 text

Microservice Monolith Productivity Base Complexity Microservice Monolith

Slide 13

Slide 13 text

Productivity Base Complexity Microservice Monolith

Slide 14

Slide 14 text

Я не видел ни одного проекта с нормальной микросервисной архитектурой

Slide 15

Slide 15 text

Вопросы у аудитории

Slide 16

Slide 16 text

Вопросы у аудитории Стоит ли доверять опыту докладчика?

Slide 17

Slide 17 text

Вопросы у аудитории Стоит ли доверять опыту докладчика? Что докладчик понимает под нормальной микросервисной архитектурой?

Slide 18

Slide 18 text

Стоит ли доверять опыту докладчика? Что докладчик понимает под нормальной микросервисной архитектурой? Вопросы у аудитории

Slide 19

Slide 19 text

Productivity Base Complexity Microservice Monolith

Slide 20

Slide 20 text

Productivity Base Complexity Microservice Monolith

Slide 21

Slide 21 text

Productivity Base Complexity Microservice Monolith Полезная микросервисность

Slide 22

Slide 22 text

Productivity Base Complexity Microservice Monolith

Slide 23

Slide 23 text

Productivity Base Complexity Microservice Monolith Вредная микросервисность

Slide 24

Slide 24 text

Стоит ли доверять опыту докладчика? Что докладчик понимает под нормальной микросервисной архитектурой? Вопросы у аудитории

Slide 25

Slide 25 text

85 проектов с начала этого года

Slide 26

Slide 26 text

Productivity Base Complexity Microservice Monolith Вредная микросервисность

Slide 27

Slide 27 text

Зачем нам микросервисы?

Slide 28

Slide 28 text

Strong Module Boundaries Microservices reinforce modular structure, which is particularly important for larger teams. Microservices Benefits Independent Deployment Simple services are easier to deploy, and since they are autonomous, are less likely to cause system failures when they go wrong. Technology Diversity With microservices you can mix multiple languages, development frameworks and data-storage technologies. Martin Fowler https://martinfowler.com/articles/microservice-trade-offs.html

Slide 29

Slide 29 text

Наши ожидания?

Slide 30

Slide 30 text

Чёткие границы модулей Наши ожидания?

Slide 31

Slide 31 text

Чёткие границы модулей Наши ожидания? Независимость деплоя

Slide 32

Slide 32 text

Чёткие границы модулей Наши ожидания? Независимость деплоя Свобода выбора технологии

Slide 33

Slide 33 text

Чёткие границы модулей Наши ожидания? Независимость деплоя Свобода выбора технологии Независимость разработки

Slide 34

Slide 34 text

Чёткие границы модулей Наши ожидания? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование

Slide 35

Slide 35 text

Чёткие границы модулей Наши ожидания? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность

Slide 36

Slide 36 text

Чёткие границы модулей Наши ожидания? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки

Slide 37

Slide 37 text

Чёткие границы модулей Наши ожидания? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов

Slide 38

Slide 38 text

Productivity Base Complexity Microservice Monolith Вредная микросервисность

Slide 39

Slide 39 text

Вредная микросервисность типичный представитель

Slide 40

Slide 40 text

catalog

Slide 41

Slide 41 text

catalog product

Slide 42

Slide 42 text

catalog product frontend

Slide 43

Slide 43 text

catalog product frontend Пользователи

Slide 44

Slide 44 text

catalog product frontend Browser Пользователи

Slide 45

Slide 45 text

catalog product frontend Browser Пользователи api

Slide 46

Slide 46 text

catalog product frontend Browser Пользователи api search

Slide 47

Slide 47 text

catalog product frontend Browser Пользователи search api order

Slide 48

Slide 48 text

catalog product frontend Browser Пользователи search order api payment

Slide 49

Slide 49 text

catalog product frontend Browser Пользователи search order payment api users

Slide 50

Slide 50 text

catalog product frontend Browser Пользователи search order payment users api auth

Slide 51

Slide 51 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android

Slide 52

Slide 52 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api

Slide 53

Slide 53 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api

Slide 54

Slide 54 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat

Slide 55

Slide 55 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket

Slide 56

Slide 56 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image

Slide 57

Slide 57 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage

Slide 58

Slide 58 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video

Slide 59

Slide 59 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation

Slide 60

Slide 60 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization

Slide 61

Slide 61 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news

Slide 62

Slide 62 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news news-front

Slide 63

Slide 63 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static

Slide 64

Slide 64 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router

Slide 65

Slide 65 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics

Slide 66

Slide 66 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator

Slide 67

Slide 67 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи

Slide 68

Slide 68 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend

Slide 69

Slide 69 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front

Slide 70

Slide 70 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor

Slide 71

Slide 71 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz

Slide 72

Slide 72 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad

Slide 73

Slide 73 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange

Slide 74

Slide 74 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange

Slide 75

Slide 75 text

На чём написали?

Slide 76

Slide 76 text

frontend Browser Пользователи payment auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange catalog product search order users

Slide 77

Slide 77 text

catalog product Browser Пользователи search order payment users auth iOS Android old-api chat image storage video translation localization news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange frontend api mobile-api websocket news-front

Slide 78

Slide 78 text

catalog product frontend Browser Пользователи search order payment users api iOS Android mobile-api old-api chat websocket image storage video localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange auth translation

Slide 79

Slide 79 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket storage translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange image video

Slide 80

Slide 80 text

catalog product frontend Browser Пользователи search order users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange payment storage analytics

Slide 81

Slide 81 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api websocket image storage video translation news-front analytics Browser Внутренние пользователи old-api chat localization news static-front static router moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange

Slide 82

Slide 82 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api websocket image storage video translation news-front analytics Browser Внутренние пользователи old-api chat localization news static-front static router moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange

Slide 83

Slide 83 text

In-memory? Кэш?

Slide 84

Slide 84 text

frontend Browser Пользователи search payment users auth api iOS Android mobile-api chat websocket video translation localization news-front news static-front static analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange catalog product order old-api image storage router

Slide 85

Slide 85 text

catalog product frontend Browser Пользователи search order payment users api iOS Android mobile-api old-api chat websocket image storage video translation localization news static-front static router analytics Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange auth news-front moderator

Slide 86

Slide 86 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange static-front файловый кэш

Slide 87

Slide 87 text

catalog product Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange frontend

Slide 88

Slide 88 text

catalog product Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange frontend

Slide 89

Slide 89 text

Базы данных?

Slide 90

Slide 90 text

frontend Browser Пользователи search payment auth api iOS Android mobile-api old-api chat websocket storage video translation localization news-front static-front analytics Browser Внутренние пользователи admin-frontend moderator-front constructor-front zakaz sklad order-exchange catalog product order users image news static router moderator constructor

Slide 91

Slide 91 text

catalog product frontend Browser Пользователи search order users auth api iOS Android mobile-api old-api websocket image storage video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange payment chat

Slide 92

Slide 92 text

catalog product frontend Browser Пользователи order payment users auth api iOS Android mobile-api old-api chat websocket image storage video translation localization news-front news static-front static router moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange search analytics

Slide 93

Slide 93 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage

Slide 94

Slide 94 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator Browser Внутренние пользователи admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage

Slide 95

Slide 95 text

Martin Fowler https://martinfowler.com/articles/microservice-trade-offs.html Distribution Distributed systems are harder to program, since remote calls are slow and are always at risk of failure. Microservices Trade-offs Eventual Consistency Maintaining strong consistency is extremely difficult for a distributed system, which means everyone has to manage eventual consistency. Operational Complexity You need a mature operations team to manage lots of services, which are being redeployed regularly.

Slide 96

Slide 96 text

Чёткие границы модулей Наши ожидания оправдались? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов

Slide 97

Slide 97 text

Наши ожидания оправдались? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Чёткие границы модулей

Slide 98

Slide 98 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Насколько, обычно, локализованы изменения?

Slide 99

Slide 99 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Насколько, обычно, локализованы изменения? Можно произвести отладку без распределенного трассировщика?

Slide 100

Slide 100 text

Наши ожидания оправдались? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Чёткие границы модулей

Slide 101

Slide 101 text

Наши ожидания оправдались? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи

Slide 102

Slide 102 text

No content

Slide 103

Slide 103 text

Наши ожидания оправдались? Независимость деплоя Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи

Slide 104

Slide 104 text

Наши ожидания оправдались? Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Независимость деплоя

Slide 105

Slide 105 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Да, выкатить один сервис технически возможно!

Slide 106

Slide 106 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Да, выкатить один сервис технически возможно! Но нужно постоянно думать о порядке выката нескольких микросервисов.

Slide 107

Slide 107 text

Наши ожидания оправдались? Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Независимость деплоя

Slide 108

Slide 108 text

Наши ожидания оправдались? Свобода выбора технологии Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой

Slide 109

Slide 109 text

Наши ожидания оправдались? Независимость разработки Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии

Slide 110

Slide 110 text

Наши ожидания оправдались? Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Независимость разработки

Slide 111

Slide 111 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Как сделать (и потом поддерживать) “тестовый” контур?

Slide 112

Slide 112 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Как сделать (и потом поддерживать) “тестовый” контур? Что нужно разработчику, чтобы развернуть локально?

Slide 113

Slide 113 text

Наши ожидания оправдались? Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Независимость разработки

Slide 114

Slide 114 text

Наши ожидания оправдались? Раздельное масштабирование Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки

Slide 115

Slide 115 text

Наши ожидания оправдались? Бо́льшая надежность Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование

Slide 116

Slide 116 text

Наши ожидания оправдались? Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Бо́льшая надежность

Slide 117

Slide 117 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Выход из строя практически любого сервиса ломает всю систему.

Slide 118

Slide 118 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Выход из строя практически любого сервиса ломает всю систему. Сделать отказоустойчивым каждый сервис — очень и очень сложно!

Slide 119

Slide 119 text

Наши ожидания оправдались? Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Бо́льшая надежность

Slide 120

Slide 120 text

Наши ожидания оправдались? Измеримость нагрузки “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Абсолютная неустойчивость

Slide 121

Slide 121 text

Наши ожидания оправдались? “Легкость” микросервисов Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Абсолютная неустойчивость Измеримость нагрузки

Slide 122

Slide 122 text

Наши ожидания оправдались? Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Абсолютная неустойчивость Измеримость нагрузки “Легкость” микросервисов

Slide 123

Slide 123 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Огромные сетевые накладки (умножение запросов, rtt, dns, память worker'ов)

Slide 124

Slide 124 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Огромные сетевые накладки (умножение запросов, rtt, dns, память worker'ов) Колоссальное дублирование данных (x3-x10)

Slide 125

Slide 125 text

Наши ожидания оправдались? Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Абсолютная неустойчивость Измеримость нагрузки “Легкость” микросервисов

Slide 126

Slide 126 text

Наши ожидания оправдались? Распределенный комок грязи Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Абсолютная неустойчивость Измеримость нагрузки Сплошные накладные расходы

Slide 127

Slide 127 text

Распределенный комок грязи Наши ожидания оправдались? Непредсказуемый деплой Свобода выбора технологии Невозможность разработки Раздельное масштабирование Абсолютная неустойчивость Измеримость нагрузки Сплошные накладные расходы

Slide 128

Slide 128 text

А кроме этого...

Slide 129

Slide 129 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Нужна “шина сообщений”

Slide 130

Slide 130 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Как сделать бэкап?

Slide 131

Slide 131 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Несколько регионов?

Slide 132

Slide 132 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Внесение “централизованных” изменений

Slide 133

Slide 133 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Чрезвычайный рост операционной сложности

Slide 134

Slide 134 text

Productivity Base Complexity Microservice Monolith Вредная микросервисность

Slide 135

Slide 135 text

Productivity Base Complexity Microservice Monolith Очень вредная микросервисность

Slide 136

Slide 136 text

Microservice Productivity Base Complexity Monolith Губительная микросервисность

Slide 137

Slide 137 text

Almost all the successful microservice stories have started with a monolith that got too big and was broken up Monolith First Martin Fowler https://martinfowler.com/bliki/MonolithFirst.html Almost all the cases where I've heard of a system that was built as a microservice system from scratch, it has ended up in serious trouble.

Slide 138

Slide 138 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Но что делать, если мы уже оказались в такой ситуации?

Slide 139

Slide 139 text

Microservice Productivity Base Complexity Monolith Губительная микросервисность

Slide 140

Slide 140 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Но что делать, если мы уже оказались в такой ситуации?

Slide 141

Slide 141 text

catalog product frontend Browser Пользователи search order payment users auth api iOS Android mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage Но что делать, если мы уже оказались в такой ситуации? Резать лишнее и укрупнять!

Slide 142

Slide 142 text

catalog product frontend search order payment users auth api mobile-api old-api chat websocket image video translation localization news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage

Slide 143

Slide 143 text

catalog product frontend search order payment users auth api mobile-api old-api chat websocket image video news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage translation localization

Slide 144

Slide 144 text

catalog product frontend search order payment users auth api mobile-api old-api chat websocket image video news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage translation localization

Slide 145

Slide 145 text

catalog product frontend search order payment users auth api mobile-api old-api chat websocket image video news-front news static-front static router analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage

Slide 146

Slide 146 text

image video analytics zakaz storage catalog product frontend search order payment users auth api mobile-api old-api chat websocket news-front news static-front static router moderator admin-frontend moderator-front constructor-front constructor sklad order-exchange

Slide 147

Slide 147 text

image video analytics zakaz storage catalog product frontend search order payment users auth api mobile-api old-api chat websocket news-front news static-front static router moderator admin-frontend moderator-front constructor-front constructor sklad order-exchange

Slide 148

Slide 148 text

search api mobile-api old-api chat websocket image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage catalog product frontend order payment users auth news-front news static-front static router

Slide 149

Slide 149 text

search api mobile-api old-api chat websocket image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage shop

Slide 150

Slide 150 text

search api mobile-api old-api chat websocket image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage shop

Slide 151

Slide 151 text

search mobile-api old-api chat websocket image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage api shop

Slide 152

Slide 152 text

search mobile-api old-api chat websocket image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage api shop

Slide 153

Slide 153 text

mobile-api old-api chat websocket image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage search api shop

Slide 154

Slide 154 text

mobile-api old-api chat websocket image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage search api shop

Slide 155

Slide 155 text

mobile-api old-api image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage chat websocket search api shop

Slide 156

Slide 156 text

mobile-api old-api image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage chat search api shop

Slide 157

Slide 157 text

image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage mobile-api old-api chat search api shop

Slide 158

Slide 158 text

image video analytics moderator admin-frontend moderator-front constructor-front constructor zakaz sklad order-exchange storage api mobile-api old-api chat search shop

Slide 159

Slide 159 text

image video analytics zakaz sklad order-exchange storage moderator admin-frontend moderator-front constructor-front constructor api mobile-api old-api chat search shop

Slide 160

Slide 160 text

image video analytics zakaz sklad order-exchange storage api mobile-api old-api chat search shop-admin shop

Slide 161

Slide 161 text

image video analytics zakaz order-exchange storage sklad api mobile-api old-api chat search shop-admin shop

Slide 162

Slide 162 text

image video analytics zakaz order-exchange storage api mobile-api old-api chat sklad-exchange search shop-admin shop

Slide 163

Slide 163 text

image video analytics zakaz storage order-exchange api mobile-api old-api chat sklad-exchange search shop-admin shop

Slide 164

Slide 164 text

image video analytics zakaz storage api mobile-api old-api chat sklad-exchange order-exchange search shop-admin shop

Slide 165

Slide 165 text

api mobile-api old-api chat analytics zakaz sklad-exchange order-exchange search shop-admin shop image video storage

Slide 166

Slide 166 text

api mobile-api old-api chat analytics zakaz sklad-exchange order-exchange search shop-admin shop media

Slide 167

Slide 167 text

media api mobile-api old-api chat zakaz sklad-exchange order-exchange search shop-admin shop analytics

Slide 168

Slide 168 text

media api mobile-api old-api chat zakaz sklad-exchange order-exchange search shop-admin shop analytics internal-api

Slide 169

Slide 169 text

media api mobile-api old-api chat zakaz sklad-exchange order-exchange search shop-admin shop internal-api analytics

Slide 170

Slide 170 text

media analytics api mobile-api old-api chat sklad-exchange order-exchange search shop-admin shop internal-api zakaz

Slide 171

Slide 171 text

media analytics api mobile-api old-api chat sklad-exchange order-exchange search shop-admin shop internal-api warehouse-replenishment

Slide 172

Slide 172 text

api mobile-api old-api chat sklad-exchange order-exchange search shop-admin internal-api media shop analytics warehouse-replenishment

Slide 173

Slide 173 text

No content

Slide 174

Slide 174 text

Микросервисы вовсе не микро!!!

Slide 175

Slide 175 text

for less-complex systems, the extra baggage required to manage microservices reduces productivity as complexity kicks in, productivity starts failing rapidly the decreased coupling of microservices reduces the attenuation of productivity Productivity Base Complexity Monolith Microservice

Slide 176

Slide 176 text

for less-complex systems, the extra baggage required to manage microservices reduces productivity as complexity kicks in, productivity starts failing rapidly the decreased coupling of microservices reduces the attenuation of productivity Productivity Base Complexity Monolith Microservice but remember the skill of the team will outweight any monolith/microsevice choice

Slide 177

Slide 177 text

github.com/flant/grafana-statusmap grafana-statusmap Grafana panel plugin to visualize status of multiple objects over time. Звезданите нас, пожалуйста!

Slide 178

Slide 178 text

Наши Docker/K8s-проекты github.com/flant/dapp github.com/flant/loghouse Дмитрий Столяров [email protected] linkedin.com/in/distol github.com/distol Всем спасибо! Наш блог на Хабре habr.com/company/flant/ Наш YouTube-канал youtube.com/c/flant