Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях
1
Акроним от англ. development и operations – методология разработки программного обеспечения, нацеленная на активное взаимодействие и интеграцию специалистов по разработке и специалистов по IT-обслуживанию. Прим. перев.
2
Ким Д., Бер К., Слаффорд Дж. Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему. М.: Эксмо, 2015. Прим. перев.
3
Техника «Blue-Green разворачивания» – стратегия установки ПО, базирующаяся на двух идентичных инсталляциях промышленной системы, одна из которых активна, и возможно мгновенное переключение между ними. Одна из них условно называется синей, ее копия же называется зеленой. Прим. перев.
4
Хамбл Д., Фарли Д. Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ… М.: Вильямс, 2011. Прим. перев.
5
Институт инженеров электротехники и электроники (от англ. Institute of Electrical and Electronics Engineers) – международная некоммерческая ассоциация специалистов в области техники, мировой лидер в области разработки стандартов по радиоэлектронике, электротехнике и аппаратному обеспечению вычислительных систем и сетей. Прим. перев.
6
Continuous Integration / Continuous Deployment – непрерывная интеграция и непрерывное развертывание. Прим. ред.
7
Это всего лишь небольшой пример проблем, встречающихся в типичной IT-организации. Прим. авт.
8
Коммодитизация – превращение изделий в обезличенный товар. Прим. перев.
9
Термин из области разработки ПО: как только появляются изменения в программном коде, зачастую возникает необходимость сделать связанные с ними изменения в других частях кода или документации. Эти необходимые, но незавершенные изменения считаются долгом. Он должен быть погашен в определенный момент в будущем. Прим. перев.
10
В мире промышленного производства существует похожий корневой, хронический конфликт. Его суть в необходимости обеспечивать своевременные поставки клиентам и управление затратами. Как этот конфликт был преодолен, рассказывается в приложении 2. Прим. авт.
11
В 2013 году в европейском банке HSBC трудилось больше разработчиков ПО, чем в компании Google. Прим. авт.
12
Пока не будем устраивать дискуссий, как должна финансироваться разработка ПО, как «проект» или как «продукт». Это мы обсудим ниже. Прим. авт.
13
Например, Вернон Ричардсон с коллегами опубликовал следующие поразительные результаты. Они изучили отчеты 184 публичных корпораций по форме 10-K и разделили их на три группы: а) фирмы с нехваткой материальных ресурсов и с нечеткой работой IT-подразделений; б) фирмы с нехваткой материальных ресурсов и с четкой работой IT-подразделений; в) «чистые фирмы» без нехватки материальных ресурсов. В фирмах из группы А текучка кадров среди руководителей высшего звена была в восемь раз выше, чем в фирмах из группы В, а в фирмах из группы Б – только в четыре раза. Ясно, что работа IT-структур оказывается гораздо более важной, чем принято считать. Прим. авт.
14
По данным индекса чистой лояльности сотрудников (employee Net Promoter Score – eNPS). Это очень значимое открытие, поскольку исследование доказало, что «компании, где работники имеют высокую удовлетворенность, показали в 2,5 раза более высокий рост доходов, чем компании с низкой удовлетворенностью работников. И [торгующиеся на бирже акции] компании с высоким уровнем удовлетворенности показали за период с 1997 по 2011 г. рост цены, втрое превышающий рост биржевых индексов». Прим. авт.
15
М.: Символ-Плюс, 2010. Прим. перев.
16
Показаны данные только по тем организациям, которые выполняют хотя бы одно развертывание в день. Прим. авт.
17
Другой выдающийся пример – компания Amazon. В 2011 г. она выполняла около 7000 развертываний в день. В 2015 г. – уже 130 000. Прим. авт.
18
Издана: М.: Альпина Диджитал, 2014. Прим. перев.
19
DevOps также расширяет и усовершенствует принцип инфраструктура как код, впервые предложенный Марком Берджессом, Люком Канисом и Адамом Джекобом. При использовании этого принципа работа эксплуатации автоматизирована и трактуется как разработка кода приложений, так что все современные методики разработки могут быть применены ко всему потоку разработки и управления. Это увеличивает возможности ускорения потока разработки, включая непрерывную интеграцию (придумана Греди Бучем как один из 12 ключевых методов «экстремального программирования»), непрерывную поставку (впервые введена Джезом Хамблом и Дэвидом Фарли) и непрерывное развертывание (созданное компаниями Etsy и Wealthfront, а также Эриком Рисом из IMVU). Прим. авт.
20
Издана: СПб.: Питер, 2014. Прим. перев.
21
Ката – формализованная последовательность движений, связанных принципами ведения поединка с воображаемым противником или группой противников. По сути, является квинтэссенцией техники конкретного стиля боевых искусств. Прим. ред.
22
Здесь и далее слово «инженер» означает любого человека, работающего в команде, производящей поток ценности, а не только разработчиков. Прим. авт.
23
По правде говоря, при использовании таких методик, как разработка через тестирование, тестирование может начинаться еще до того, как будет написана первая строка кода. Прим. авт.
24
В этой книге термин «время производства» будет использоваться по той же причине, о которой говорили Карен Мартин и Майк Остерлинг: «чтобы минимизировать возможную путаницу, мы избегаем использовать термин “время цикла”, поскольку он имеет несколько значений, в том числе синонимичное для времени производства и темпа или частоты выдачи результатов, и это только некоторые». Прим. авт.