Продолжая тему развития Agile, сегодня мы расскажем о новом видении DevOps, предполагающем полный отказ от девопс-инженеров при сохранении всех принципов этого похода. Читайте в нашей статье, что такое NoOps и как эта концепция реализуется в мире Big Data.
5 разных мнений о DevOps
Хотя термину «DevOps» уже исполнилось более 10 лет, а самому понятию – и того больше, до сих пор существует 5 совершенно разных точек зрения на счет практического использования этого подхода:
- DevOps – это стильно, модно, молодежно и нужно срочно внедрять, даже если в нем пока нет большой потребности или не позволяют возможности. Как поступать в таком случае, мы рассказывали в этой статье.
- DevOps – это просто раскрученный маркетинговый ход, всю работу дорогостоящего DevOps-инженера может сделать «продвинутый» системный администратор. Почему это не так и чем отличаются задачи этих специалистов, мы рассмотрели здесь.
- DevOps – это лишь новое модное слово, а сама суть подхода давно и успешно применяется в промышленной разработке ПО. Это не может быть 100% истиной, т.к. само появление этого подхода обусловлено развитием Agile-методов, микросервисной архитектуры и повсеместной цифровизации бизнеса – факторами, возникшими не так давно, с начала 2000-х годов. Обо всем этом и роли девопс в Data Science проектах мы уже говорили.
- DevOps – это устаревшее понятие, пора переходить на SRE – обеспечение эксплуатационной надежности. На практике это не совсем так: SRE дополняет и уточняет принципы DevOps, а не противостоит ему.
- DevOps – это уже неактуально, следует стремиться к NoOps: сосредоточиться на разработке, полностью ликвидировав процессы эксплуатации. В чем суть этой концепции и почему она, на самом деле, не убивает DevOps, а переводит его на качественно новый уровень, мы рассмотрим далее.
Что такое NoOps и как он появился
По аналогии со термином «DevOps», образованном от слов «DEVelopment» и «OPerationS», NoOps – это акроним от «No» и «OPerationS». Это означает отсутствие некоторых процессов эксплуатации, в частности, развертывание и подготовку к промышленному использованию (production). Главная цель NoOps – улучшение процесса развертывания приложений, при том, что разработчикам не придется взаимодействовать с экплуатационщиками [1], поскольку инструменты автоматизации сделали ИТ-среды абстрагированными от базовой инфраструктуры. Поэтому нет необходимости в специалистах по развертыванию, т.е. операторах [2]. Такое возможно в следующих случаях [3]:
- разработчики сами выполняют операции по миграции окружения разработки с тестового сервера на рабочий, т.е. в production, без привлечения дополнительного звена, т.е. девопс-инженеров;
- в качестве production-сервера используются облачные решения: PaaS- (Platform as a Service) и IaaS (Infrastructure as a Service), в которых, благодаря технологиям виртуализации и типовым вариантам рабочих сред, разработчик может самостоятельно развернуть нужное рабочее окружение буквально за пару минут.
Первые упоминания о концепции NoOps относятся к 2011-2012 годам, когда DevOps-подход только сформировался и начал активно распространяться. В частности, архитектор облачных решений Netflix, Adrian Cockcroft, на примере своей компании показал, что разработчикам нет необходимости работать с операторами при использовании PaaS-решений [4]. Однако, подробно анализируя этот и другие материалы по NoOps, можно сделать вывод, что эта концепция не противоречит подходу девопс и не заменяет его, а, аналогично SRE, развивает и уточняет все принципы своего предшественника.
Но, если SRE-подход, придуманный в, пожалуй, самой известной Big Data компании, корпорации Google, предполагает обеспечение внутренней эксплуатационной надежности программного и аппаратного обеспечения, то NoOps – это, скорее, передача части процессов на аутсорс. Облачный провайдер автоматизирует подготовку рабочего окружения, что существенно экономит трудовые и временные ресурсы в соответствии с DevOps-принципами автоматизации и бережливого производства (Lean). Таким образом, NoOps пропагандирует отказ от DevOps-инженеров, как от дополнительных участников Agile-команды по разработке ПО, при сохранении всех принципов и положений самой концепции девопс.
Как перейти к NoOps и когда это возможно
Внедрение NoOps обещает следующие преимущества:
- отсутствие материальных затрат на дорогих девопс-инженеров («примите DevOps-методологию и искорените должность» [5]);
- быстрота и безошибочное выполнение операционных процессов за счет их автоматизации и виртуализации;
- повышение уровня ответственности за результат и увеличение степени вовлеченности разработчиков ПО в процесс создания приложений;
- максимальное соответствие принципам Agile (скорость, адаптивность, частые релизы, возможности оперативно реагировать на запросы и не бояться ошибок, т.к. всегда можно вернуться к предыдущей версии).
При наличии таких достоинств возникает соблазн сразу перейти к NoOps, перепрыгнув через предыдущую Agile-ступеньку, т.е. DevOps. Такая поспешность обернется полным провалом и попыткой автоматизации хаоса. Если процессы непрерывной интеграции и доставки CI/CD (Continuous Integration/Continuous Delivery) не отлажены, то их невозможно заложить в облачный конвейер развертывания (pipeline). Иначе говоря, перед уходом в облака, девопс-инженеру нужно хорошо потрудиться, чтобы настроить непрерывную поставку ценности, обеспечив автоматизацию каждого этапа трансформации бизнес-идеи в работающее ПО [6].
Стоит отметить, что, помимо высоких требований к зрелости процессов, NoOps возможен не во всех случаях. Например, использование сторонних сервисов невозможно в некоторых промышленных и государственных организациях. Банки, медицинские учреждения, правительственные корпорации не размещают свои большие данные в удобных облаках, а стоят собственные датацентры. Поэтому профессии DevOps-инженера и системного администратора еще очень долго будут востребованы и высокооплачиваемы.
Узнайте, как эффективно внедрить девопс в реальный бизнес на практическом курсе «Аналитика больших данных для менеджеров» в нашем учебном центре для руководителей, аналитиков, архитекторов, инженеров и исследователей Big Data в Москве.
Источники
- https://go.forrester.com/blog/11-02-07-i_dont_want_devops_i_want_noops/
- https://searchitoperations.techtarget.com/definition/NoOps
- https://www.appdynamics.com/blog/engineering/is-noops-the-end-of-devops-think-again/
- http://perfcap.blogspot.com/2012/03/ops-devops-and-noops-at-netflix.html?m=1
- https://realitsm.ru/2017/11/my-dolzhny-ubit-devops/
- https://medium.com/southbridge/ci-cd-принципы-внедрение-инструменты-f0626b9994c8
[…] В целом, услуги DevOps-инженер пока обходятся дороже, чем работа администратора Big Data и сисадмина. Этот факт обусловлен повышенным спросом на данную молодую профессию и вовсе не умаляет ценности других специалистов. А что ждет девопс-инженеров в будущем, читайте в нашей новой статье. […]