Devops
Содержание:
Главные тенденции
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-инженера первым уведомляют о проблемах и форс-мажорах, поэтому его график динамичный и ненормированный.
Кто и где используется 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 дает следующие преимущества в управлении выпуском ПО :
- события, документированные процессы управления и подробные отчеты легко отслеживать;
- разработчики имеют больше контроля над средой, предоставляя инфраструктуре более прикладное понимание продукта и процессов его эксплуатации;
- значительное сокращение времени выхода на рынок за счет «бесшовного» цикла разработки и внедрения;
- улучшение удовлетворенности клиентов;
- повышение качества и надежности продукции;
- увеличение производительности и эффективности;
- быстрота реагирования и высокая скорость экспериментов;
- расширение компетенций и ответственности разработчиков – программисты участвуют в настройке серверов и поиске ошибок, пишут автоматизированные тесты, сглаживая возможные инфраструктурные уязвимости в коде. Это сокращает количество ошибок при развертке приложения примерно в 5 раз .
Расширение концепции DevOps на все бизнес-процессы
Особенности профессии
DevOps-инженеры – многозадачные и компетентные специалисты, на которых возлагается большой фронт работ и ответственность. Они обеспечивают коммуникацию и взаимопонимание между членами рабочей команды, что гарантирует гармонию между Development (разработка) и Operation (эксплуатация). В обязанности DevOps-инженера входят следующие важные работы:
- автоматизация всех процессов, связанных с разработкой и эксплуатацией;
- контроль скорости выполнения задач и соблюдения графика;
- курирование всех стадий разработки, а также развертки продукта;
- оценка производительности программных продуктов;
- коммуникация между разработчиками и службой, которая занимается эксплуатацией ПО;
- принятие эффективных решений в случае форс-мажоров, иные.
Обязанности зависят от места работы, однако DevOps-инженер должен безупречно знать процессы Development и Operation. Например, разработчики создали приложение, но упустили из виду проблемы, в этом случае DevOps-инженер самостоятельно выявляет и устраняет ошибки в программном коде. Он использует системы управления конфигурациями, различный софт, виртуализацию, иные инструменты. Его деятельность помогает предупредить финансовые издержки, существенно повысить скорость и качество разработки, проводить эффективную отладку или масштабирование – решать задачи, в которых заинтересован IT-бизнес.
Конфигурирование роутеров семейства N300
Топология команды DevOps
Какая структура или топология команды DevOps подходит для организации, зависит от многих вопросов, например:
- Каков набор выпускаемых и поддерживаемых продуктов – чем меньше продуктов, тем больше взаимосвязь Dev и Ops.
- Степень, сила и эффективность технического руководства — имеет ли Dev и Ops общую цель.
- Готова ли организация на трансформацию роли ИТ эксплуатации от «принеси-подай» во встроенной в бизнес процесс.
- Есть ли в организации лидеры, которые готовы указывать на проблемные области и сопровождать изменения.
- Чаще всего построение «команды мечты» потребует последовательной смены нескольких моделей.
Методы и средства реализации: как работает DevOps
Методологически девопс поддерживает принципы Agile и Continuous delivery – непрерывной поставки ПО. Для организации процессов могут быть использованы такие методы Agile, как Scrum, Kanban и их варианты.
В плане инструментов для автоматизации процессов разработки, тестирования и развертывания используются следующие технологии и популярные средства их реализации:
- Распределенный контроль версий (Git, Mercurial, Subversion, CVS);
- Контейнеризация (Docker, Rocket, Kubernetes);
- Непрерывная интеграция – сборка и тестирование конечного продукта (Jenkins, TeamCity, Bamboo);
- Управление инфраструктурой как кодом (Puppet, Chef, Ansible);
- Виртуализация (Vagrant);
- Балансировка облачных ресурсов (VMware DRS).
За выполнение девопс-процессов отвечает DevOps-инженер, который синхронизирует все этапы создания программного продукта, от написания кода до тестирования и выпуска приложения. Такой специалист взаимодействует с отделами разработки и администрирования, а также автоматизирует выполнение их задач, внедряя вышеуказанные программные инструменты. Подробнее о сфере ответственности DevOps-инженера мы рассказывали здесь и здесь.
Поскольку DevOps-инженер совмещает множество профессий (администратора, разработчика, тестировщика и менеджера), то он должен иметь опыт администрирования различных операционных систем и облачных платформ. Также необходимы знания сетевых технологий и умения писать скрипты и код на нескольких языках программирования . Как эти компетенции разделяются с другими участниками Agile-команды, мы рассмотрели здесь.
Инструменты Devops
История появления
Термин «DevOps» был популяризован серией встреч «DevOps Days», прошедших в 2009 году в Бельгии . Одной из наиболее важных теоретических работ по DevOps считается книга Патрика Дюбуа, Джина Ким, Джеза Хамбл и Джона Уиллис «Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях», впервые опубликованная на английском языке в 2016 году. К этому основателей нескольких софтверных компаний и независимых ИТ-консультантов подтолкнул накопленный опыт работы в крупных проектах .
Однако само понятие DevOps зародилось в начале 2000-х годов, когда в ИТ-мире больших корпораций возникла проблема рассогласования рабочих процессов, при которой нормальная работа программного продукта нарушена из-за функционального и организационного разделения тех, кто пишет код, и тех, кто выполняет его развертывание и поддержку. У разработчиков и специалистов по эксплуатации продукта часто бывают разные и даже противоречащие друг другу цели, руководители подразделений и ключевые показатели эффективности. Рабочие места разнопрофильных участников жизненного цикла ПО зачастую располагаются в разных локациях. Такая разрозненность и нарушение коммуникации внутри компании приводит к удлинению сроков решения задач, сверхурочной работе, сорванным релизам и недовольству клиентов 1.
Концепция DevOps предлагает решать эту проблему с помощью приложения принципов Agile не только к разработке и тестированию, но и к процессам эксплуатации ПО, т.е. к развертыванию и поддержке. Таким образом, популярность DevOps возникла, в том числе благодаря распространению Agile-практик, ориентированных на ускорение процессов поставки готового продукта и увеличение количества выпускаемых версий. Кроме того, дополнительным драйвером развития девопс стала микросервисная архитектура, когда система состоит из набора отдельных слабосвязанных модулей, реализация каждого из которых находится в зоне ответственности одного человека, который разрабатывает, тестирует и развертывает ПО. Благодаря небольшому размеру каждого модуля (сервиса), его архитектура может создаваться путем непрерывного рефакторинга, что уменьшает трудоемкость предварительного проектирования и позволяет постоянно выпускать новые релизы программного продукта 2.
Концепция DevOps как пересечение разработки, эксплуатации и тестирования