Философия DevOps. Искусство управления IT - Дэвис Дженнифер

Философия DevOps. Искусство управления IT
Кэтрин Дэниелс

Дженнифер Дэвис


Бестселлеры O’Reilly (Питер)
IT-принцип «agile» стал мантрой цифровой эпохи. С ростом проектов, переходом от монолитных приложений к системе микросервисов, увеличением и накоплением продуктов возникают вопросы, которые требуют совершенно иного подхода. Теперь наибольший интерес вызывает находящаяся на стыке разработки и операционного управления методология DevOps.

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

Книга «Философия DevOps» познакомит вас с техническими, культурными и управленческими аспектами devops-культуры и позволит организовать работу так, чтобы вы получали удовольствие от разработки, поддержки и использования программного обеспечения.





Дженнифер Дэвис, Кэтрин Дэниелс

Философия DevOps. Искусство управления IT



Jennifer Davis

Katherine Daniels

Effective DevOps. Building a Culture of Collaboration, Affinity, and Tooling at Scale



© 2016 Jennifer Davis, Katherine Daniels

© Перевод на русский язык ООО Издательство «Питер», 2017

© Издание на русском языке, оформление ООО Издательство «Питер», 2017

© Серия «Бестселлеры O’Reilly», 2017


* * *




Вступительное слово







Иван Евтухович



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






Александр Титов



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






Никита Борзых



Особый акцент в книге сделан на корпоративную культуру доверия, сосредоточенную на коммуникации, сотрудничестве и интеграции между ИТ-подразделениями. Подход DevOps давно снискал большую популярность на Западе среди таких гигантов, как Amazon и Facebook, а теперь он все шире проникает в нашу страну. В книге приведены типичные антипаттерны внедрения DevOps, а также множество историй из жизни реальных компаний, которые внедряли у себя этот подход.

Наша компания с первых дней своего существования является проводником методологии DevOps. И конечно, мы очень рады, что книга «Философия DevOps» теперь доступна и на русском языке.

Ищите новые подходы, становитесь более гибкими, быстрыми и эффективными! Делитесь своими открытиями, используйте мировой опыт и участвуйте в развитии профессионального DevOps-сообщества России – DevOpsRU.com.



Иван Евтухович

Александр Титов

Никита Борзых

Управляющие партнеры «Express 42»

http://express42.com/

+7 495 088 42 84




Вступительное слово Джона Оллспоу


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

Новый подход к разработке программного обеспечения является более универсальным, целостным и лучше отражает действительность, с которой ежедневно сталкиваются команды разработчиков ПО. Давно ушли в прошлое те времена, когда для описания разработки и поддержки программ применялись производственные метафоры. Когда-то считалось, что программы, как и любые другие товары, проектировались, планировались и, наконец, запускались в производство. Теперь же слово «наконец» к описанию процесса разработки ПО не применяется. Этот процесс представляет собой бесконечный цикл адаптации, изменения и обучения.

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

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

В 2009 году на конференции Velocity 09, проводимой издательством О'Reilly, я и мой друг Пол Хэммонд представили презентацию «10+ Deploys a Day: Dev and Ops Cooperation at Flickr». Несмотря на то что часть материала презентации была посвящена вопросам непрерывного развертывания, многие зрители обращали больше внимания на часть «10+ развертывание», а не на часть «Сотрудничество». Я считаю, что было бы ошибкой полагать, что технологии или «железо» нужно рассматривать отдельно от социального или культурного «софта». Эти компоненты неразрывно связаны и в одинаковой степени важны для достижения успеха. Другими словами, люди, процессы и программное обеспечение связаны между собой гораздо сильнее, чем принято думать.

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

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

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



Джон Оллспоу, технический директор, Etsy, Бруклин, Нью-Йорк




Вступительное слово Николь Форсгрен


В 2003 году Николас Карр в своей работе «IT Doesn’t Matter» заявил о том, что информационные технологии не являются стратегически важными для бизнеса. И поскольку эта статья была опубликована в журнале Harvard Business Review, она получила признание в корпоративной среде. Но с тех пор много воды утекло. Начиная с 2009 года наиболее инновационные команды и компании продемонстрировали, что технологии могут играть ключевую роль в создании реальной стоимости и обеспечении конкурентного преимущества. Эта технологическая революция получила название DevOps. После прочтения книги вы узнаете о том, как влиться в ряды инновационных компаний и начать создавать стоимость с помощью технологий.

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

Советы и рекомендации, изложенные в книге, коррелируют с моим опытом работы, полученным за последние десять лет. Как известный специалист в этой области и как ведущий исследователь State of DevOps Reports, я знаю, что ключевым компонентом любой трансформации в направлении DevOps является сильная организационная культура. Она служит фактором, задающим переход от традиционной ИТ-структуры к DevOps, а также ставит во главу угла информационный поток. На основе данных, предоставленных более чем 20 тысячами профессионалов в области DevOps, можно прийти к выводу о том, что сильная организационная культура способствует продвижению ИТ-организации и росту ее производительности в целом. Лучшим ИТ-организациям присуща удвоенная производительность, большая рентабельность и доля рынка по сравнению с конкурентами. И вовсе не случайно книга начинается дискуссией, посвященной аспектам культуры, общения и доверия. Значительная часть книги посвящена обоснованию важности вклада этих факторов в процесс трансформации в сторону DevOps. Нам, как технарям, нравится начинать с использования инструментов и, возможно, даже процессов. Но время от времени практика показывает, что культура, наравне с упомянутыми ранее ИТ и производительностью организации, имеет большое значение для успешного применения инструментов и технологий. Обязательно прочитайте части II–III, посвященные сотрудничеству и близости соответственно, независимо от того, начинаете ли вы трансформацию DevOps и хотите знать, что нужно реализовывать и что требуется отслеживать, или же вы поднимаете существующую практику DevOps на новый уровень и ищете способы оптимизации и устранения проблем.

Работая консультантом в наиболее инновационных компаниях, я пришла к выводу о том, что наиболее трудная часть реализации и составления предварительного плана технологической трансформации DevOps заключается в невозможности дать однозначный ответ, который подходил бы для всех ситуаций. Все зависит от того, что именно считается корректным для вашей команды и вашей организации. Поэтому мне нравится, что именно эта мысль постоянно подчеркивается в книге. Не существует единственного простого решения всех проблем. Чтобы внедрить собственное решение DevOps и добиться успеха, нужно использовать подходящие инструменты и компоненты. Помимо частей II–III обязательно обратитесь к части IV, в которой описаны инструменты, необходимые для выполнения произвольной трансформации DevOps. Особенно мне нравится, что при описании инструментов идет речь не только о технологических аспектах, но и о ключевых компонентах культуры, в рамках которой эти инструменты используются.

Одна из наиболее приятных особенностей книги заключается в ее доступности для разной аудитории. Часть V, посвященная масштабируемости, особенно полезна для рядовых участников и руководителей команд. Я использую материал, изложенный в этой части, в качестве справочника для себя и своих клиентов. Главы 4 и 11, включающие описание терминологии и обзор экосистемы, соответственно будут полезными как для технарей (в качестве терминологической базы), так и для руководителей, нуждающихся в актуальном справочном пособии. Эта книга является позитивным и полезным введением в DevOps, включающим сведения, которые отсутствуют в университетских учебниках. Я была бы просто счастлива, если бы в свое время могла использовать подобное пособие в своей преподавательской деятельности.

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



Николь Форсгрен, доктор философии, директор компании Chef Software, Сиэтл, Вашингтон




Предисловие


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

Столкнувшись с подобными проблемами, менеджмент организации принимает решение о 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» по всей книге.



Читать бесплатно другие книги:

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

Пользовательские истории – это метод описания требований к разрабатываемому продукту. В книге рассказано, как правиль...

Эта история о том, как ничего не подозревающая Анна, долгое время жила рядом с волшебством. В свои восемнадцать лет о...

Книга является Духовным Учением из духовного источника «тонкого» плана. Оба автора являются лишь его проводниками. Уч...

Сменяются патриархи, полубезумная императрица Катрин пытается переманить к себе искусного полководца Пайпера Хекта и ...

Какой нормальный человек примет предложение о работе на Совет богов от чертей? Пра-а-а-вильно, нормальный не примет. ...