Что такое DevOps?
DevOps это подход к разработке и эксплуатации программного обеспечения, который предлагает сосредоточиться на взаимодействии между членами команд, автоматизации процессов поставки и конфигурирования. DevOps это культура совместной разработки продукта, объединяющая ценности бизнеса и IT-специалистов.
На практике, DevOps предлагает сделать шаг вперед от старого (еще со времен первого ITIL!) подхода к IT, как обслуживанию инфраструктуры. У нас есть Agile-разработка, которая дает бизнесу возможность быстрее реализовывать идеи. Давайте дадим возможность быстрее их внедрять и качественно (то есть без простоев и ошибок) эксплуатировать сервисы и приложения.
Что конкретно отличает DevOps от понятного системного администрирования? Предлагается сфокусироваться на том, как мы выкатываем приложение и как быстро мы разбираемся с ошибками и сбоями. Используются специальные практики и инструменты. Например, непрерывная поставка с использованием инструментов автоматизированного тестирования, интеграции и деплоя. Сколько раз вы пытались разобраться в скриптах деплоя, написанных предыдущим админом? Малейшие изменения и инфраструктура сыпется, как карточный домик. На тестовом сервере программист скомпилировал PHP руками, когда админ установит на боевом сервере последнюю версию пакета, то конфликт (во всех смыслах!) неизбежен. Объем документации растет, понимание и общее видение ситуации слабеет. Подход «инфраструктура как код», позволяет перестать конфигурировать сервера вручную. Описанная в виде кода инфраструктура позволит больше не забывать сделать важные настройки для выкатки в продакшн, система управления конфигурацией все сделает сама. Мы сможем автоматически создавать девелоперские и продакшн окружения для нашего приложения. Эти окружения будут повторяемыми, то есть тестовая среда будет максимально близка к боевой. С кодом инфраструктуры можно делать все то же самое, что и с кодом приложения: версионировать, делать ревью, тестировать и откатывать.
Что мы получим, внедрив DevOps? Разработчики смогут сами создавать для себя окружения и управлять инфраструктурой: добавлять проверки в мониторинг или библиотеки в операционной системе. Админы теперь отвечают за разработку инфраструктуры. DevOps подразумевает, что разработчики и админы работают сообща, помогая бизнесу создавать классный продукт.
DevOps также – набирающее популярность общественное движение. Многотысячные конференции, огромное количество литературы, многочисленные евангелисты и хейтеры – все это атрибуты нового культурного движения. Станет ли оно мэйнстримом или останется уделом энтузиастов – решается сегодня.
DevOps возник как ответ со стороны эксплуатации на развитие Agile-практик и ускорение процессов разработки. Стало очевидно: чтобы поставлять классный продукт, быстрее отвечая на требования рынка, необходимы качественные изменения в традиционно консервативной области эксплуатации информационных систем. Ведь подходы к эксплуатации были формализованы в виде библиотеки ITIL еще в конце 80-х годов 20-го века. Основной целью этих методов являлось обслуживание инфраструктуры. 21-й век принес в эксплуатацию процессный подход и управление сервисом. Информационные технологии стали еще ближе к бизнесу. Однако, революция продолжается и вот уже IT сливается с бизнесом. Пионерами стали интернет-сервисы и мобильные приложения, но и бизнес в традиционных сферах (банки, торговые сети, авиакомпании) начинает осознавать, что его главным конкурентным преимуществом является качество IT-систем. В этих условиях специалистам по эксплуатации предлагается, используя DevOps практики, обеспечить возможность выпускать релизы настолько часто, насколько это необходимо бизнесу.
Важной практикой становится подход «Инфраструктура как код»: идея в том, чтобы формализовать конфигурацию инфраструктуры и сделать ее формальное описание частью кода проекта. Вместе с кодом проекта разрабатывается конфигурация инфраструктуры, на которой он будет работать. В этом случае система управления конфигурацией сама определяет, что нужно сделать для достижения необходимого состояния конфигурации, и осуществляет все необходимые действия. Становится возможным автоматически создавать повторяемые окружения. Практика «Непрерывная поставка» подразумевает выполнение частых автоматизированных сборок проекта и автоматическую поставку приложения в рабочие и тестовые окружения. DevOps также предлагает сосредоточиться на обратной связи, что позволяет не упустить из виду аспекты стабильности, а также запускать процесс непрерывного улучшения продукта в целом.
Работая сообща, разработчики и «эксплуатационщики» становятся единой командой, создающей собственный продукт, а не делящей сферы ответственности.
DevOps также – набирающее популярность общественное движение. Многотысячные конференции, огромное количество литературы, многочисленные евангелисты и хейтеры – все это атрибуты нового культурного движения. Станет ли оно мэйнстримом или останется уделом энтузиастов – решается сегодня.