Профессия devops-инженер: подробное описание
Содержание:
Главные принципы DevOps
Рассматривая DevOps как масштабирование Agile-подхода на весь процесс разработки, внедрения и сопровождение ПО, можно выделить 5 основных принципов (CALMS) его реализации с целью увеличения частоты релизов и повышения ответственности команды за продукт :
- Культура (Culture) – кросс-функциональное сотрудничество разнопрофильных специалистов и команд за счет единого информационного пространства проектного контента, открытых каналов коммуникаций и постоянного общения всех участников;
- Автоматизация (Automatization) – использование инструментов непрерывной поставки с прогоном каждой правки кода через серию автоматизированных тестов, часто использующих облачную инфраструктуру, и последующую упаковку успешных сборок с дальнейшим перемещением на рабочий сервер с помощью автоматизированных развертываний и управления инфраструктурой как кодом через конфигурации саморазвертываемых сред;
- Бережливость (Lean) – устранение действий с низкой полезностью и ускорение процессов, непрерывное совершенствование через регулярный ретроспективный анализ, раздельное тестирование различных инструментов, принятие поражений, возможности быстрого обнаружения проблем и их незамедлительного решения;
- Измерения (Measurement) производительности, например, продолжительность работы пользователей с продуктом, частота появления в логах сообщений о критических ошибках – необходимы ясные и четкие критерии оценки работы, показатели эффективности процессов;
- Обмен (Sharing) – совместная ответственность и разделение успехов, выпуск и обеспечение работы приложения осуществляются теми же людьми, что выполняли его сборку, т.е. разработчики (Developers) и операторы (Operators) взаимодействуют на каждом этапе жизненного цикла приложения.
CALMS: главные принципы DevOps
Конфигурирование роутеров семейства N300
Особенности профессии
DevOps-инженеры – многозадачные и компетентные специалисты, на которых возлагается большой фронт работ и ответственность. Они обеспечивают коммуникацию и взаимопонимание между членами рабочей команды, что гарантирует гармонию между Development (разработка) и Operation (эксплуатация). В обязанности DevOps-инженера входят следующие важные работы:
- автоматизация всех процессов, связанных с разработкой и эксплуатацией;
- контроль скорости выполнения задач и соблюдения графика;
- курирование всех стадий разработки, а также развертки продукта;
- оценка производительности программных продуктов;
- коммуникация между разработчиками и службой, которая занимается эксплуатацией ПО;
- принятие эффективных решений в случае форс-мажоров, иные.
Обязанности зависят от места работы, однако DevOps-инженер должен безупречно знать процессы Development и Operation. Например, разработчики создали приложение, но упустили из виду проблемы, в этом случае DevOps-инженер самостоятельно выявляет и устраняет ошибки в программном коде. Он использует системы управления конфигурациями, различный софт, виртуализацию, иные инструменты. Его деятельность помогает предупредить финансовые издержки, существенно повысить скорость и качество разработки, проводить эффективную отладку или масштабирование – решать задачи, в которых заинтересован IT-бизнес.
История появления
Термин «DevOps» был популяризован серией встреч «DevOps Days», прошедших в 2009 году в Бельгии . Одной из наиболее важных теоретических работ по DevOps считается книга Патрика Дюбуа, Джина Ким, Джеза Хамбл и Джона Уиллис «Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях», впервые опубликованная на английском языке в 2016 году. К этому основателей нескольких софтверных компаний и независимых ИТ-консультантов подтолкнул накопленный опыт работы в крупных проектах .
Однако само понятие DevOps зародилось в начале 2000-х годов, когда в ИТ-мире больших корпораций возникла проблема рассогласования рабочих процессов, при которой нормальная работа программного продукта нарушена из-за функционального и организационного разделения тех, кто пишет код, и тех, кто выполняет его развертывание и поддержку. У разработчиков и специалистов по эксплуатации продукта часто бывают разные и даже противоречащие друг другу цели, руководители подразделений и ключевые показатели эффективности. Рабочие места разнопрофильных участников жизненного цикла ПО зачастую располагаются в разных локациях. Такая разрозненность и нарушение коммуникации внутри компании приводит к удлинению сроков решения задач, сверхурочной работе, сорванным релизам и недовольству клиентов 1.
Концепция DevOps предлагает решать эту проблему с помощью приложения принципов Agile не только к разработке и тестированию, но и к процессам эксплуатации ПО, т.е. к развертыванию и поддержке. Таким образом, популярность DevOps возникла, в том числе благодаря распространению Agile-практик, ориентированных на ускорение процессов поставки готового продукта и увеличение количества выпускаемых версий. Кроме того, дополнительным драйвером развития девопс стала микросервисная архитектура, когда система состоит из набора отдельных слабосвязанных модулей, реализация каждого из которых находится в зоне ответственности одного человека, который разрабатывает, тестирует и развертывает ПО. Благодаря небольшому размеру каждого модуля (сервиса), его архитектура может создаваться путем непрерывного рефакторинга, что уменьшает трудоемкость предварительного проектирования и позволяет постоянно выпускать новые релизы программного продукта 2.
Концепция DevOps как пересечение разработки, эксплуатации и тестирования
Кто и где используется DevOps и сколько за это стоит
DevOps может быть полезен практически любой организации, связанной с разработкой приложений или управлением большим количеством серверов. Крупные ИТ-гиганты вовсю нанимают (Amazon, Adobe, Google, Facebook и т.д.) и технологичные предприятия других сфер (Netflix, Walmart, Etsy и пр.) вовсю нанимают DevOps-инженеров. В России девопс также активно используется в банковской (Сбербанк, Альфабанк, Тинькофф-Банк), телекоммуникационной и ИТ-отраслях (Билайн, МТС, Mail.ru, Яндекс).
Мелкий бизнес и стартапы, цель которых – быстрее выпустить на рынок минимально жизнеспособный продукт, чтобы проверить новую идею, пока обходятся без девопс-инженеров. Что обусловлено, помимо организационных и методологических факторов, также и финансовой стороной вопросы: DevOps-инженеры зарабатывают больше всех в отрасли. На июль 2019 года зарплата таких специалистов колеблется в районе $71 тысяча долларов в год за рубежом , что составляет около 350 тысяч рублей в месяц, и 130-400 тысяч рублей в месяц в РФ [7.
DevOps — continuous innovation — непрерывное улучшение всех процессов
Источники
- https://ru.atlassian.com/devops
- https://ru.wikipedia.org/wiki/DevOps
- https://vc.ru/hr/50165-chto-takoe-metodologiya-devops-i-komu-ona-nuzhna
- https://habr.com/ru/post/349796/
- https://habr.com/ru/company/itglobalcom/blog/447742/
- https://insights.stackoverflow.com/survey/2019
- https://yandex.ru/company/researches/2019/it-jobs
Топология команды DevOps
Какая структура или топология команды DevOps подходит для организации, зависит от многих вопросов, например:
- Каков набор выпускаемых и поддерживаемых продуктов – чем меньше продуктов, тем больше взаимосвязь Dev и Ops.
- Степень, сила и эффективность технического руководства — имеет ли Dev и Ops общую цель.
- Готова ли организация на трансформацию роли ИТ эксплуатации от «принеси-подай» во встроенной в бизнес процесс.
- Есть ли в организации лидеры, которые готовы указывать на проблемные области и сопровождать изменения.
- Чаще всего построение «команды мечты» потребует последовательной смены нескольких моделей.
Главные тенденции
2020: 10 прогнозов для разработчиков и DevOps на 2020 год
В конце февраля 2020 года IDC обнародовала прогнозы для разработчиков и DevOps. Аналитики сделали акцент на китайском рынке, а также практических рекомендациях на 2020 и последующие годы. Авторы исследования считают, что это их работа предоставляет всесторонний анализ тенденций рынка разработчиков и DevOps.
1. Оптимизация ИИ для разработчиков
Согласно ожиданиям IDC, к 2024 году 56% компаний не будут ограничивать использование ИИ и машинного обучения разработкой приложений — они будут применяться в проектировании, управлении качеством, обеспечении безопасности и развертывании новых технологий. К 2023 году 70% компаний будут инвестировать средства в переподготовку и обучение сотрудников, в том числе в сторонние службы, для приобретения новых навыков и знакомства с новыми методами работы.
Многие компании используют методологию DevOps для ускорения выпуска приложений
2. Широкое использование контейнерных платформ
К 2024 году 70% новых приложений будут разворачиваться на контейнерных платформах для повышения скорости развертывания, согласованности и переносимости приложений.
3. Рост доли внештатных разработчиков
К 2023 году число разработчиков, занятых неполный рабочий день (в том числе бизнес-аналитиков, специалистов по анализу и обработке данных, а также исследователей данных) в Китае, станет в два раза больше. В частности, число разработчиков, занятых неполный рабочий день, увеличится с 1,8 млн в 2019 году до 3,6 млн.
4. DevOps как повседневная деятельность
К 2023 году число организаций, выпускающих коды для конкретных приложений, увеличится с 3% до 30%. К 2024 году по крайней мере 90% новых версий приложений корпоративного уровня будут иметь встроенные функции ИИ, хотя и будут составлять только 10% всего рынка.
5. Ускорение трансформации традиционных приложений
К 2022 году ускоренная модернизация традиционных приложений и разработка новых приложений приведет к увеличению доли облачных приложений до 25%, что обусловлено использованием микросервисов, контейнеров и динамической оркестровкой.
6. DevOps сосредоточиться на ключевых индикаторах производительности бизнеса
К 2023 году 40% команд DevOps будут инвестировать средства в расширение инструментария и сосредоточатся на ключевых показателях эффективности бизнеса, таких как затраты и доходы, поскольку операции станут играть более важную роль в производительности комплексных приложений и влиянии на бизнес.
7. Использование соответствующих аналитических инструментов на основе ПО с открытым исходным кодом
Растущая зависимость приложений от компонентов с открытым исходным кодом обеспечила быстрый рост аналитического инструментария. К 2023 году инструменты анализа программных компонентов, которые к февралю 2020 года используются только отдельными организациями, будут применяться 45% фирм.
8. Компании создают собственные экосистемы развития
К 2023 году 60% китайских компаний создадут собственные программные экосистемы, а 50% получат доступ к ключевым повторно используемым компонентам кода из общедоступных библиотек.
9. Рост кодовых баз открытого доступа
К 2024 году доля программного обеспечения с открытым исходным кодом, полученных из соответствующих библиотек, увеличится вдвое, то есть до 25%, а остальные 75% будут настроены в соответствии с бизнес-моделями организаций или сценариями использования.
При реализации этих стратегий есть возможность использовать ресурсы самообслуживания, благодаря которым методология DevOps позволяет выполнять в облаке разработку и тестирование
10. Признанная применимость DevOps
К 2024 году на приложения, которые полностью используют DevOps, будет приходиться менее 35%. Предприятия признают, что не все приложения могут извлечь выгоду из сложных операций, охватывающих разработку и производство и связанных с непрерывной интеграцией и непрерывной доставкой.
Плюсы и минусы профессии
Плюсы
- DevOps-инженер – редкая и интересная профессия.
- Рынок труда испытывает потребность в квалифицированных DevOps-инженерах.
- Высокий уровень дохода, ведь в зарубежных компаниях DevOps-инженеры получают от 100 тыс. долларов в год.
- Технология DevOps быстро приобретает популярность.
- Профессия связана с управлением, планированием и аналитикой, что понравится людям с техническим складом мышления.
- Профессиональные навыки можно применять в любой сфере, связанной с разработкой, системным администрированием и IT-технологиями.
Минусы
- DevOps-инженер собирает проект по частям, поэтому на его плечах лежит колоссальная ответственность.
- В России профессия не слишком распространена, ведь услуги таких специалистов могут оплачивать только крупные компании. Все это порождает определенный уровень конкуренции в профессиональной нише.
- DevOps-инженера первым уведомляют о проблемах и форс-мажорах, поэтому его график динамичный и ненормированный.