В DramaFever также поощряется самообучающаяся организация с помощью обзора кода. Помимо проверки кода Кромхаут описала культурные проблемы, вызванные быстрым ростом и необходимостью в коррекции понимания между командами. При этом используется метод «улучшенной координации за счет прояснения ожиданий о взаимодействии сервисов. Это позволяет небольшим группам разработчиков преследовать свои собственные идеи, сохраняя при этом стандарты организации на высоком уровне».
В DramaFever поощряется прозрачность. Как говорит Кромхаут, «прямо сейчас разработчики получают полный доступ к сервисам AWS в среде разработки. Мы также активизировали IAM-доступ в режиме чтения». Благодаря подобной прозрачности сотрудники могут учиться и наблюдать непосредственно из среды разработки, которая реплицирует производство и ответы на вопросы об использовании производства в реальном мире по мере их возникновения.
Поскольку DramaFever эксклюзивно использует технологию AWS, не требуется центр обработки данных. Также отсутствуют требования к сотрудникам по поводу явного присутствия в специфической среде. Команда DramaFever, насчитывающая примерно 120 человек, в основном находится в Филадельфии и в Нью-Йорке, а некоторые сотрудники трудятся в других местах. В процессе описания среды Кромхаут сказала следующее: «Наши сотрудники находятся поблизости, в Мэриленде, или очень далеко, в Сеуле, и все они должны без помех выполнять одну и ту же работу».
Чтобы еще больше облегчить работу удаленных сотрудников, в конференц-залах DramaFever установлены компактные компьютеры Chromebox. На основе такого компьютера реализуется бизнес-система организации видеоконференций. Используется операционная система Chrome OS, камера с высоким разрешением, внешние микрофоны и колонки. По умолчанию совещания проводятся в режиме виртуального присутствия, реализованного с помощью Google Hangouts, благодаря чему не требуется физическое присутствие в офисе.
Обратите внимание на то, каким образом инструменты и методы работы взаимодействуют между собой внутри вашей организации и команд.
• Каковы ценности, исповедуемые в вашей команде или организации?
• Помогают ли инструменты реализовать эти ценности на практике или только мешают этому процессу?
• Насколько прозрачно взаимодействуют между собой ценности и процессы?
Порядок выбора инструментов в DramaFever
Из-за бюджетных ограничений, имеющих место при работе в небольшой компании и дополнительных затрат, связанных с бюрократическим характером процесса, в DramaFever осторожно относятся к процессу выбора инструмента. Обычно выбираются инструменты с открытым исходным кодом.
Кромхаут описала процесс выбора инструмента, начиная с «предполагаемой функции или результата, с последующей оценкой потенциальных инструментов на основе степени удовлетворения текущих нужд. В первую очередь учитываются потребности человека, выбирающего и внедряющего инструмент, но также учитывается набор стандартов обслуживания, которым должен удовлетворять выбранный инструмент».
Беседа, проводимая при внедрении новой технологии, посвящена рассмотрению соответствующего определения. На основе этого определения можно судить, будут ли работать существующие решения, почему новая технология может оказаться более подходящей. Также нужно рассчитать дополнительную рабочую нагрузку на имеющийся персонал.
Согласно объяснению, приведенному Кромхаут,
при выборе между своим собственным сервисом и SaaS[49] оцениваются соответствующие расходы и преимущества, включая затраты, связанные с выполнением дополнительных работ (как затраты времени персонала, так и финансовые).
Например, при рассмотрении порядка обработки логов мы подсчитали текущий объем логов, учли желательный объем и сравнили стоимость поддержки логов с помощью ELK со стоимостью передачи логов независимым провайдерам услуг. Мы перечислили действия, выполняемые по отношению к логам. После получения квот и учета количества времени, выделенного на поддержку ELK, мы сделали выбор в пользу ELK.
Персонал DramaFever стремится к устранению времени простоя даже из процедуры регулярного технического обслуживания. Степень успеха в этом деле оценивается с помощью инкрементного процесса завершения работ, связанных с устранением времени простоя.
Как отмечает Кромхаут:
Создание рабочей инфраструктуры, определенной кодом, очень важно, поскольку мы стремимся все заменять в оперативном режиме, не отключая сайт на проведение профилактических работ. Рассматриваемый код может обрабатываться с помощью файла JSON, определяющего конфигурацию сервисов AWS, или «поваренных книг» Chef, или же с помощью Python (посредством Boto и Fabric). Мы отправляем запросы на включение подобного кода, который будет просмотрен и протестирован нашими коллегами перед выполнением слияния и развертывания. Критерий успеха в данном случае – создание рабочего кода. Это позволило нам отказаться от GitHub и наладить рабочий поток в стиле Канбан.
Важно осознать, какие формы принимает «успех» для вашей организации. Убедитесь в том, что вы знаете, какой инструмент может расцениваться как успешный. В процессе выбора успешного инструмента обращайте внимание на следующие моменты:
• Кто несет ответственность за принятие решений по выбору инструмента?
• Какие критерии используются для выбора инструмента, его оценки и опыта использования?
• Что является главным при выборе инструмента с точки зрения разработчика и заказчика?
Многие люди избегают пользоваться технологиями. Особенно это относится к новым технологиям, таким как Docker, которая имела статус новой во времена развертывания производственной инфраструктуры DramaFever. Также существует категория людей, для которых Docker вообще лишен всякого смысла. Цель этого примера заключается не в том, чтобы обсудить технологию Docker, а в том, чтобы выявить причины, в силу которых инженеры выбирают эту программу, изучить соображения, которыми они руководствуются, и компромиссы, а также познакомиться со способами принятия окончательных решений в пользу выбора того или иного инструмента.
Знакомство с EtsyСтек технологий Etsy является приложением PHP, включающим большое количество внутренних сервисов. Эти сервисы являются довольно сильно взаимозависимыми и сложными. С другой стороны, переход к популярным ныне микросервисам может и не привести к росту независимости. Сервисы применяются для выполнения таких операций, как покупки, продажи, поиск и вывод перечня элементов, а также обработка платежей при выполнении покупок. Несмотря на наличие нескольких крупных хорошо известных провайдеров платежей, услугами которых пользуются многие известные компании в мире, Etsy нуждается в большем контроле над процессом обработки платежей, поэтому реализует этот процесс самостоятельно. Подобные процессы должны быть совместимы с PCI, также должны учитываться другие соображения, связанные с организацией обработки платежей. Инфраструктура преимущественно носит локальный характер и основана на различных центрах обработки данных.
Явная и неявная культура
При создании желаемой специфической культуры в среде основное внимание уделяется явному определению набора культурных убеждений и ценностей. Изначально компания Etsy была основана на сообществе пользователей. Открыто сформулированные ценности компании Etsy приведены в следующем перечне.
• Мы представляем думающий, прозрачный и гуманный бизнес.
• Мы планируем и строим исходя из долгосрочной перспективы.
• Мы ценим профессионализм во всем, что мы делаем.
• Мы считаем, что все нужно делать с улыбкой.
• Мы никогда не отрываемся от реальности[50].
Эти ценности вдохновляют и объединяют сотрудников согласно данным отчета Etsy Progress Report[51] за 2013 год. Хотя в Etsy отсутствует devops-команда, devops-менеджер и devops-инженеры, явно и четко объявленные ценности отражены в ключевых практиках и руководствах по наблюдению за поведением и созданию вклада в devops-сообщество. Заранее обдуманные практики Etsy включают проявление сострадания, экспериментирование, повторное выполнение действий и поощрение обучающих организаций.
Культура сострадания
Чтобы быть по-настоящему гуманным, следует проявлять сострадание. Это чувство проявляется в стремлении сделать