После выделения DevOps внутри компании «Неофлекс» в отдельное бизнес-направление команда стала активно наращивать экспертизу и делиться найденными источниками знаний друг с другом. В этом посте я поделюсь с вами личным опытом погружения в тему и наиболее интересными ресурсами.
Основными источниками информации по теме стали следующие:
- Интернет-ресурсы – как независимые, так и компаний разработчиков
- Статьи и презентации
- Литература
- Конференции
- Программы обучения – как платные, так и бесплатные
Интернет-ресурсы
Ресурсов на тему DevOps в интернете великое множество. Их можно разделить на несколько разделов.
Независимые интернет-ресурсы
Независимые интернет-ресурсы публикуют общие новости о тенденциях в развитии информационных технологий, относящихся к DevOps, и оперируют высокоуровневой информацией по данной тематике, позволяя всегда быть в курсе последних трендов и событий IT. Для системных архитекторов и менеджмента наиболее интересными могут стать:
devops.com — один из крупнейших ресурсов про DevOps. На нем можно найти свежие новости из мира IT, статьи на самые разные темы (облака, непрерывная интеграция и доставка, контейнерные технологии, Big Data, обеспечение безопасности и многое другое), ежедневные вебинары, обширную подборку тематической литературы, тематические чаты с высококлассными специалистами, структурированные списки компаний и продуктов для решения DevOps-задач и ещё много чего интересного.
sdtimes.com — крупный новостной ресурс про разработку программного обеспечения в целом, в котором широко освещена тема DevOps и относящихся к ней области (облака и прочие). Помимо новостей и статей, которые можно найти на сайте или получать в виде регулярной рассылки, достаточно часто устраивают вебинары про DevOps и микросервисы, которые проводят спикеры из ведущих компаний отрасли.
dzone.com — также новостной сайт о разработке, представляющий собой агрегатор пользовательского контента. На сайте зарегистрировано более миллиона разработчиков, регулярно выкладывающих новости на самые актуальные темы в разработке ПО: процессы, технологии и подходы к реализации. Уровень и интересы авторов очень разноплановые.Тут можно найти концептуальные материалы и практические руководства по использованию конкретных инструментов. За счёт этого данный сайт может быть интересен не только высокоуровневым представителям IT, но и техническим специалистам.
www.networkworld.com — на этом новостном сайте акцент сделан в большей степени на современные сетевые технологии, а также на создании и эксплуатации информационных систем и центров обработки данных. Но и основные новости мира DevOps и информационных технологий в целом тут тоже представлены. Наиболее интересен будет людям, активно работающим с проектированием инфраструктурных решений.
www.sys-con.com — довольно архаичный новостной сайт, на котором, не смотря на сомнительные дизайнерские решения, актуальные новости появляются быстрее всех. Если требуется быть в курсе всего (даже не очень значительного), что происходит в мире DevOps, то этот сайт подойдёт идеально.
Интернет-ресурсы компаний разработчиков
Интернет-ресурсы компаний разработчиков, которые создают технологии для внедрения процессов DevOps, представляют большой интерес при погружении в данную тему. На их сайтах, помимо подробной документации по их продуктам, можно найти много всего интересного — блоги, вебинары и многое другое. Эти материалы, как правило, ближе к практике, и в большей степени будут интересны техническим специалистам. Но там же можно встретить и концептуальные вещи, интересные более широкому кругу людей. Приведу те сайты, на которых мне чаще всего попадался интересный контент:
Red Hat — к этой компании и их политике я питаю особую симпатию (хотя их поглощение IBM вызывает большие опасения насчёт будущего). Но если отбросить субъективизм, то и в сухом остатке их интернет ресурс может предложить много интересного.Для зарегистрированных пользователей (особенно с ролью «Разработчик») доступна обширная база знаний по их продуктам и технологиям. А это микросервисы, контейнерные технологии, управление конфигурацией, Service Mesh, виртуализация и многое другое. Помимо базы знаний, есть блог (причём на тему DevOps там реально много интересно информации и не только по продуктам Red Hat), регулярные вебинары по развиваемым продуктам и их новым возможностям (так совпало, что во время написания этих строк мне пришло приглашение на вебинар «Implementing Red Hat OpenShift on Amazon Web Services webinar with live Q&A», который состоится 5 декабря) и обширное комьюнити. Также стоит упомянуть, что для аккаунтов с ролью «Разработчик» продукты Red Hat доступны для скачивания совершенно бесплатно, а при желании можно не терять время на установку и «пощупать» их прямо в облаке. Сказка для технаря :)
BlazeMeter — подразделение CA Technologies, занимающееся развитием облачной платформы для запуска функциональных тестов и тестов производительности. Ведут интересный блог о тестировании производительности с сравнением различных технологий. Рассказывают и о встраивании различных видов тестирования в конвейер непрерывной доставки ПО и использовании технологий контейнеризации. На аналогичные темы регулярно проводят вебинары, записи которых также доступны для просмотра. Я заинтересовался BlazeMeter по роду своей деятельности (в прошлом работал в команде нагрузочного тестирования). Но должен отметить, что у CA Technologies также есть большое количество продуктов, так или иначе связанных с DevOps, со своими блогами, вебинарами и базами знаний. Эти материалы доступны на официальном сайте (/).
CloudBees — компания-разработчик, которая занимается развитием сервера непрерывной интеграции Jenkins и продаже различных продуктов на его основе (облачную версию Jenkins, DevOptics для визуализации потока создания ценности с помощью интеграции Jira, Git и Jenkins и некоторых других). Ведёт достаточно интересный блог про DevOps и непрерывную доставку ПО, причём с чётким отделением материалов для менеджеров от материалов для технических специалистов. Иногда проводят вебинары, посвящённые своим продуктам и решениям, впрочем больше рекламного характера. Располагают очень приличной базой знаний по Jenkins и смежным продуктам с высокой детализацией: от тонкостей архитектуры до различных вариантов использования конкретных функций. Из прикольного: ведут своё собственное DevOps-радио, где в форме подкастов под приятную лёгкую музыку рассказывают о тенденциях в развитии DevOps и непрерывной доставки ПО. Его прослушивание, пожалуй, наиболее приятный способ оставаться в тренде.
Puppet Labs — одни из пионеров DevOps-движения. Больше всего известны тем, что публикуют ежегодный отчёт о состоянии DevOps в мире. Помимо отчёта на их сайте представлен действительно обширный набор различных материалов по теме: статьи, видеоролики, записанные вебинары и вебинары, планируемые в будущем, презентации, подкасты, электронные книги, аналитические отчёты и даже инфографика. Большинство материалов очень высокого качества и действительно заслуживают вашего внимания.
Netflix — не совсем подходит под определение компании-разработчика, поскольку основным родом их деятельности является создание и стриминг сериалов. Тем не менее, в IT-сообществе именно она стала пионером микросервисов и примером для подражания с точки зрения корпоративной культуры и внедрения инноваций. Данный сайт относится к их подразделению, отвечающему за развитие технологий с открытым исходным кодом. Технологий представлено много, и они сгруппированы по решаемым задачам. Часть ссылок ведёт на соответствующие репозитории GitHub, остальные — на отдельные страницы проектов, на которых можно найти обучающие видеоматериалы, примеры использования и гайды по участию в развитии проекта.
Статьи и презентации
Чтение актуальных статей и других аналогичных материалов в интернете остаётся одним из самых действенных способов получать знания о том, что происходит в индустрии. Для этого отлично подходят указанные выше ресурсы. Здесь же приведу несколько статей, презентаций и других материалов, которые мне показались особенно интересными и, на мой взгляд, их имеет смысл прочитать всем интересующимся тематикой DevOps (хоть и стоит заметить, что подобные материалы довольно быстро теряют свою актуальность):
Microservice 4.0 Journey, Daniel Oh – очень интересная презентация об истории развития микросервисов и сопутствующих технологий. Помимо исторической справки в ней описана текущая ситуация в индустрии, а также высказаны прогнозы о дальнейшем развитии событий. Надо отметить, что у меня данный сайт открывается только при работе через прокси.
MLFlow: Platform for Complete Machine Learning Lifecycle, Mani Parkhe & Tomas Nykodym – ещё одна презентация с того же ресурса, но на тему машинного обучения и работы с моделями, построенными на его основе. В ней описан продукт MLFlow и подход к его использованию для обеспечения удобного жизненного цикла Data Science моделей. Особо интересна будет тем, кто хочет эксплуатировать подобные модели в продуктивной среде.
DevOps 2.0 for Digital Transformation, Jesús Pérez Franco – небольшая статейка на тему развития DevOps. Ключевая мысль – процесс должен охватывать не только процесс разработки, но и всю цепочку от появления идей на стороне бизнеса до получение обратной связи от конечных пользователей и извлечения из неё пользы. Идея уже не очень нова, но кто-то мог её пропустить. Пора переходить от DevOps к BizDevOps :)
Smooth Sailing with Kubernetes, Scott McCloud – весёлый и ироничный комикс о Kubernetes и его преимуществах. Не претендует на глубину и широту охвата, но зато может быстро и доступно объяснить человеку, который не в теме, зачем нужен сей продукт и почему в мире IT столько ажиотажа вокруг данной платформы. Есть также версия на русском языке .
PERIODIC TABLE OF DEVOPS TOOLS – не могу не дать ссылку на периодическую таблицу DevOps инструментов от XebiaLabs. Они разделены по своему назначению и модели распространения. Для каждого дано описание и ссылки на официальные сайты. Помимо этого каждый инструмент можно добавить в генератор конвейеров и создать визуальную диаграмму CI/CD. Там показаны все фазы и типы инструментов, которые должны быть учтены при проектировании конвейера развёртывания, поэтому его можно эффективно использовать при оптимизации ваших текущих процессов и создании презентаций.
Литература
Литературы по данной теме написано много и её также можно поделить на две категории — концептуальная и техническая. К первой можно отнести книги, которые описывают базовые идеи, будь то инфраструктура как код или картирование, а ко второй — литературу по использованию конкретных подходов и технологий на практике.
Концептуальная литература
«Философия DevOps. Искусство управления IT» (Дженнифер Дэвис, Кэтрин Дэниелс).Одна из первых книг по данной теме, появившихся в России. В ней больший акцент сделан на культурной составляющей DevOps — разрушении барьеров между командами разработки, устранении политики взаимных упрёков и поощрению сотрудничества при достижении общих целей. Книга может быть не очень интересна техническим специалистам, но управленцам может дать полезные инсайты (особенно тем, кто не знаком с темой) и точно порадует обилием отличных цитат, например, «Дело не в том, выполняется ли формально DevOps, а в том, как выявляются и решаются проблемы».
«Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему» (Джин Ким, Кевин Бер, Джордж Спаффорд).Подобно бестселлеру «Цель. Процесс непрерывного совершенствования» эта книга подаёт свои идеи в лёгкой для читателя художественной форме. Герои романа сталкиваются с типовыми для IT-индустрии проблемами и применяют для их решения основополагающие подходы DevOps, постепенно справляясь с кризисом и переходя из тёмного вчера в светлое завтра. Авторы не претендуют на глубину, но благодаря формату для первоначального знакомства с темой подходит идеально.
«Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях» (Джез Хамбл, Джон Уиллис, Патрик Дебуа, Джин Ким).Данная книга была написана ведущими экспертами по DevOps в мире, среди которых автор книги «Проект «Феникс»» Джин Ким и один из основателей движения DevOps Патрик Дебуа. На текущий момент она по праву считается самой лучшей и полной книгой по DevOps в мире. Без лишней скромности отмечу, что компания «Неофлекс» приняла непосредственное участи в переводе и издании этой книги на русском языке. Специалисты бизнес-направления «Инженерные практики», в том числе и ваш покорный слуга, читали и перечитывали черновой вариант перевода, правили, спорили и снова правили. Результаты этой работы в виде русскоязычного издания можно заказать на сайте издательства и найти в книжных магазинах. Читайте и вдохновляйтесь на здоровье.
«DevOps для ИТ-менеджеров» (Олег Скрынник).Автор данной книги является одним из признанных специалистов в области DevOps в России, а также управляющим партнёром компании Cleverics. Помимо этого, Олег регулярно участвует в передовых конференциях по DevOps (таких как DevOpsDays) в России и переводах зарубежных изданий на ту же тематику (об этом речь пойдёт чуть дальше). В данном издании собраны все ключевые понятия и идеи DevOps в максимально интенсивное пособие о том, что нужно знать современному управленцу об этой теме о том, как быстро и эффективно «внедрить DevOps» у себя в компании или на проекте. Также может служить хорошей альтернативой для тех, кому лень читать «Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях», отличающееся солидным объёмом.
«Запуск и масштабирование DevOps на предприятии» (Гэри Грувер).Эта книга издана компанией Cleverics, речь о которой шла в предыдущем абзаце. Её автор затронул очень интересную и важную тему — масштабирование процессов DevOps, которые традиционно описываются для небольших проектов и команд (команд «на две пиццы»), на уровень подразделений и процессов компании или предприятия в целом. Может быть полезна высшему менеджменту компаний для выстраивания стратегии цифровой трансформации и масштабированию DevOps от отдельных проектов и направлений, где локально удалось преобразовать процесс разработки, на организацию в целом.
Техническая литература
По многим технологиям, относящимся к DevOps, уже написано не мало разной литературы, поэтому здесь представлю те издания, которые показались мне базовыми для погружения в данную тему:
«Git для профессионального программиста» (Скотт Чакон, Бен Штрауб).Любая разработка программного обеспечения базируется на написании исходного кода, который нужно где-то хранить и, желательно, версионировать. В современной реальности для этих целей оптимально использовать Git, особенно если ваша команда включает более одного разработчика, работающего над определённой частью функциональности. В этой книге подробно описана система контроля версий Git, процесс версионирования кода, основные команды и продвинутые возможности по использованию, а также проведено сравнение с другими современными системами контроля версий. После её прочтения можно приступать к следующему шагу — настройке непрерывной интеграции.
«Jenkins: The Definitive Guide» (John Ferguson Smart) — для настройки непрерывной интеграции создано большое количество продуктов, как облачных, так и стационарных, но я бы рекомендовал использовать Jenkins. Помимо того, что он бесплатен (не считая облачной и enterprise-версий от CloudBees), под него написано более тысячи плагинов, позволяющих решить практически любую задачу при создании CI/CD. В данной книге подробно описана архитектура данной технологии, принципы её работы и возможности использования, включая процедуры обслуживания Jenkins и многое другое. Когда понимание процессов CI/CD сформировано, можно приступать к изучению контейнерных технологий.
«Использование Docker» (Эдриен Моуэт). Среди контейнерных технологий в данный момент лидирующую позицию занимает Docker. На тему его применения и оптимального использования написано много литературы. Но именно эта книга собрала в себе оптимальную подборку материалов для полноценного знакомства с данной технологией: от описания принципа контейнеризации и подробного обзора всех основных команд Docker до построения простого микросервиса из нескольких компонентов и использования специализированных средств для его отладки. Также в этой книге описана оркестрация контейнеров и популярные средства для её упрощения, но я бы рекомендовал уделить данной теме (как одной из важнейших для понимания принципов построения микросервисных систем) чуть больше внимания. Не ограничиваться прочтением данной книги, а изучить дополнительную литературу, например «Kubernetes in Action».
«Kubernetes in Action» (Marko Lukša), «The DevOps 2.3 Toolkit: Kubernetes: Deploying and managing highly-available and fault-tolerant applications at scale» (Viktor Farcic), «The Kubernetes Book: Version 3» (Nigel Poulton).Kubernetes, по сути, выиграл войну оркестраторов контейнеров, оставив остальных далеко позади. Лучше него с этим делом справляются только оркестраторы, расширяющие его функциональность (такие как OpenShift, IBM Cloud Private и Rancher). Поэтому понимание принципов работы Kubernetes и объектов, которыми он оперирует, жизненно необходимо при работе с облачными и микросервисными системами. Система ОЧЕНЬ активно развивается и по ней публикуется действительно много литературы, поэтому здесь указано аж 3 книги. Прочитав их, вы получите комплексное представление о платформе Kubernetes, её возможностях и особенностях, а также будете готовы к разработке и эксплуатации контейнеризованных приложений. Ко всему прочему, книга написана очень достойно и читается на одном дыхании, конечно если эта тематика Вас интересует. Но если вам требуется эксплуатировать не только контейнерные приложения, но, к примеру, задачи обработки данных в Hadoop или standalone приложения, то рекомендую обратить внимание на Apache Mesos.
«Mesos in Action» (Roger Ignazio). Если перед вами стоит задача построения центра обработки данных и централизованного управления его ресурсами, то рекомендую обратить внимание на Apache Mesos или его дополненный дистрибутив DC/OS. Данная книга посвящена работе с этой технологией и объясняет принципы построения кластера Mesos, создание общего пула ресурсов, а также создание и запуск фреймворков для их выделения из пула по конкретным задачам и приложениям. Для Mesos создано множество готовых к эксплуатации фреймворков (таких как Marathon), позволяющих запускать наиболее популярные типы задач — контейнеры Docker, Spark, Jenkins и многие другие. Помимо прочего Mesos умеет использовать Kubernetes в качестве фреймворка для оркестрации контейнеров Docker, а DC/OS имеет каталог сервисов, с помощью которого в считанные минуты вы можете развернуть наиболее популярные продукты с открытым исходным кодом на вашем кластере.
Конференции
Конференции по DevOps проводятся во многих странах мира, в том числе и в России. Приведу наиболее важные и интересные с точки зрения контента:
DevOpsDays — крупнейшая конференция по DevOps в мире (более 160 проведённых мероприятий), ежегодно проводимая во многих странах мира, в том числе и в России (в последние годы в Москве). Одним из организаторов является Патрик Дебуа — один из основателей DevOps движения. В программе мероприятия доклады, мастер-классы, открытые сессии и различные конкурсы для участников. Среди спикеров, как правило, выступают представители локальных компаний и небольшое количество гостей из зарубежных компаний, активно эксплуатирующих и развивающих технологии и подходы DevOps.
DevOps Pro Moscow — также очень достойная конференция по DevOps, проводимая аж в течение 3 дней в Москве. В программе выступления большого количества спикеров, в том числе зарубежных, и мастер-классы от представителей ведущих российских и зарубежных компаний, активно продвигающих и развивающих тему DevOps. Единственный минус — доклады идут в 3 потока, поэтому велика вероятность испытать муки выбора — многие темы выступлений весьма интересны.
DevOops — не такая масштабная конференция, как предыдущие две, но с действительно высококлассными спикерами, причем в основном из топовых мировых компаний в области DevOps. Проводится в Санкт-Петербурге. В программе мероприятия только выступления спикеров и кулуарные беседы, но зато на самые актуальные темы — только самые свежие веяния в индустрии и её будущее.
Agile,DevOps,ITSM — данная конференция посвящена не только DevOps, но и другим актуальным способам организации и управления рабочими процессами в IT. Ориентирована по большей части на менеджеров — технические доклады практически отсутствуют. В программе доклады спикеров и технологические стенды компаний партнёров.
Обучение
Тема DevOps по своей природе разделена на культурную и технологическую часть. Несмотря на то, что обе они одинаково важны, обучение, как правило, проводят именно по технологической части (хотя есть и исключения). Далее будет приведён список бесплатных и платных платформ, на которых можно подтянуть свои знания в данном направлении.
Бесплатное обучение
Мало того что большинство технологий, ассоциированных с DevOps, находятся в открытом доступе, но для многих из них основные контрибьюторы проектов предоставляют ещё и бесплатное обучение! Фантастика? Сейчас докажу, что нет.
Red Hat — об этой компании я уже писал выше, но стоит вернуться к ней ещё раз и похвалить систему обучения, которую они сделали доступной по подписке и для компаний партнёров. Система действительно хороша: в распоряжении подписчика находятся более сотни курсов по различным продуктам Red Hat, а также концептуальные курсы для управленцев и продажников. Длительность очень разная — от получаса до нескольких дней. Подача материала в разных курсах отличается. Технические курсы представляют собой набор лекционных материалов по различным аспектам использования продукта, которому посвящён курс, перемежающиеся с лабораторными работами и опросами промежуточного контроля знаний. Данная система обучения не требует дополнительной оплаты при прохождении курсов и сдаче экзаменов, поэтому и попала в раздел бесплатных.
CloudBees — главные контрибьюторы Jenkins помимо его облачного варианта и всяческих расширений функциональности предоставляют ещё и подробную базу знаний по его устройству и использованию. В том числе в форме онлайн-курсов, посвящённых наиболее популярному серверу непрерывной интеграции. В наличие курсы по основам Jenkins и построению конвейеров непрерывной интеграции и доставки ПО с его помощью, а также введение в использование DevOptics.
Puppet Labs — пионеры DevOps-движения помимо всего вышеперечисленного предлагают бесплатно поучиться использованию их решения для управления конфигурацией и реализации принципа «Инфраструктура как код». В наличие есть общие курсы и курсы, специфичные для Open Source и Enterprise версий. Курсы короткие — длительность не превышает одного часа. Станьте специалистом в управлении конфигурацией за день :)
Chef — умельцы из Chef создали, пожалуй, самые креативные онлайн-курсы для обучения сугубо инженерным технологиям. Несколько десятков курсов, названных Learn Chef Rally, оформленных в виде стилизованных раллийных треков, разбиты также на более мелкие модули с различными уровнями сложности. В довесок к этому они записали ещё несколько десятков коротких видео-демок по использованию Chef, смежных технологий и взаимодействию с облаками. Ну не молодцы?
Microsoft Virtual Academy — у Microsoft есть своя собственная виртуальная академия, в которой гигант индустрии предоставляет видеокурсы по работе с их технологиями. В их число входят и десятки курсов, ассоциированных с DevOps и построению процессов непрерывной доставки ПО с помощью их продуктов. Я бы не рекомендовал смотреть их без особой на то причины, но если злой рок в лице консервативного заказчика или начальства столкнул вас с их технологиями, то данные курсы могут оказаться крайне полезными.
Платное обучение
DevOpsInstitute — одна из крупнейших онлайн организаций по обучению высокоуровневым идеям и концепциям DevOps. Здесь предлагают пройти курсы и сертифицироваться по специальностям, ставшим актуальными в современных реалиях — от DevOps лидера до владельца процесса (в методологии Agile). Всё самое свежее для модных и продвинутых айтишников.
CloudBees — И снова CloudBees. Да, к ним я также особо расположен (наверное, потому что Jenkins уже который год не перестаёт радовать своей гибкостью и продуманностью). Помимо смежных продуктов CloudBees также проводят сертификацию на предмет знания Jenkins и под это дело также предлагают пройти платный курс, в ходе которого готовят студентов к успешному прохождению сертификации.
Puppet Labs — помимо бесплатных курсов Puppet Labs предлагает также платные курсы с инструктором для более глубокого погружения в их продукт. На выбор есть несколько вариантов с различной направленностью: от простого погружения в Puppet для новичков, до целевых курсов для практикующих инженеров и системных архитекторов. Данные курсы особенно будут полезны, если вы хотите пройти сертификацию по данному продукту.
Chef — Learn Chef Rally лишь часть программы обучения, которую предлагает Chef. Помимо самостоятельных онлайн-курсов также есть возможность пройти онлайн обучение с инструктором, персональное обучение с тренером в одном из аккредитованных центров, а также приватное обучение в любом удобном для слушателя месте. В довесок к этому, само собой, проводится сертификация.
Edureka — портал, специализирующийся на обучении различным модным направлением в IT, таким как технологии больших данных и облачные вычисления. Самих курсов не очень много, но все достаточно актуальные:Docker, Kubernetes, Git и DevOps в целом. Большинство идут вместе с сертификацией, что всегда приятно.
На этом все. Желаю всем любознательности, мотивации к саморазвитию и успехов в этом интересном занятии!
Fin.