Проект "Феникс". Роман о том, как DevOps меняет бизнес к лучшему - Джордж Спаффорд
Шрифт:
Интервал:
Уильям встревает: «Я не уверен, где вы начинаете считать, но если мы начнем с того момента, когда разработчики создают код и мы помечаем его как «кандидат на релиз», я бы говорил о сотне шагов – то есть еще до того, как мы передаем все в IT-сопровождение».
Ох.
Вэс прерывает его: «Нет-нет-нет. Билл говорил «шаги внедрения». Давайте не будем копать глубже…»
Тем временем я думаю о том, что Эрик советовал мне мыслить как управляющий производством, а не как руководитель производственного участка. Внезапно я понимаю: возможно, он имел в виду, что я должен разрушить границы между разработчиками и IT-сопровождением.
«Вы, ребята, оба неправы, – обращаюсь я к Вэсу и Уильяму. – Уильям, не мог бы ты, пожалуйста, записать все шаги на доске? Я бы начал с момента, когда код принят, и до того момента, когда вы передаете его нашей группе».
Он кивает, подходит к доске и начинает рисовать прямоугольники, рассказывая о шагах по мере продвижения. В следующие десять минут Уильям доказывает, что в работе около сотни шагов, включая автоматические тесты в среде разработки; создание среды для контроля качества, которая подходит для разработчиков; запуск кода внутри нее; прохождение всех тестов, внедрение и перенос его в среду, которая подходит для группы контроля качества; нагрузочное тестирование и, в конце концов, дело переходит к отделу IT-сопровождения.
Когда Уильям заканчивает, на доске нарисовано тридцать прямоугольников. Глядя на Вэса, я вижу, что он совсем не раздражен, а глубоко погружен в свои мысли, потирает лоб, глядя на схему на доске.
Я подаю знак Бренту и Вэсу, что один из них должен продолжить с того места, где закончил Уильям.
Брент встает и начинает рисовать квадраты, которые отражают процесс, включающий получение кода, подготовку новых серверов, установку и настройку конфигурации операционной системы, баз данных и приложений, внесение всех изменений в сети, фаерволы и распределители нагрузки, а затем тестирование, позволяющее убедиться, что выкатка прошла успешно.
Я пристально изучаю всю схему целиком: она поразительно напоминает мне производственный этаж завода. Каждый из данных шагов подобен производственному участку, со своими машинами, людьми, методами и измерениями. Работа IT-отдела, возможно, намного труднее, чем работа производства. Наша деятельность не просто невидима, из-за чего ее сложнее отследить, в нашем процессе гораздо больше вещей, которые могут пойти не так, как нужно.
Огромное количество конфигураций должно быть задано правильно, в системах должно быть достаточно памяти, все файлы нужно поместить в правильное место, и сам код, и все среды должны работать корректно.
Одна самая маленькая ошибка может погубить весь процесс. И это, конечно, значит, что мы нуждаемся в более строгой дисциплине и планировании, чем на производстве.
Я не могу дождаться, чтобы рассказать о своем открытии Эрику.
Осознавая важность и масштабность стоящей перед нами задачи, я подхожу к доске, беру красный маркер и говорю: «Я поставлю большую красную звезду рядом с каждым шагом, на котором у нас были проблемы в предыдущие запуски».
Начиная делать пометки на доске, начинаю объяснять: «Так как обновленная тестовая среда контроля качества была недоступна, мы использовали старую версию. Из-за провала всех тестов мы внесли изменения в код и в среду, что модифицировало ее по сравнению со средой разработчиков и рабочей средой, и так как мы никогда эти среды не синхронизировали, у нас с ними возникнут проблемы и в следующий раз».
Оставив несколько красных звезд на схеме Уильяма, я перехожу к квадратам Брента: «Так как у нас не было правильных инструкций по развертыванию, нам потребовалось пять раз все переделывать, чтобы запустить скрипты. В результате мы получили большие проблемы, потому что среда была изменена, о чем я уже говорил».
Я не думал, что так будет, но к концу моей речи практически все фигуры и Уильяма, и Брента в красных звездах.
Оборачиваясь, я вижу разочарованные лица своих сотрудников, осознавших случившееся. Понимая свою возможную ошибку, я торопливо добавляю: «Слушайте, у меня нет цели винить кого-то из вас или говорить, что мы дерьмово работаем. Я лишь пытаюсь разобраться с нашей проблемой. Давайте попробуем решить ее как команда, а не обвинять друг друга, ладно?»
Патти говорит: «Ты знаешь, происходящее напоминает мне увиденное у ребят на производстве – они делают так все время. Если бы кто-то из них сейчас зашел внутрь, то я уверена, они бы подумали, что мы строим «карту потока создания ценности». Не против, если я добавлю пару элементов?»
Я отдаю ей маркер и сажусь на свое место.
По некоторым из элементов Патти спрашивает, как долго обычно занимает та или иная операция, быстро записывая эти цифры над фигурами. Затем она узнает, приходится ли работе ждать перед каждым конкретным шагом, и если да, то рисует перед прямоугольником треугольник, который обозначает текущую работу.
Вот дерьмо. Для Патти сходство между нашими выкатками и заводской очередью – это не академический вопрос. Она действительно относится к нашему процессу развертывания так, будто речь идет о производстве! Патти использует инструменты и методы бережливого производства, которые работники завода применяют, чтобы задокументировать и усовершенствовать свои процессы.
Внезапно я понимаю, что Эрик имел в виду, когда говорил о «конвейере развертывания». Даже если наша работа и не выглядит как заводское производство, это все равно поток создания ценностей.
Я поправляю сам себя. Это наш поток создания ценностей, и я уверен, что мы на пороге того, чтобы понять наконец, как можно резко ускорить движение работы в данном потоке.
После того как Патти заканчивает отмечать длительность шагов, она перерисовывает схемы, используя сокращенные названия конкретных шагов. На другой доске Патти записывает ключевые моменты: «среды» и «развертывания».
Указывая на то, что только что написала, она говорит: «В текущем процессе перед нами стоят две проблемы: на каждом шаге среды почти всегда не доступны, когда они нам нужны, а когда они все же доступны, требуется проделать значительную работу, чтобы синхронизировать их между собой. Правильно?»
Вэс фыркает, говоря: «Не жди, что мы будем тебе рукоплескать за утверждение чего-то настолько очевидного, но ты права».
Она продолжает: «Другой очевидный источник незапланированной работы и долгого времени развертывания – в процессе выкатки кода, когда отдел IT-сопровождения получает то, что нам передает отдел разработки, осуществляет контроль версии кода и затем создает пакеты для развертывания. Хотя Крис и его команда стараются изо всех сил документировать код и конфигурацию, что-то всегда ускользает и обнаруживается, только когда весь код стопорится в рабочей среде уже после запуска. Верно?»
В этот раз Вэс не отвечает сразу. Брент опережает его, говоря: «Ты все верно ухватила. Уильям может подробнее рассказать об этих проблемах: инструкции по релизу никогда не соответствуют последней версии, поэтому мы всегда долго разбираемся, пытаясь докопаться до истины, переписываем скрипты для инсталляции и снова и снова все инсталлируем…»
Поделиться книгой в соц сетях:
Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!