На вертикальной оси изображены три уровня цепочки поставок DevOps: непрерывная интеграция, непрерывная доставка и непрерывное развертывание. Сообщество DevOps относится к организациям в правом верхнем углу континуума DevOps, как к розовым единорогам, потому что в настоящее время их так мало, что вы не видите их в дикой природе, как правило. Популярными примерами этих единорогов являются такие компании, как Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU и Google. В недавнем опросе участники указали, где их организации вписываются в континуум
DevOps:
- 55% слева внизу
- 26% справа внизу
- 14% вверху слева
- 5% сверху справа
Лидеры, тренеры и блогеры часто представляют DevOps в верхнем правом углу, и у них будет сильный уклон либо к культуре DevOps, либо к инструментам автоматизации. Но это нормально вести дебаты о том, важнее культура DevOps или инструменты. Реальность такова, что вы не можете иметь DevOps без инструментов, и все инструменты в мире не помогут, если у вас нет развитой культуры.
Другим важным моментом является то, что перемещение вверх и вправо требует времени, и первым шагом многих организаций будет сочетание культуры, инструментов и непрерывной интеграции, поэтому не расстраивайтесь, когда читаете статью о том, что вы «не DevOps », если вы не внедрили в производство автоматизацию без какого-либо вмешательства человека (на этапах после планирования и разработки кода).
DevOps может быть смесью культуры, инструментов и зрелости, которые будут полезны вашей организации. А, как мы знаем, то, что имеет смысл, скорее всего, со временем будет развиваться. Важно постоянно стремиться сломать стены и узкие места между фазами доставки программного обеспечения, улучшая совместную работу и автоматизацию. В следующих разделах мы углубимся в каждый аспект континуума DevOps, чтобы помочь вам лучше понять, на какой стадии внедрения DevOps вы находитесь.
5. Каковы фазы зрелости DevOps? Есть несколько фаз для зрелости DevOps. Вот несколько ключевых этапов, которые вам необходимо знать:
Водопад / развитие До непрерывной интеграции команды разработчиков писали кучу кода в течение трех-четырех месяцев. Затем эти команды объединят свой код, чтобы выпустить его. Разные версии кода могли очень сильно различаться и иметь столько изменений, что фактический этап интеграции может занимать месяцы. Этот процесс был очень непродуктивным.
Непрерывная интеграция Непрерывная интеграция – это практика быстрой интеграции недавно разработанного кода с основной частью кода, который должен быть выпущен. Непрерывная интеграция экономит много времени, когда команда готова выпустить код и часто является первым шагом на пути к организации DevOps в вашей компании.
Процесс непрерывной интеграции с точки зрения DevOps включает в себя проверку вашего кода, компиляцию его в пригодный для использования (часто исполняемый двоичный код) и выполнение некоторого базового проверочного тестирования.
Непрерывная доставка Непрерывная доставка является продолжением непрерывной интеграции [этап DevOps 2] и находится на ее вершине. Выполняя непрерывную доставку, вы добавляете дополнительную автоматизацию и тестирование, чтобы не просто часто компилировать дописанный код с основным, но и получить код, практически готовый для развертывания, практически без вмешательства человека. Это практика подразумевает, что кодовая база постоянно готова к развертыванию.
Непрерывное развертывание Непрерывное развертывание, которое не следует путать с непрерывной доставкой [DevOps nirvana], является, своего рода, продвинутой непрерывной доставкой. Это практика развертывания без какого-либо вмешательства человека.
Команды, использующие непрерывную доставку, не развертывают непроверенный код; вместо этого вновь созданный код проходит автоматическое тестирование, прежде чем его отправляют в производство. Релиз кода, как правило, предоставляется только небольшому проценту пользователей, и существует автоматический цикл обратной связи, который контролирует качество и использование, прежде чем код будет распространяться дальше.
Есть очень небольшое количество компаний, которые реализовали непрерывное развертывание почти на 100%: Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU и Google.
В то время как DevOps нирвана часто не является конечной целью для большинства предприятий, они часто сосредоточены на продвижении к непрерывным поставкам.
6. Каковы ценности DevOps?
DevOps уделяет большое внимание созданию культуры сотрудничества и повышению эффективности за счет автоматизации с помощью инструментов DevOps. В то время как некоторые организации и люди склонны ценить одну больше, чем другую, реальность такова, что для достижения успеха требуется сочетание культуры и инструментов. Вот что вам нужно знать об этих двух значениях DevOps.
DevOps Культура Культура DevOps характеризуется расширением сотрудничества, уменьшением разрозненности, совместной ответственностью, независимой командой, улучшением качества, оценкой обратной связи и ростом автоматизации. Многие из значений DevOps являются гибкими значениями, поскольку DevOps является расширением гибких методологий разработки программного обеспечения.
Гибкие методы – более целостный способ доставки программного обеспечения. Agile команды разработчиков измеряют прогресс с точки зрения рабочего программного обеспечения. Владельцы продуктов, разработчики, тестировщики и сотрудники UX работают в тесной коллаборации с общими целями.
DevOps добавляет бизнес-логику непосредственно в команду разработки и, возможно, члена команды с который за этой логикой следит. Принимая во внимание, что до того, как прогресс DevOps будет оценен с точки зрения рабочего программного обеспечения, прогресс DevOps должен быть измерен с точки зрения конечного пользователя (клиента) программного продукта.
Чтобы достичь этого, Dev и Ops должны выйти из своих бункеров и сотрудничать друг с другом, разделить ответственность за обслуживание системы, на которой работает программное обеспечение, и подготовить программное обеспечение для работы в системе с повышенным качеством обратной связи и автоматизацией доставки.
Инструменты DevOps Инструменты DevOps состоят из систем управления конфигурациями, тестирования и сборки, развертывания приложений, инструментов контроля версий и мониторинга. Непрерывная интеграция, непрерывная доставка и непрерывное развертывание требуют различных инструментов. Хотя все три практики могут использовать одни и те же инструменты, вам понадобится больше инструментов по мере продвижения по цепочке поставок.
[/ spb_text_block] [/ spb_column] [spb_column width = "1/1" el_position = "first last"] [spb_text_block animation = "none" animation_delay = "0" padding_vertical = "0" padding_hor horizontal = "0" width = "1 / 1 "el_position =" first last "]
7. Какие инструменты используются в DevOps?
Ранее мы кратко обсудили некоторые инструменты, используемые в DevOps. Вот некоторые из ключевых инструментов и методов, которые вам нужно знать.
Репозиторий исходного кода Хранилище исходного кода – это место, где разработчики регистрируют и изменяют код. Хранилище исходного кода управляет различными версиями кода, которые зарегистрированы, поэтому разработчики не переписывают работу друг друга.
Контроль над источниками, вероятно, существует уже около сорока лет, но он является основным компонентом непрерывной интеграции. Популярными инструментами для хранения исходного кода являются Git, Subversion, Cloudforce, Bitbucket и TFS.
Сервер сборки Сервер сборки – это инструмент автоматизации, который компилирует код из репозитория исходного кода в базу исполняемого кода. Популярными инструментами являются Jenkins, SonarQube и Artifactory.
Управление конфигурацией
Управление конфигурацией определяет конфигурацию сервера или среды. Популярными инструментами управления конфигурациями являются Puppet и Chef.
Виртуальная инфраструктура Amazon Web Services и Microsoft Azure являются примерами виртуальных инфраструктур. Виртуальные инфраструктуры предоставляются поставщиками облачных услуг, которые продают инфраструктуру или платформу как услугу (PaaS). Эти инфраструктуры имеют API-интерфейсы, позволяющие программно создавать новые машины с помощью инструментов управления конфигурацией, таких как Puppet и Chef.
Есть также частные облака. Например, у VMware есть vCloud. Частные виртуальные инфраструктуры позволяют вам запускать облако на оборудовании вашего центра обработки данных.
Виртуальные инфраструктуры в сочетании с инструментами автоматизации позволяют организациям, практикующим DevOps, настраивать сервер без каких-либо действий на клавиатуре. Если вы хотите протестировать свой совершенно новый код, вы можете автоматически отправить его в облачную инфраструктуру, создать среду и затем выполнить все тесты без участия человека.
Автоматизация испытаний Автоматизация тестирования существует уже давно. Тестирование DevOps фокусируется на автоматическом тестировании в вашем конвейере сборки, чтобы гарантировать, что к моменту развертывания сборки вы будете уверены, что она готова к этому. Популярными инструментами являются Selenium и Whater.
Трубопроводная оркестровка Конвейер подобен производственной сборочной линии, которая происходит с того момента, когда разработчик говорит «я думаю, что я закончил», вплоть до того момента, когда код будет развернут в производственной или поздней стадии подготовки к работе.
Есть вопросы по организации DevOps в компании? Заполните форму ниже, и мы вас проконсультируем.