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

Getting sh!t done in devops style — on TechTrain 2019

Getting sh!t done in devops style — on TechTrain 2019

There is a huge amount of technologies, frameworks, methodologies, with help of which you can increase effectiveness. But nothing comes for free, let's see the real price of speed. How debts are created and who will have to pay for them, and we are not talking about classic technical debt — a patch in the code or lack of tests.

How to work without transferring debts to others? How to make decisions, aware of the consequences? Let's think about that together. Speakers, Maksim and Kirill will tell the practical experience and what they learned from it.

Kirill Tolkachev

August 25, 2019
Tweet

More Decks by Kirill Tolkachev

Other Decks in Technology

Transcript

  1. Getting sh!t done

    View full-size slide

  2. Getting sh!t done
    DevОps style

    View full-size slide

  3. Дисклеймер
    Все, что будет здесь рассказано - это наш
    кумулятивный опыт и размышления на тему успешных
    и ошибочных решений.

    View full-size slide

  4. Дисклеймер
    Все, что будет здесь рассказано - это наш
    кумулятивный опыт и размышления на тему успешных
    и ошибочных решений.
    Всегда стоит узнать про чужой опыт и послушать чужое
    мнение, но все услышанное надо анализировать на
    применимость в каждой конкретной ситуации.

    View full-size slide

  5. Дисклеймер
    Все, что будет здесь рассказано - это наш
    кумулятивный опыт и размышления на тему успешных
    и ошибочных решений.
    Всегда стоит узнать про чужой опыт и послушать чужое
    мнение, но все услышанное надо анализировать на
    применимость в каждой конкретной ситуации.
    Используйте мозги и не впадайте в карго-культ - это
    самое главное.

    View full-size slide

  6. Все истории вымышлены...
    ... но основаны на реальных событиях

    View full-size slide

  7. Возможны проявления Капитана “Очевидность”

    View full-size slide

  8. Возможны проявления Капитана “Очевидность”
    Но это
    нормально...

    View full-size slide

  9. Почему мы рассказываем вдвоем?

    View full-size slide

  10. Почему мы рассказываем вдвоем?
    Один умеет немного читать...

    View full-size slide

  11. Почему мы рассказываем вдвоем?
    Один умеет немного читать...
    Другой немного писать...

    View full-size slide

  12. @tolkv
    @lavcraft
    @gorelikoff
    @gorelikov
    В сумме больше 20 лет в IT

    View full-size slide

  13. Проблематика

    View full-size slide

  14. Забытые технологии предков
    - Кто приходил в новую компанию и видел тулы/бибилитеки/CI/CD
    которые вроде классные, но никто не знает как они работают?

    View full-size slide

  15. Исторические слои
    - А кто приходил в команду и на вопрос что это за №;*;”№#!
    Получал ответ «Так исторически сложилось»?

    View full-size slide

  16. Наркоманский технологический чемоданчик
    - Кто видел подобную систему:
    “У нас было 4 npm пакета, 75 jar`ов с библиотеками, 5 скриптов на перле,
    3 на питоне и немного на баше, наполовину загруженный кластер
    кубернетеса, и целое море микросервисов на c#, go, rust, swift, dart.”

    View full-size slide

  17. В чем причина подобных
    ситуации?
    Вася-разраб

    View full-size slide

  18. Погоня за скоростью!!!
    Мне нужно закончить работу
    до 6 иначе не заплатят
    Вася-разраб

    View full-size slide

  19. Иногда скорость - это данность
    Закончи к 6и вечера,
    у меня презентация
    Stakeholder

    View full-size slide

  20. Stakeholder
    Я всё продал
    Давай в production

    View full-size slide

  21. MVP
    Мы должны
    быть первыми!
    Stakeholder

    View full-size slide

  22. В погоне быть первыми на рынке

    View full-size slide

  23. В погоне быть первыми на рынке
    Недостаток автоматизации

    View full-size slide

  24. В погоне быть первыми на рынке
    Недостаток автоматизации
    Костыли в коде
    ...

    View full-size slide

  25. Это ужасно!

    View full-size slide

  26. Это нормально

    View full-size slide

  27. Будущие
    поколения нас
    проклянут!

    View full-size slide

  28. Если они будут

    View full-size slide

  29. MVP как покупка в кредит

    View full-size slide

  30. Эйфория после запуска
    И ничего делать не нужно

    View full-size slide

  31. Но коллекторы придут за долгом...

    View full-size slide

  32. Если не к вам, то к тем, кто будет после вас

    View full-size slide

  33. Если есть шанс, что этот мутант проживет чуть
    больше чем нужно...

    View full-size slide

  34. … и его коснется кто-то кроме вас

    View full-size slide

  35. Не перекладывай долги на других, если возможно
    Вася

    View full-size slide

  36. А что такое Sh!t?

    View full-size slide

  37. На вкус и цвет все фломастеры разные!

    View full-size slide

  38. Stakeholder
    Сделали все быстро - красота

    View full-size slide

  39. разработчик
    Быстро, но собрали из
    Sh!t

    View full-size slide

  40. Ладно хоть денег заработали
    разработчик

    View full-size slide

  41. Sh!t
    — то, за что разработчикам стыдно, но платят
    деньги

    View full-size slide

  42. Компания пошла на взлёт
    Разработка идёт

    View full-size slide

  43. Пора расти
    Нанимать людей, работы невпроворот

    View full-size slide

  44. А кого же мы наняли
    CTO Backend Frontend
    Admin

    View full-size slide

  45. Все неплохо...

    View full-size slide

  46. Что у нас есть?
    Стабильный бэк

    View full-size slide

  47. Что у нас есть?
    Стабильный бэк Быстрый фронт

    View full-size slide

  48. Что у нас есть?
    Стабильный бэк Быстрый фронт
    Инфраструктура
    с
    мониторингом

    View full-size slide

  49. Супер команда!

    View full-size slide

  50. Супер продукт

    View full-size slide

  51. ...но что-то идет не так

    View full-size slide

  52. Быстрый фронт стабильно падает
    и мы узнаем об этом от клиентов

    View full-size slide

  53. Стабильный бэк стабильно тормозит
    об этом пишут клиенты

    View full-size slide

  54. Инфраструктура тормозит и стабильно
    падает,
    но мы узнаем об этом первыми :)

    View full-size slide

  55. Как же так?

    View full-size slide

  56. Команда супер
    наверняка все дело в технологиях!

    View full-size slide

  57. Давайте посмотрим как мы выбирали технологии?

    View full-size slide

  58. Инженерное сравнение технологий/подходов
    ● Технология 1
    ● Технология 2
    ● Технология 3
    ● Технология 4

    View full-size slide

  59. Инженерное сравнение технологий/подходов
    Мониторинг Стабильность Эксплуатация Обновление
    1
    1
    1
    1
    Место в рейтинге

    View full-size slide

  60. Инженерное сравнение технологий/подходов
    Мониторинг Стабильность Эксплуатация Обновление
    1
    3
    1
    1
    Место в рейтинге

    View full-size slide

  61. Инженерное сравнение технологий/подходов
    Мониторинг Стабильность Эксплуатация Обновление
    1
    3
    4
    2
    Место в рейтинге

    View full-size slide

  62. Инженерное сравнение технологий/подходов
    Мониторинг Стабильность Эксплуатация Обновление
    1 2 1 1
    3 4 3 3
    4 3 4 4
    2 1 2 2
    Место в рейтинге

    View full-size slide

  63. Инженерное сравнение технологий/подходов
    Мониторинг Стабильность Эксплуатация Обновление
    1 2 1 1
    3 4 3 3
    4 3 4 4
    2 1 2 2
    Место в рейтинге

    View full-size slide

  64. Инженерное сравнение технологий/подходов
    Телем Стаб Экспл Обнов
    1 2 1 1
    3 4 3 3
    4 3 4 4
    2 1 2 2

    View full-size slide

  65. Инженерное сравнение технологий/подходов
    Телем Стаб Экспл Обнов
    1 2 1 1
    3 4 3 3
    4 3 4 4
    2 1 2 2

    View full-size slide

  66. Инженерное сравнение технологий/подходов
    Телем Стаб Экспл Обнов
    1 2 1 1
    3 4 3 3
    4 3 4 4
    2 1 2 2

    View full-size slide

  67. Мы все разные

    View full-size slide

  68. Нужен общий фокус

    View full-size slide

  69. Можно конечно попробовать совместить все лучшее
    Admin
    Backend Frontend

    View full-size slide

  70. Но хорошо если у вас получится что-то такое
    Backend
    Frontend

    View full-size slide

  71. А то ведь может и такое
    Fron@#$% Back%#$&

    View full-size slide

  72. Надо договариваться о фокусе
    на каждом этапе жизни компании

    View full-size slide

  73. Например, MVP
    - скорость разработки

    View full-size slide

  74. Рост пользователей
    - производительность

    View full-size slide

  75. Удержание пользователей
    - стабильность

    View full-size slide

  76. Ну или конкретные SLA в цифрах
    но их должны знать все

    View full-size slide

  77. Как держать фокус в тонусе – вывод №1
    Чтобы фокус всей компании помещался в голову, нужно его простое
    «числовое» представление

    View full-size slide

  78. Как держать фокус в тонусе – вывод №1
    50ms
    request
    1md
    feature
    1h
    recovery time
    Чтобы фокус всей компании помещался в голову, нужно его простое
    «числовое» представление

    View full-size slide

  79. Текущий SLA должен быть во всех головах команды

    View full-size slide

  80. Текущий SLA должен быть во всех головах команды
    Особенно в условиях разработки на скорость

    View full-size slide

  81. Телем Стаб Мндж Обнов
    1 2 1 1
    3 4 3 3
    4 3 4 4
    2 1 2 2
    Фокус – лишь один
    сложность
    Количество
    фокусов
    1 2 3

    View full-size slide

  82. Телем Стаб Мндж Обнов
    1 2 1 1
    3 4 3 3
    4 3 4 4
    2 1 2 2
    Каждому фокусу – своё время

    View full-size slide

  83. Sh!t - это то, что появляется когда команда не
    договорилась куда тянуть продукт

    View full-size slide

  84. Выводы №1 «Вектор скорости»
    → Чем быстрее нужно работать, тем чётче
    всем нужно двигаться в одном направлении

    View full-size slide

  85. Вышли на рынок
    Разобрались с приоритетами

    View full-size slide

  86. Ребятки, почему
    так медленно?

    View full-size slide

  87. CI лагает
    Ребятки, почему
    так медленно?

    View full-size slide

  88. frontend
    backend
    CI лагает
    БД не
    развернули
    Ребятки, почему
    так медленно?

    View full-size slide

  89. frontend
    backend
    Админы
    ;№”#@!
    Админы
    ;№”#@!
    Ребятки, почему
    так медленно?

    View full-size slide

  90. Ребятки, почему
    так медленно?
    frontend
    backend
    Админы
    ;№”#@!
    Админы
    ;№”#@!
    Мониторинг
    прода – важнее
    Admin

    View full-size slide

  91. frontend
    backend
    Админы
    ;№”#@!
    Админы
    ;№”#@!
    Мониторинг
    прода – важнее
    Admin
    Agile Coach
    Ребятки, где
    ботлнеки?
    DevOps Consultant

    View full-size slide

  92. Разобрались с узкими местами
    – админ Петя

    View full-size slide

  93. Наймём
    Петя Заменителей

    View full-size slide

  94. Так чтобы точно хватило

    View full-size slide

  95. Теперь всё иначе
    Даже время осталось

    View full-size slide

  96. В бэклоге нет задач для Админов?

    View full-size slide

  97. Этож просто лендинг
    Тут чуть чуть подкрутить

    View full-size slide

  98. Не вопрос
    Статика - Nginx
    логика - Lua
    Делов-то на час

    View full-size slide

  99. lua
    nginx
    lua
    bash
    bash
    nginx
    lua
    html
    html
    bash
    cgi
    cgi

    View full-size slide

  100. Инвестиции кончились

    View full-size slide

  101. Нужно урезать штат

    View full-size slide

  102. Админов не трожь!

    View full-size slide

  103. Извините ребята,
    StoryPoint для вас нет

    View full-size slide

  104. И это нормально!

    View full-size slide

  105. Некоторое количество времени спустя

    View full-size slide

  106. Нам нужен продающий лэндинг

    View full-size slide

  107. Сейчас посмотрим, что
    там с лэндингом

    View full-size slide

  108. lua
    nginx
    lua
    bash
    bash
    nginx
    lua
    html
    html
    bash
    cgi
    cgi

    View full-size slide

  109. lua
    nginx
    lua
    bash
    bash
    nginx
    lua
    html
    html
    bash
    cgi
    cgi
    Василий
    посмотри на это

    View full-size slide

  110. Какое изящное решение

    View full-size slide

  111. nginx
    bash
    lua html
    cgi
    cgi

    View full-size slide

  112. Sh!t - это когда вы не задумываетесь о проблемах
    на других слоях, от которых вы зависите

    View full-size slide

  113. Sh!t - это когда в погоне за скоростью вы
    используете инструменты некорректно

    View full-size slide

  114. Выводы №2 «Бутылочные горлышки»
    time
    amount
    sh!t
    time
    amount
    sh!t
    → С бутылочными горлышками бороться только
    вместе с командой
    → Не вынуждать людей принимать поспешные
    решение

    View full-size slide

  115. Инвестиции вернулись

    View full-size slide

  116. Наймем еще разработчиков

    View full-size slide

  117. Сильно быстрее не стало

    View full-size slide

  118. Что мы делаем когда
    все еще не хватает скорости?

    View full-size slide

  119. Микросервисы!!!

    View full-size slide

  120. Что могут дать микросервисы?

    View full-size slide

  121. Что могут дать микросервисы?
    ● Легко распараллеливать работу команд
    ● Легко масштабировать
    ● Архитектура системы получается более гибкой

    View full-size slide

  122. Что могут дать микросервисы?
    ● Легко распараллеливать работу команд
    ● Легко масштабировать
    ● Архитектура системы получается более гибкой
    ● Свобода выбора технологий для нового сервиса...

    View full-size slide

  123. Разработка...

    View full-size slide

  124. Некоторое количество времени спустя

    View full-size slide

  125. Нанимают первого Junior

    View full-size slide

  126. Дают ему наставника

    View full-size slide

  127. Новичек смотрит на зоопарк технологий

    View full-size slide

  128. Он пытается скрывать эмоции,
    но так выглядит
    шок вперемешку с ужасом

    View full-size slide

  129. Некоторое количество времени спустя

    View full-size slide

  130. Пожалуйста
    остановитесь!
    CTO

    View full-size slide

  131. Логичные доводы за логичную свободу
    - под определенные задачи лучше подходят
    определенные языки и технологии

    View full-size slide

  132. Тут тонкая грань

    View full-size slide

  133. Закон Конвэя

    View full-size slide

  134. Закон Конвэя

    View full-size slide

  135. Закон Конвэя

    View full-size slide

  136. Так почему тонкая грань?

    View full-size slide

  137. Свобода
    отвественность

    View full-size slide

  138. Доводы “за” полную свободу
    - решаешь задачи с помощью того, что тебе нравится
    - новые возможности при поиске людей на рынке

    View full-size slide

  139. Свобода зоопарка + Обратный закон Конвэя

    View full-size slide

  140. Я тут фичу принёс

    View full-size slide

  141. Я тут фичу принёс
    Фича,
    простая

    View full-size slide

  142. Я тут фичу принёс. Нужно срочно сделать

    View full-size slide

  143. Я тут фичу принёс. Нужно срочно сделать
    Ха, через 3дня
    забирай

    View full-size slide

  144. Я тут фичу принёс. Нужно срочно сделать
    Фича, через 2
    дня нужно
    сделать

    View full-size slide

  145. Я тут фичу принёс. Нужно срочно сделать
    Хорошо

    View full-size slide

  146. Спустя пару дней

    View full-size slide

  147. Абстракции потекли

    View full-size slide

  148. service
    service
    service
    service

    View full-size slide

  149. service service
    service
    service
    Щас декомпозируем задачку

    View full-size slide

  150. service service
    service
    service
    Щас декомпозируем задачку

    View full-size slide

  151. Ruby
    Go
    Haskell
    Kotlin

    View full-size slide

  152. service
    service
    service
    service

    View full-size slide

  153. 2 недели спустя

    View full-size slide

  154. Sh!t - это когда ставишь свою свободу
    выше чужих проблем в будущем

    View full-size slide

  155. Выводы №3 «Свобода и последствия»
    time
    amount
    свобода
    time
    amount
    sh!t
    → Пользуясь свободой, задумывайся о том, какие
    последствия она принесет для других
    Отвественность

    View full-size slide

  156. Теперь мы – корпорация

    View full-size slide

  157. Нужно больше людей
    Срок Бюджет Качество
    Три всадника энтерпрайза

    View full-size slide

  158. Опять нанимаем!

    View full-size slide

  159. Опять нанимаем!
    У нас много планов

    View full-size slide

  160. Опять нанимаем!
    У нас много планов и денег

    View full-size slide

  161. Много новичков. Очень много

    View full-size slide

  162. Много новичков. Очень много Нужно
    понижать
    порог входа

    View full-size slide

  163. «Платформенная» команда
    Займётся этим

    View full-size slide

  164. Сложно, новички не
    разберутся

    View full-size slide

  165. Скроем сложность,
    пусть пишут только
    бизнес-логику

    View full-size slide

  166. Inversion Of Control - cкрываем сложности в SDK

    View full-size slide

  167. Core-команда создает
    SDK, плагины, библиотеки...

    View full-size slide

  168. Перенос сложности
    Service code
    CI/CD
    Infrastructure
    сложность
    область

    View full-size slide

  169. Перенос сложности
    Service code
    CI/CD
    Infrastructure
    сложность
    область
    Libraries

    View full-size slide

  170. Перенос сложности
    Service code
    CI/CD
    Infrastructure
    сложность
    область
    Libraries

    View full-size slide

  171. Перенос сложности
    Service code
    CI/CD
    сложность
    область
    Libraries
    Infrastructure

    View full-size slide

  172. Sh!t –
    это когда перекидываешь сложность
    со своего слоя туда,
    где люди не готовы ее принять

    View full-size slide

  173. Перенос сложности
    Service code
    CI/CD
    Infrastructure
    сложность
    область
    Libraries

    View full-size slide

  174. Core-команды контроллирует весь процесс

    View full-size slide

  175. Все под присмотром

    View full-size slide

  176. Но с командой что то случилось

    View full-size slide

  177. Ушли “играть” в другую команию

    View full-size slide

  178. Попали в переделку

    View full-size slide

  179. Спились

    View full-size slide

  180. Это новичок

    View full-size slide

  181. Он пытается скрывать эмоции,
    но так выглядит
    потерянность и непонимание

    View full-size slide

  182. Компания вернулась
    в каменный век
    Почему?

    View full-size slide

  183. Перенос сложности
    Service code
    CI/CD
    Infrastructure
    сложность
    область
    Libraries

    View full-size slide

  184. Перенос сложности
    Service code
    CI/CD
    Infrastructure
    сложность
    область
    Libraries
    Призрачная сложность
    переноса

    View full-size slide

  185. Перенос сложности
    Service code
    CI/CD
    Infrastructure
    сложность
    область
    Libraries
    Призрачная сложность
    переноса

    View full-size slide

  186. ARTFMA
    Документация? Какая документация?

    View full-size slide

  187. Передача знаний? Какая передача?

    View full-size slide

  188. Передача знаний? Они все
    равно ничего
    не поймут

    View full-size slide

  189. Не довёл до конца – сделал sh!t
    время
    amount
    sh!t

    View full-size slide

  190. Sh!t - это когда ты спрятал что-то под коврик, но
    забыл об этом рассказать

    View full-size slide

  191. Sh!t - это когда не доделал хорошее дело до
    конца и оно протухло после твоего ухода

    View full-size slide

  192. Жизнь крутит – вертит

    View full-size slide

  193. Но нужно терпеть и не вдаваться в крайности

    View full-size slide

  194. Выводы
    ● Делать sh!t – норма
    ● Главное уметь с ним бороться

    View full-size slide

  195. Когда вы в последний раз
    задумывались...
    А не sh!t ли я делаю

    View full-size slide

  196. Вопросы
    @tolkv
    @lavcraft
    @gorelikoff
    @gorelikov

    View full-size slide

  197. Ещё парочку историй?

    View full-size slide

  198. Это конец. Дальше просто не вошедший контент

    View full-size slide

  199. План
    перевыполнен
    Вы быстро закрываете
    задачи

    View full-size slide

  200. Но кто разграебает проблемы?

    View full-size slide

  201. Постойте, какие проблемы?

    View full-size slide

  202. Я то
    молодец

    View full-size slide

  203. Это всё эти

    View full-size slide

  204. Это всё эти и эти

    View full-size slide

  205. А эти отвечают Чо сказал
    криворукий?!

    View full-size slide

  206. Хорошие плохие логи

    View full-size slide

  207. Я ничего не понял
    и добавил немного логов

    View full-size slide

  208. Я то
    молодец

    View full-size slide

  209. Пришёл Вася из другого «отдела»
    Ты чо наделал
    Пёс?

    View full-size slide

  210. Хорошие плохие логи

    View full-size slide

  211. Хорошие плохие логи

    View full-size slide

  212. Дыра в безопасности

    View full-size slide

  213. В чем проблема?
    Кто виноват? И что делать?

    View full-size slide

  214. Заплатка
    безопасности!

    View full-size slide