Slide 1

Slide 1 text

Гурьянов Владимир Ведущий инженер Как [не] продать технический долг

Slide 2

Slide 2 text

Business First

Slide 3

Slide 3 text

Business First Инженеры грустят

Slide 4

Slide 4 text

Business First Инженеры грустят Технический долг растет

Slide 5

Slide 5 text

Business First Компания остается конкурентоспособной Инженеры грустят Технический долг растет

Slide 6

Slide 6 text

Business First

Slide 7

Slide 7 text

Компания остается конкурентоспособной Инженеры грустят Технический долг растет Можно достичь равновесий

Slide 8

Slide 8 text

Гурьянов Владимир Ведущий Инженер twitter.com/Magvai69 @Magvai69 10 лет опыта работы инженером 10+ проектов смигрировал в k8s

Slide 9

Slide 9 text

Гурьянов Владимир Ведущий Инженер twitter.com/Magvai69 @Magvai69 Флант DevOps и Kubernetes, обслуживание 24×7 habr.com/ru/company/flant youtube.com/c/Флант flant.ru t.me/flant_ru 10 лет опыта работы инженером 10+ проектов смигрировал в k8s

Slide 10

Slide 10 text

Почему системный администратор рассказывает про технический долг?

Slide 11

Slide 11 text

Почему системный администратор рассказывает про технический долг? Infrastructure as a code 1

Slide 12

Slide 12 text

Почему системный администратор рассказывает про технический долг? Infrastructure as a code 1 Monitoring as a code 2

Slide 13

Slide 13 text

Почему системный администратор рассказывает про технический долг? Infrastructure as a code 1 Monitoring as a code 2 Everything as a code 3

Slide 14

Slide 14 text

Почему системный администратор рассказывает про технический долг? Infrastructure as a code 1 Monitoring as a code 2 Everything as a code 3

Slide 15

Slide 15 text

Задача: ускорить процесс создания test- и production-окружений

Slide 16

Slide 16 text

Задача: ускорить процесс создания test- и production-окружений Как можно ускорить?

Slide 17

Slide 17 text

Разработать IaC 1 Задача: ускорить процесс создания test- и production-окружений Как можно ускорить?

Slide 18

Slide 18 text

Разработать IaC 1 Выбрать инструмент 2 Задача: ускорить процесс создания test- и production-окружений Как можно ускорить?

Slide 19

Slide 19 text

Разработать IaC 1 Выбрать инструмент 2 Задача: ускорить процесс создания test- и production-окружений Как можно ускорить?

Slide 20

Slide 20 text

Разработать IaC 1 Выбрать инструмент 2 Рассчитать сроки 3 Задача: ускорить процесс создания test- и production-окружений Как можно ускорить?

Slide 21

Slide 21 text

50 ролей Задача: разработать IaC Что нужно, чтобы разработать IaC?

Slide 22

Slide 22 text

50 ролей Разработка роли ~ 7 дней Задача: разработать IaC Что нужно, чтобы разработать IaC?

Slide 23

Slide 23 text

50 ролей Разработка роли ~ 7 дней Задача: разработать IaC Что нужно, чтобы разработать IaC? Разработка CI/CD ~ 2-3 дня

Slide 24

Slide 24 text

50 ролей Разработка тестов ~ 3-4 дня Разработка роли ~ 7 дней Задача: разработать IaC Что нужно, чтобы разработать IaC? Разработка CI/CD ~ 2-3 дня

Slide 25

Slide 25 text

Разработка тестов ~ 3-4 дня Разработка роли ~ 7 дней Задача: разработать IaC Что нужно, чтобы разработать IaC? 700 дней Разработка CI/CD ~ 2-3 дня 50 ролей

Slide 26

Slide 26 text

Разработка тестов ~ 3-4 дня Разработка роли ~ 7 дней Задача: разработать IaC Что нужно, чтобы разработать IaC? 700 дней Разработка CI/CD ~ 2-3 дня 50 ролей

Slide 27

Slide 27 text

Что может произойти за 2 года?

Slide 28

Slide 28 text

Что может произойти за 2 года? В компании поменяется стeк 1

Slide 29

Slide 29 text

Что может произойти за 2 года? В компании поменяется стeк 1 Придумают Deckhouse 2

Slide 30

Slide 30 text

Что может произойти за 2 года? В компании поменяется стeк 1 Вам будут платить зарплату 3 Придумают Deckhouse 2

Slide 31

Slide 31 text

Что может произойти за 2 года? В компании поменяется стeк 1 Компания разорится 4 Вам будут платить зарплату 3 Придумают Deckhouse 2

Slide 32

Slide 32 text

Что же делать?

Slide 33

Slide 33 text

Что же делать? Берём ещё больше DevOps-инженеров!

Slide 34

Slide 34 text

Что же делать? Берём ещё больше DevOps-инженеров!

Slide 35

Slide 35 text

Что же делать? Берём ещё больше DevOps-инженеров! Ускоряемся!

Slide 36

Slide 36 text

Разработка тестов ~ 3-4 дня Разработка роли ~ 7 дней Разработка CI/CD ~ 2-3 дня Задача: разработать IaC Что нужно, чтобы разработать IaC? 700 – 560 = 140 дней 50 ролей 10 ролей

Slide 37

Slide 37 text

Разработка тестов ~ 3-4 дня Разработка CI/CD ~ 2-3 дня 50 ролей 10 ролей Задача: разработать IaC Что нужно, чтобы разработать IaC? 140 – 40 = 100 дней Разработка роли ~ 7 дней 3 дня

Slide 38

Slide 38 text

Разработка тестов ~ 3-4 дня Разработка роли ~ 7 дней 3 дня 50 ролей 10 ролей Задача: разработать IaC Что нужно, чтобы разработать IaC? 100 – 40 = 60 дней Разработка CI/CD ~ 2-3 дня

Slide 39

Slide 39 text

Разработка роли ~ 7 дней 3 дня Разработка CI/CD ~ 2-3 дня 50 ролей 10 ролей Задача: разработать IaC Что нужно, чтобы разработать IaC? Разработка тестов ~ 3-4 дня 60 – 30 = 30 дней

Slide 40

Slide 40 text

Разработка тестов ~ 3-4 дня Разработка роли ~ 7 дней 3 дня Задача: разработать IaC Что нужно, чтобы разработать IaC? Разработка CI/CD ~ 2-3 дня 50 ролей 10 ролей 30 дней

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Continuous Improvement

Slide 44

Slide 44 text

Continuous Improvement Технический долг

Slide 45

Slide 45 text

Что такое технический долг? Метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем. Источник: Wikipedia

Slide 46

Slide 46 text

Что такое технический долг? Метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем. Источник: Wikipedia

Slide 47

Slide 47 text

Что такое технический долг? Метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем. Источник: Wikipedia

Slide 48

Slide 48 text

Что такое технический долг? Метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем. Источник: Wikipedia

Slide 49

Slide 49 text

Метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем. Что такое технический долг? Так вот он! Источник: Wikipedia

Slide 50

Slide 50 text

И это осознанный выбор

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

Как выглядит процесс разработки? Visible Invisible

Slide 53

Slide 53 text

Как выглядит процесс разработки? Feature Feature Feature Visible Invisible

Slide 54

Slide 54 text

Как выглядит процесс разработки? Feature Feature Feature Visible Invisible Architecture changes

Slide 55

Slide 55 text

Как выглядит процесс разработки? Feature Feature Feature Visible Bug Bug Bug Invisible Architecture changes

Slide 56

Slide 56 text

Bug time.Now() time

Slide 57

Slide 57 text

time.Now() Bug Technical debt time.Now() + X time

Slide 58

Slide 58 text

Как выглядит процесс разработки? Feature Feature Feature Visible Bug Bug Bug Technical debt Invisible Architecture changes

Slide 59

Slide 59 text

А что, если...

Slide 60

Slide 60 text

А что, если...

Slide 61

Slide 61 text

Разработка CI/CD ~ 2-3 дня Разработка тестов ~ 3-4 дня 50 ролей 10 ролей 30 дней 140 дней Разработка роли 7 дней А что, если делать нормально?

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

Бесконечный поток новых фич в Kubernetes

Slide 64

Slide 64 text

new feature time tech debt

Slide 65

Slide 65 text

Это общая тенденция: код ещё не написан, а уже всё устарело new feature tech debt time

Slide 66

Slide 66 text

А дальше нас ждёт Dependency Hell

Slide 67

Slide 67 text

Сложно ли обновить одну зависимость?

Slide 68

Slide 68 text

50% зависимостей обновлено Сложно ли обновить одну зависимость?

Slide 69

Slide 69 text

50% зависимостей обновлено 30% кода переписано Сложно ли обновить одну зависимость?

Slide 70

Slide 70 text

14 дней 50% зависимостей обновлено 30% кода переписано Сложно ли обновить одну зависимость?

Slide 71

Slide 71 text

Сложно ли обновить одну зависимость? dependabot спешит на помощь

Slide 72

Slide 72 text

No content

Slide 73

Slide 73 text

История одной БД

Slide 74

Slide 74 text

История одной БД Объем данных 8 ТБ

Slide 75

Slide 75 text

История одной БД Кол-во реплик 3 шт Объем данных 8 ТБ

Slide 76

Slide 76 text

История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ

Slide 77

Slide 77 text

No content

Slide 78

Slide 78 text

История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ

Slide 79

Slide 79 text

Чек за инфраструктуру в облаке ~ 70 000 руб/мес История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ

Slide 80

Slide 80 text

Чек за инфраструктуру в облаке ~ 70 000 руб/мес История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Стоимость изменений

Slide 81

Slide 81 text

Чек за инфраструктуру в облаке ~ 70 000 руб/мес История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Разработка 80 часов Стоимость изменений

Slide 82

Slide 82 text

Чек за инфраструктуру в облаке ~ 70 000 руб/мес История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Тестирование 20 часов Разработка 80 часов Стоимость изменений

Slide 83

Slide 83 text

Чек за инфраструктуру в облаке ~ 70 000 руб/мес Внедрение ~ 100 000 руб История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Тестирование 20 часов Разработка 80 часов Стоимость изменений

Slide 84

Slide 84 text

Чек за инфраструктуру в облаке ~ 70 000 руб/мес Внедрение ~ 100 000 руб Обслуживание после внедрения ~ 35 000 руб/мес История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Тестирование 20 часов Разработка 80 часов Стоимость изменений

Slide 85

Slide 85 text

Стоимость изменений Чек за инфраструктуру в облаке ~ 70 000 руб/мес Внедрение ~ 100 000 руб Обслуживание после внедрения ~ 35 000 руб/мес История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Тестирование 20 часов Разработка 80 часов Экономия 35 000 руб/мес

Slide 86

Slide 86 text

Стоимость изменений Чек за инфраструктуру в облаке ~ 70 000 руб/мес Внедрение ~ 100 000 руб Обслуживание после внедрения ~ 35 000 руб/мес История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Тестирование 20 часов Разработка 80 часов Экономия 35 000 руб/мес Срок окупаемости 3 месяца

Slide 87

Slide 87 text

Стоимость изменений История одной БД Кол-во реплик 3 шт Место под резервное копирование ~ 15 ТБ Объем данных 8 ТБ Тестирование 20 часов Разработка 80 часов Чек за инфраструктуру в облаке ~ 70 000 руб/мес Внедрение ~ 100 000 руб Обслуживание после внедрения ~ 35 000 руб/мес Экономия 35 000 руб/мес Срок окупаемости 3 месяца

Slide 88

Slide 88 text

Понимайте и говорите с бизнесом на одном языке

Slide 89

Slide 89 text

Идеальнометр!

Slide 90

Slide 90 text

Формула идеального решения идеальное решение идеальное техническое решение

Slide 91

Slide 91 text

Формула идеального решения идеальное решение идеальное техническое решение идеальная стоимость

Slide 92

Slide 92 text

А мы знаем про весь технический долг?

Slide 93

Slide 93 text

А мы знаем про весь технический долг?

Slide 94

Slide 94 text

А мы знаем про весь технический долг? Нет, на самом деле мы знаем не всё

Slide 95

Slide 95 text

А мы знаем про весь технический долг? Причины появления тех. долга: Нет, на самом деле мы знаем не всё

Slide 96

Slide 96 text

А мы знаем про весь технический долг? У нас нет достаточно времени, нам нужно сейчас 1 Причины появления тех. долга: Нет, на самом деле мы знаем не всё

Slide 97

Slide 97 text

А мы знаем про весь технический долг? У нас нет достаточно времени, нам нужно сейчас 1 О, теперь мы знаем как! 2 Причины появления тех. долга: Нет, на самом деле мы знаем не всё

Slide 98

Slide 98 text

post-mortem – отчет об инциденте

Slide 99

Slide 99 text

Способ получить картину целиком и найти новый тех. долг 1 А причем тут post-mortem?

Slide 100

Slide 100 text

Способ получить картину целиком и найти новый тех. долг 1 Фиксация тех. долга с примером ущерба 2 А причем тут post-mortem?

Slide 101

Slide 101 text

Способ получить картину целиком и найти новый тех. долг 1 Статистика и аргументы при продаже тех. долга 3 Фиксация тех. долга с примером ущерба 2 А причем тут post-mortem?

Slide 102

Slide 102 text

А как понять, что это технический долг?

Slide 103

Slide 103 text

time.Now() Bug Technical debt time.Now() + X time

Slide 104

Slide 104 text

Факт

Slide 105

Slide 105 text

Факт Влияет на доступность?

Slide 106

Slide 106 text

Факт Влияет на доступность? Bug Да

Slide 107

Slide 107 text

Факт Влияет на доступность? Встречается часто? Bug Нет Да

Slide 108

Slide 108 text

Факт Влияет на доступность? Встречается часто? Bug / задача на доработку Нет Да Да

Slide 109

Slide 109 text

Факт Влияет на доступность? Встречается часто? Нужно много времени на диагностику и устранение? Bug / задача на доработку Нет Да Да Нет

Slide 110

Slide 110 text

Факт Влияет на доступность? Встречается часто? Нужно много времени на диагностику и устранение? Bug / задача на доработку Нет Да Да Да Нет

Slide 111

Slide 111 text

Факт Влияет на доступность? Встречается часто? Нужно много времени на диагностику и устранение? Bug / задача на доработку Технический долг Нет Да Да Да Нет Нет

Slide 112

Slide 112 text

Business First

Slide 113

Slide 113 text

Спасибо! Наш блог на Хабре habr.com/company/flant Наш YouTube-канал youtube.com/c/Флант Владимир Гурьянов [email protected] Ведущий Инженер Приходите к нам работать job.flant.ru