Представьте себе такой сценарий. Небольшая веб-компания начала сталкиваться со следующими проблемами. Веб-сайт этой компании «тормозит» и периодически «ложится» в случае непредвиденного роста числа пользователей. Сотрудники все чаще выражают недовольство по причине увеличения трудозатрат, требуемых для предоставления услуг, а также в силу необходимости разработки и выкатки нового функционала. Между глобально распределенными командами разработчиков появляются барьеры, вызванные использованием разных языков и часовых поясов. Растет количество взаимных обвинений, вызванных стрессом из-за роста «падений» сайта. Это приводит к росту подозрительности и снижению степени прозрачности при взаимодействии между группами сотрудников.

Столкнувшись с подобными проблемами, менеджмент организации принимает решение о devops-трансформации. Для реализации этого решения нанимается несколько сотрудников, формирующих новую devops-группу. Члены этой группы исполняют обязанности по вызову, то есть к ним обращаются члены эксплуатационной группы в случае возникновения неразрешимых проблем. Члены devops-группы являются экспертами в своей предметной области и лучше подготовлены к решению проблем. Но если у членов эксплуатационной группы нет ни времени, ни возможностей для получения новых навыков, одни и те же проблемы будут возникать снова и снова.

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

В результате менеджмент заявляет о провале идеи с формированием devops-группы и перестает выделять время, деньги и усилия в развитие devops-группы и эксплуатационной группы. К членам этих групп начинают относиться как к некомпетентным бездельникам, которые способствуют «падениям сайта» и только «мешают» разработчикам, выполняющим «реальную» работу. Вполне естественно, что члены этих групп, не выдержав груза обвинений в некомпетентности, начинают увольняться из организации, еще более затрудняя исполнение обязанностей оставшимися сотрудниками.

Первое знакомство с devops

В чем причина появления проблем в описанной ситуации? Вроде бы внедрение «devops» являлось хорошей идеей, но создание devops-группы привело к негативным последствиям. Что нужно изменить, чтобы добиться значительного улучшения ситуации и реального устранения проблем? На протяжении всей книги вы увидите, как можно выполнить эффективные преобразования на основании devops-мышления.

Не рассматривайте эту книгу в качестве сборника бесспорных рекомендаций по внедрению devops-подхода. Мы не предлагаем вам devops «из коробки», devops в качестве услуги и не говорим вам, что вы некорректно внедряете devops-решения. В этой книге вы найдете коллекцию идей и подходов по улучшению сотрудничества между отдельными сотрудниками, по достижению однородности на уровне отдельной группы и организации в целом и по использованию инструментов на уровне компании или организации. Вы также увидите, каким образом эти концепции способствуют изменению и адаптации организаций в случае возникновения необходимости в этом. Поскольку каждая организация является уникальной, не существует единого универсального подхода по внедрению devops. Существующие общие подходы должны применяться в каждой организации различным образом. В результате улучшается качество создаваемого в этой организации программного обеспечения, а также улучшается эффективность работы и повышается благосостояние сотрудников.

Результативность является следствием того, что «делаются нужные, правильные вещи». А эффективность является следствием того, что «правильно создаются эти самые вещи».
– Питер Ф. Друкер

Эффективность определяется как способность делать правильные вещи и достигать желаемых результатов. Чтобы делать правильные вещи, нужно осознать поставленные задачи и выявить связь между конкретными краткосрочными целями и поставленными задачами.

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

В то время как наша цель при написании книги заключалась в том, чтобы поделиться универсальными историями, советами и практиками с менеджментом организаций, который сможет адаптировать и использовать их в качестве своих рабочих методологий, каждой из нас присущи свои уникальные знания и опыт. Разнообразные идеи, использованные при написании книги, были порождены коллективным опытом. Этот опыт получен на основе анализа работы частного и общественного сектора, маленьких стартапов и огромных корпоративных сред, а также отделов, распределенных по должностям, от разработки ПО до его поддержки, контроля качества, консалтинга и многого другого.

КАК ПРАВИЛЬНО ПИСАТЬ СЛОВО «DEVOPS»?

У нас были жаркие споры по поводу использования заглавных букв при написании термина «devops». В результате проведения простого интерактивного опроса выяснилось, что подавляющее большинство пользователей выбрали написание «DevOps». Пользователи также поддерживают написание терминов «Dev» и «Ops», используемое для обозначения групп в составе организации. На основе этих терминов создаются производные термины, такие как «DevSecOps» и «DevQAOps», тогда как термин «DevOps» подразумевает исключительное использование терминов «Dev» и «Ops».

В итоге мы выбрали написание «devops», поскольку оно соответствует оригинальному хэштегу в Твиттере, используемому для объединения людей, которые хотят изменить слоган «мы против них» на «делаем бизнес» с применением устойчивых рабочих практик, ориентированных на людей.

Успешные проекты требуют вклада, усилий, понимания и сотрудничества со стороны сотрудников организации. Проблемы, возникающие в организации, могут быть присущи не только разработчикам или группам поддержки. Мы сознательно решили использовать запись термина с помощью символов в нижнем регистре «devops» по всей книге. Это отражает нашу точку зрения, которая заключается в том, что devops является инклюзивным движением, а не эксклюзивной единицей.

Для кого предназначена книга

Эта книга в первую очередь предназначена для менеджеров и рядовых сотрудников, которые исполняют роли лидеров и сталкиваются с проблемами в своих организациях. Благодаря этой книге они смогут предпринять конкретные реальные действия, направленные на реализацию или улучшение devops-культуры в рабочей среде. Рядовые сотрудники, занимающие различные должности, найдут здесь практические предложения, позволяющие ослабить болевые точки благодаря выполнению действенных рекомендаций.

Читатели этой книги исполняют разные профессиональные роли, поскольку devops является профессиональным и культурным движением, ориентированным на поддержку повторяющихся усилий, направленных на открытие доступа к организационной информации, отслеживание отношений и устранение недопонимания, возникающего между группами в организации.

В книге рассматривается широкий набор навыков и теоретических положений devops, включая основы фундаментальных идей и концепций. Предполагается, что вы уже знакомы с термином «devops» и, возможно, даже имеете базовые познания об инструментах и процессах, используемых в этой области.

Мы рекомендуем вам отказаться от жестко заданных и быстро сформулированных определений и настроиться на восприятие принципов devops, которые, по нашему мнению, являются наиболее эффективными.

После прочтения книги у вас сформируется четкое представление о том, что означает на практике devops-культура для вашей организации. Вы узнаете о том, как стимулировать эффективное сотрудничество таким образом, чтобы отдельные сотрудники, относящиеся к разным слоям и группам, имеющие разные цели и владеющие различными рабочими стилями, могли продуктивно работать вместе. Вы получите сведения о том, как наладить совместную работу групп таким образом, чтобы максимизировать производимую стоимость при одновременном повышении степени удовлетворенности сотрудников. Вы научитесь балансировать между конфликтующими организационными целями и выбирать инструменты и организационные потоки, наращивающие потенциал вашей организации.

Структура книги

Мы приложили немало усилий для упорядочения и организации глав книги. Подобно тому как не существует единственно верного способа внедрения devops, отсутствует и единственно правильный способ упорядочения действий, требуемых для внедрения devops. Каждый читатель книги будет использовать уникальную последовательность этапов внедрения devops, решать собственные проблемы и устранять возникающие при этом конфликты.

Эта книга состоит из нескольких частей. В части I рассматривается общая картина, которая детализируется до уровня идей, определений и принципов, имеющих отношение к devops. В частях II–V рассматриваются четыре фундаментальные концепции, лежащие в основе эффективного внедрения devops. В части VI завершается дискуссия, посвященная построению связей между отдельными людьми, группами и организациями.

• Часть I. «Основы devops».

• Часть II. «Сотрудничество».

• Часть III. «Близость».

• Часть IV. «Инструменты».

• Часть V. «Масштабирование».

• Часть VI. «Объединение культур devops».

Части II–V завершаются главой, в которой обсуждаются различные заблуждения, относящиеся к той или иной концепции, лежащей в основе внедрения devops. В этой главе также рассматриваются некоторые универсальные сценарии по устранению неполадок, относящиеся к данной теме. Читатели, занимающиеся внедрением devops в своих организациях, в главе «Заблуждения и устранение проблем» найдут также ряд практических советов, которые будут полезными в работе.

Читатели, предпочитающие общество компьютера, а не живого человека, могут испытать соблазн пропустить материал, описывающий межличностное взаимодействие и культуру общения. Это нецелесообразно, поскольку данный материал дает представление о принципах совместной работы, включая межкультурное и технологическое взаимодействие, благодаря которому увеличивается степень эффективности devops.

Читайте главы книги в наиболее удобном для себя порядке, действуйте в стиле «выбор своего собственного приключения». Концепции, заложенные в основу devops, переплетаются и тесно связаны между собой, поэтому при чтении книги вы будете неоднократно возвращаться к ранее прочитанному материалу, чтобы освежить в памяти ту или иную концепцию.

Методология практик

На протяжении всей книги вы будете знакомиться с рассказами сотрудников разных компаний. Эта информация была получена в процессе проведения интервью с людьми, находящимися на разных уровнях организаций, на основании сообщений, опубликованных в блогах, из презентаций и заявок на регистрацию компаний. В то время как тема для каждой главы информирует о направлении практик, природа devops приводит к тому, что каждое тематическое исследование затрагивает несколько, если не все четыре концепции, лежащие в основе devops.

Также вниманию читателей представляется комбинация более формальных практик, неформальных историй и нашего личного опыта. Все это делается в целях демонстрации разнообразия способов, посредством которых devops может оказать влияние на принятие решений и нарративы.

Прочитайте истории, представленные в следующих главах. Распознайте истории, имеющие отношение к вашей организации. Ответьте на вопрос о том, что влияет на ваши группы и информирует их. Поделитесь вашими историями на корпоративных или общих встречах. Прислушивайтесь к историям о внедрении devops от других людей.

Соглашения, используемые в книге

В книге приняты следующие типографские соглашения:

Курсив

Используется для обозначения новых терминов, адресов URL, адресов электронной почты, имен файлов и расширений.

Моноширинный шрифт

Применяется для оформления листингов программ и программных элементов внутри обычного текста, таких как имена переменных или функций, базы данных, типы данных, переменные среды, инструкции и ключевые слова.

Моноширинный полужирный шрифт

Обозначает команды или другой текст, который должен вводиться пользователем.

Моноширинный наклонный шрифт

Обозначает текст, который должен замещаться фактическими значениями, вводимыми пользователем или определяемыми из контекста.

Использование примеров кода

У книги есть сайт, где можно найти список опечаток, дополнительные истории и другой сопутствующий материал. Все это доступно по следующему адресу: http://effectivedevops.net.

Эта книга призвана помочь вам в решении задач. По большей части вы можете использовать код из книги в своих программах и документации. Вам не нужно связываться с нами по поводу получения разрешения на это, если только вы не начнете копировать достаточно существенные фрагменты кода. Например, написание программы, в которой используется несколько фрагментов кода из этой книги, не требует разрешения. А вот продажа или распространение компакт-дисков с примерами из книг издательства O’Reilly требует разрешения. Ответы на вопросы с использованием цитат из этой книги и приведением примеров не требуют получения разрешения. А вставка существенных объемов кода примеров из этой книги в документацию потребует разрешения.

Мы приветствуем, но не требуем добавлять ссылку на первоисточник при цитировании. Под ссылкой на первоисточник мы подразумеваем указание названия, автора, издательства и ISBN. Например: «Философия DevOps. Искусство управления ИТ», Дженнифер Дэвис и Кэтрин Дэниелс (O’Reilly), 978–1-491–92630-7».

За получением разрешения на использование значительных объемов программного кода примеров из этой книги обращайтесь по адресу [email protected].

Safari® Books Online

Safari Books Online – это виртуальная библиотека, содержащая авторитетную информацию в виде книг и видеоматериалов, созданных ведущими специалистами в области технологий и бизнеса.

Профессионалы в области технологий, разработчики программного обеспечения, веб-дизайнеры, а также бизнесмены и творческие работники используют Safari Books Online как основной источник информации для проведения исследований, решения проблем, обучения и подготовки к сертификационным испытаниям.

Библиотека Safari Books Online предлагает широкий выбор продуктов и тарифов для организаций, правительственных и учебных учреждений, а также физических лиц.

Подписчики имеют доступ к поисковой базе данных, содержащей информацию о тысячах книг, видеоматериалов и рукописей от таких издателей, как O’Reilly Media, Prentice Hall Professional, Addison-Wesly Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology, и сотен других. За подробной информацией о Safari Books Online обращайтесь по адресу: http://www.safaribooksonline.com/.

Благодарности

Написание книги Философия DevOps. Искусство управления ИТ было бы невозможным без помощи и содействия со стороны многих друзей, коллег и членов семьи. Мы хотели бы выразить благодарность всей команде издательства О’Reilly, особенно Кортни Нэшу (Courtney Nash), который всячески стимулировал нас на написание книги. Мы благодарны нашему редактору, Брайану Андерсону (Brian Anderson), оказавшему нам безусловную поддержку. Мы также благодарны сотрудникам издательства, которые помогли выбрать тотемных животных для книги и которые благословили нас на использование изображения волосатого яка в качестве символа книги. Мы также благодарны всем тем, кто помог нам написать эту книгу. Мы также признательны Джону Оллспоу (John Allspaw), Ларе Хоган (Lara Hogan) и Джону Кови (Jon Cowie) из Etsy; Николь Форсгрен (Nicole Forsgren) и Ивонн Лам (Yvonne Lam) из Chef; Бриджит Кромхаут (Bridget Kromhout) из Pivotal; Тому Лимончелли (Tom Limoncelli) из Stack Exchange за помощь, поддержку и вдохновение.

Спасибо участникам наших тематических исследований: Алексу Ноберту (Alex Nobert), Бриджит Кромхаут (Bridget Kromhout), Тиму Гроссу (Tim Gross,) Тине Донбек (Tina Donbeck) и Федре Маршалл (Phaedra Marshall).

Спасибо всем, кто поделился своими историями, в том числе Давиде Марион (Davida Marion), Линде Лаубенхаймер (Linda Laubenheimer), Холли Кей (Hollie Kay), Николь Джонсон (Nicole Johnson) и Элис Голдфасс (Alice Goldfuss).

Спасибо нашим техническим рецензентам, которые помогли довести текст книги до совершенства: Элис Голдфасс (Alice Goldfuss), Дастину Коллинзу (Dustin Collins), Эрнсту Мюллеру (Ernest Mueller), Мэтью Скэлтону (Matthew Skelton), Оливье Жаку (Olivier Jacques), Бриджит Кромхаут (Bridget Kromhout), Ивонн Лам (Yvonne Lam) и Питеру Нилону (Peter Nealon).

Спасибо Энди Парофф за Эда, нашего великолепного яка, изображение которого красуется на сайте и на обложке.

Благодарности от Кэтрин

Спасибо руководству Etsy за предоставленную мне возможность работать над книгой, выступать на множестве конференций и за великолепное место для работы. Дополнительные благодарности хочу выразить команде веб-поддержки за помощь и проявленное во время осуществления проекта терпение. Благодаря работе с вами я никогда не забывала о том, за что я люблю эту работу. Я хочу выразить особую благодарность Майку Римбетси (Mike Rembetsy), который ни разу мне не сказал «нет» в ответ на мои вопросы, Джону Оллспоу (John Allspaw) за вдохновение и веру в мои силы, а также Лори Диннесс (Laurie Denness) и Джону Кови (Jon Cowie) за предоставленную поддержку и информацию, которые помогли мне повысить квалификацию как инженеру службы поддержки.

Спасибо Лоре Хоган (Lara Hogan), Бриджит Кромхаут (Bridget Kromhout), Хэйт Хьюстон (Cate Huston) и Меллисе Сантос (Melissa Santos) за то, что они отличные друзья, великолепные ролевые модели и просто веселые девушки. Благодаря знакомству и беседам с вами я черпала силы даже в безнадежных ситуациях. Ваша поддержка просто бесценна.

Спасибо Джеймсу Тернбуллу (James Turnbull) за общение в Твиттере все эти годы, благодаря которому я попала в сообщество профессионалов в области технической поддержки. Я ценю знакомство с вами, вашу поддержку, мудрость и вдохновение на писательский труд.

Спасибо Джейсону Диксону (Jason Dixon) за высланное мне первое приглашение на конференцию. Он был убежден, что мне есть что сказать на конференции, хотя я тогда совсем не была уверена в этом.

Спасибо сообществу профессионалов в области техподдержки и devops-сообществу в целом, и особенно сообществу профессионалов в области техподдержки из Нью-Йорка за предоставленную помощь, новые возможности и друзей, вместе с которыми можно наслаждаться великолепным пивом Sysdrink.

Спасибо Дженнифер Дэвис, моему лучшему другу, напарнику на конференциях и соавтору. Мозговой штурм, написание книги, общение, обучение и редактирование вместе с тобой стало удивительным приключением для меня. Я очень рада, что довелось поработать с тобой.

И наконец, спасибо моей маме за поддержку, поощрение и веру в мои силы. Написание этой книги было бы невозможным без преданной любви и поддержки моих кошек, которые мурлыкали и грели меня в процессе написания книги.

Благодарности от Дженнифер

Спасибо Chef за предоставленные возможности многому научиться у различных организаций, а также за поддержку совместного обучения в форме бесед и тренингов.

Спасибо всем женщинам, работающим в данной области, которые изменяют способы работы путем внедрения новых подходов, а также приемлемых форм и норм поведения. Ваш голос непременно будет услышан. Продолжайте обмениваться опытом и обращаться за необходимой поддержкой.

Спасибо devops-сообществу в целом, которое вновь пробудило во мне желание стать его частью. Члены этого сообщества разработали систему поддержки и поощряют устойчивые практики на рабочих местах. Спасибо всем людям, которые поделились своими личными историями и опытом.

Спасибо Ивонн Лам (Yvonne Lam), Бриджит Кромхаут (Bridget Kromhout), Доминике Де Грандис (Dominica DeGrandis), Мэри Грейс Ченгволл (Mary Grace Thengvall), Эми Скаварда (Amye Scavarda), Николь Форсгрен (Nicole Forsgren) и Шери Элджин (Sheri Elgin) за проявление поистине бесценных дружеских чувств. Ваше мнение и поддержка помогли мне многое понять и выработать свою собственную точку зрения на разные вещи. Благодаря вашей помощи я стала активнее и сильнее.

Спасибо Кэтрин Дэниелс (Katherine Daniels), моей подруге и соавтору, за вдумчивые и вдохновляющие часы, проведенные в размышлениях. Она постоянно вдохновляла меня на писательский труд и редактирование ранее написанного текста. Мы прошли вместе все этапы этого проекта, иллюстрируя на практике мысли по поводу devops. Для меня было большой честью работать с тобой над книгой, посвященной devops.

Спасибо моей бабушке, учителю начальной школы Frances Wadsworth Hayes, которая вдохновляла меня делиться своими историями и учиться на протяжении всей жизни. Эта книга никогда бы не появилась на свет, если бы не любовь и поддержка моей семьи, Брайана Бреннана и Джорджа.

От издательства

Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

Подробную информацию о наших книгах вы найдете на веб-сайте издательства: http://www.piter.com.