Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Как [не] продать технический долг

flant
July 01, 2021

Как [не] продать технический долг

Доклад ведущего инженера компании «Флант» (https://flant.ru/) Владимира Гурьянова на конференции DevOpsConf 2021 в Москве.

* Текстовый обзор доклада: https://habr.com/company/flant/blog/564720/
* Видео с выступления: https://youtu.be/wFHXXV49PhM

flant

July 01, 2021
Tweet

More Decks by flant

Other Decks in Technology

Transcript

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

    View Slide

  2. Business First

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. Business First

    View Slide

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

    View Slide

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

    View Slide

  9. Гурьянов Владимир
    Ведущий Инженер
    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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  41. View Slide

  42. View Slide

  43. Continuous
    Improvement

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  51. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  56. Bug
    time.Now()
    time

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  62. View Slide

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

    View Slide

  64. new feature
    time
    tech debt

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  72. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  77. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  104. Факт

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  112. Business First

    View Slide

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

    View Slide