Искал картинку, оказалась была ровно год назад (про компрессию по сети), но обратил и на соседний твит. 'What if deployments were cheap?' и вспонил, что уже месяц держу одну вещь в закладках, ток забиваю написать.
А давайте подумаем, что плохого в дорогих деплоях и билдах? Рассмотрим дорогие в контексте времени, что вполне реально и часто встречается. Человек запустил тесты и ждёт. Допустим час. Вот что полезного можно сделать в этом время, связанное с работой?
О да, начать новый таск, может и сделать, и снова вбросить на CI/CD и ждать. А так как таски, изменения неоднородны (одно больше, одно сложнее, другое заблочено другим), то все начинают топтаться на месте и delivery time растёт, при этом баги из-за большого изменения кода в узком промежутке времени растёт (речь про то, что оно часто мёржится одним махом, а потом бегай гит-бисектом и ищи, жаль это правда).
Возможно это та самая причина, которая объясняет завышенные цены на devops мастеров, чтобы быстро настроить быстрый pipeline (дада, чуть толстая шутка), но это так же связано и со сложностью организации проекта, а здесь и архитектура, и зависимости, и еще долго по списку.
Поэтому многие и верят в скорость шиппинга из-за микросервисов, ведь проще запустить 1 сервис и подключить к тестовому окружению, чем ждать, когда один из 16 серверов, куда влезает монолит освободится, чтобы потыкать 2 кнопочки и как они работают. Но и разворачивать целую жскадрилью микросервисов чуть неправильно.
Пока есть время оправдаться - я тут смешал билд тайм и деплой тайм, но думаю многие согласятся, что это близкие понятия и живут рядом. Первое конечно должно быть шустрее, но границ нет.
Спасибо Константину за доклад,
https://www.youtube.com/watch?v=5idANUsz6_4PS: сейчас, как и год назад, у меня тоже поуменьшилось желание постить что-то, однако.