Основы и концепции DevOps

В этом посте мы рассмотрим основы, концепции и практики, которые необходимы всем, кто работает в среде DevOps.

Мы рассмотрим следующее:

  • Культура - Культура сотрудничества между Dev и Ops
  • Практики - Практики, поддерживающие цели культуры DevOps
  • Инструменты - Инструменты, которые помогают реализовать практики DevOps
  • Облако - Тесная связь между DevOps и облаком


Что такое DevOps

DevOps = Dev (разработка) + Ops (операции)


Это определение из Википедии - хорошая отправная точка:

«DevOps - это культура и практика разработки программного обеспечения, направленная на объединение разработки программного обеспечения (Dev) и эксплуатации программного обеспечения (Ops)… DevOps нацелена на более короткие циклы разработки, увеличение частоты развертывания, более надежные выпуски в тесном соответствии с бизнес-целями».


DevOps есть

  • DevOps - это первая культура сотрудничества между разработчиками и операторами.
  • Эта культура породила ряд практик
  • DevOps - это способ работы
  • DevOps - это движение практиков для практиков.

DevOps - это не так

  • DevOps - это НЕ набор инструментов, но инструменты необходимы для успеха в DevOps
  • DevOps НЕ является стандартом
  • DevOps - это НЕ продукт
  • DevOps - это НЕ должность


DevOps Культура

Культура DevOps - это сотрудничество между Dev и Ops. Традиционно эти двое работали отдельно и имели разные а также противостоящий цели.

В рамках культуры DevOps разработчики и операторы работают вместе и делятся та же цель . То есть разработчики заботятся о стабильности так же, как и о скорости, а операторы заботятся о скорости, а также о стабильности.

Традиционные роли разработчиков и инженеров-эксплуатационников в DevOps размываются.

Вместо того, чтобы «бросать код через стену», разработчики и операторы работают вместе, чтобы создавать и использовать инструменты и процессы, которые поддерживают как скорость, так и стабильность.


С DevOps:

  • Dev и Ops играют в одной команде

  • Dev и Ops разделяют общие цели



    • Быстрый вывод на рынок (TTM)

    • Мало производственных сбоев

    • Немедленное восстановление после сбоев



Традиционные силосы

Что не так с традиционными силосами?

Под традиционными силосами:


  • Разработчики пишут код
  • «Перебрось через стену» для QA
  • Код переключается между разработчиками и контролерами качества по мере того, как QA обнаруживает проблемы, а разработчики их исправляют.
  • Наконец, он готов к производству.
  • QA / Dev «бросает код через стену» для эксплуатации
  • Если возникнет проблема, Шеф перебрасывает ее через стену Деву.
  • Домен каждой группы - это «черный ящик» для других групп.
  • Шеф сказал бы: «Наши системы в порядке; это твой код! '
  • Дев сказал бы: «Но код работает на моей машине!»

Такой способ работы приводит к тому, что многие люди указывают пальцем - Ops - это черный ящик, разработчики им не доверяют, а Ops не доверяют разработчикам.

Разработчики и операторы имеют разные приоритеты - операторы считают, что разработчики нарушают стабильность, а разработчики видят в операциях препятствие для реализации своего кода.

Даже если они ХОТЯТ работать вместе - Dev измеряется предоставлением функций, что означает развертывание изменений, а Ops измеряется временем безотказной работы, но изменения вредны для стабильности.

Недостатки традиционных силосов

  • «Черные ящики» приводят к указанию пальца
  • Длительный процесс означает медленное время вывода на рынок
  • Отсутствие автоматизации означает, что такие вещи, как сборки и развертывания, несовместимы.
  • Выявление и устранение проблем занимает много времени


Слияние Dev и Ops (DevOps)

Как DevOps решает традиционные проблемы разрозненности?


В рамках модели DevOps:

  • Разработчики пишут код
  • Фиксация кода запускает автоматическую сборку, интеграцию и тесты
  • QA может получить его почти сразу
  • Как только он будет готов, начните автоматическое развертывание в производственной среде.
  • Поскольку все автоматизировано, его намного проще развернуть, сохраняя при этом стабильность.
  • Развертывания могут происходить намного чаще, что позволяет быстрее передавать функции в руки клиентов.
  • Если последнее развертывание ломает что-то в производстве, автоматический мониторинг немедленно уведомляет команду
  • Команда выполняет откат, развертывая предыдущую рабочую версию, быстро устраняя проблему.
  • Через час команда разработчиков может развернуть фиксированную версию нового кода.

Разработчики и Ops работали вместе, чтобы сделать ставку на скорость доставки и стабильность.

Автоматизация привела к согласованности - создание, тестирование и развертывание происходило каждый раз одинаково, гораздо быстрее и чаще.

Хороший мониторинг, а также быстрый процесс развертывания гарантируют, что проблемы могут быть устранены еще до того, как пользователи заметят их. Несмотря на то, что изменение кода вызвало проблему, у пользователей было мало времени простоя или оно отсутствовало.


Преимущества DevOps

  • Технические команды, как правило, более довольны DevOps, чем традиционными разрозненными структурами
  • Больше времени на инновации и меньше времени на тушение пожаров
  • Разработчики и операторы преследуют одну и ту же цель - скорость доставки и стабильность системы.
  • Метод работы DevOps дает клиентам быстро и надежно те функции, которые им нужны.