Что такое DevOps?

Завершено

DevOps — это объединение людей, процессов и продуктов для обеспечения непрерывной доставки ценности нашим клиентам. Однако что именно это значит? Давайте послушаем, как Мара объясняет другим участникам команды, что такое DevOps и что нужно, чтобы стать эффективной организацией.

Мара созвала своих коллег на короткое совещание. Все появились, но никто не хочет быть там. На стол Мара положила коробку с пончиками.

Мара: Привет, спасибо за приход. Я хотела подробнее обсудить нашу схему потока создания ценности и то, как мы можем повысить эффективность процессов.

Карта потока значений Мары по-прежнему находится на доске с предыдущего собрания:

Screenshot of a whiteboard showing the value stream map.

Мара: Наша карта потока ценности показывает, где мы потеряем эффективность при доставке ценности нашим конечным пользователям. Как и все остальные, мы можем улучшить. И мы можем решить, какие области сначала решать.

Энди: Это показывает нам, где у нас есть проблемы, но не то, что делать с ними.

Мара: Правильно, это упражнение, которое помогает нам указать нам в правильном направлении. Что касается того, что делать с нашими проблемами, я думаю, DevOps поможет нам. В компании, где я работала до этого, нам удалось повысить коэффициент успешных развертываний, а также значительно сократить время выполнения операций и количество инцидентов. Это заняло нас некоторое время, чтобы добраться туда, но это стоит. DevOps не дает сиюминутного результата.

Тим: Я знаю кого-то, кто только что получил работу в качестве инженера DevOps. Думаю, это больше связано с разработкой. Как раз твоя область, Энди.

Мара: DevOps не является должностью.

Амита: Есть ли какая-либо программа программного обеспечения, которую мы можем получить, что поможет нам вместе, или шаблон? Может быть, электронная таблица DevOps.

Мара: DevOps не является частью программного обеспечения.

Энди: Это больше похоже на методологию.

Мара: Не очень.

Энди, Амита, Тим: Так что это?!

Мара: Вот определение, что мне нравится использовать:

DevOps — это объединение людей, процессов и продуктов для непрерывной поставки ценности конечным пользователям.

На самом деле, Abel Wang, защитник облака в Корпорации Майкрософт, имеет большой набор видео с краткими ответами на некоторые из наших больших вопросов. Давайте посмотрим, какое определение DevOps дает Абель.

Спросите Абель

Наша цель — предоставлять клиентам игры, которые им нравятся. Для этого мы работаем сообща, используя общий набор методик и инструментов.

Амита: Что это означает? Какие общие методики? Какие инструменты?

Мара: Вот что я имею в виду по методикам:

  • Гибкое планирование: вместе мы создадим невыполненную работу, которую могут видеть все в команде и в управлении. Элементам мы назначим приоритеты, чтобы знать, с чего следует начать. Невыполненная работа может включать в себя пользовательские истории, ошибки и другую полезную информацию.
  • Непрерывная интеграция (CI): мы автоматизируем сборку и тестирование кода. Эти процессы будут выполняться каждый раз, когда член команды фиксирует изменения в системе управления версиями.
  • Непрерывная доставка (CD): cd — это то, как мы тестируем, настраиваем и развертываем из сборки в среду качества обслуживания или рабочей среды.
  • Мониторинг. Для получения сведений о производительности и использовании приложения мы будем использовать данные телеметрии. С ее помощью мы сможем вносить улучшения при выполнении итераций.

Амита: Я не знаю об автоматическом тестировании. Мои тесты вручную, и я делаю их после Энди руки от кода ко мне. У меня нет времени менять все.

Тим: Нет никакого способа, я позволяю любому из вас развертывать в рабочей среде.

Энди: Это напугает управление. Они никогда не думают дальше, чем следующий выпуск, и они всегда хотят его вчера.

Мара: Я знаю, что вы означают об управлении. Я подготовила эти материалы о том, что делает команду эффективной.

Что делает команду эффективной

Вот материалы, подготовленные Марой. В них использована информация из отчетов по DevOps и опросов, которые проводились среди технических специалистов по всему миру.

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

Он использует метрики для создания четырех категорий, с помощью которых сравниваются элитные исполнители с низкими исполнителями.

Элитные исполнители:

  • Чаще производят развертывание.

    На самом деле некоторые команды выполняют развертывание десятки раз в день.

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

  • Сокращают время выполнения от фиксации до развертывания.

    Время выполнения — это время, которое требуется на предоставление функции клиенту. Разделяя работу на небольшие части, автоматизируя ручные процессы и чаще производя развертывание, эффективные команды могут делать за считаные часы или дни то, на что раньше уходили недели или даже месяцы.

  • Имеют меньше сбоев при изменениях.

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

  • Быстрее выполняют восстановление после инцидентов.

    Когда происходят инциденты, эффективные команды способны производить восстановление быстрее. Работа с метриками помогает элитным исполнителям быстрее восстанавливаться, а также развертывать чаще.

Важно и то, как реализована облачная инфраструктура. Облако повышает производительность доставки программного обеспечения, и команды, которые принимают основные облачные характеристики, скорее всего, становятся элитными исполнителями.

Аутсорсинг может сэкономить деньги и обеспечить гибкий пул труда, но он должен использоваться в правильных областях. Низкопроизводительные команды, скорее всего, будут выполнять аутсорсинг целых функций (например, тестирование и операции), чем их высокопроизводительные коллеги.

Нижняя линия

DevOps является ключевой причиной, по которой многие элитные исполнители способны обеспечить ценность клиентам в виде новых функций и улучшений, быстрее, чем их конкуренты. В этом коротком видео Абель объясняет, почему необходимо изучать DevOps.

Спросите Абель

Чем не является DevOps

В разговоре о том, что такое DevOps, важно понять, чем он не является. DevOps не является:

  • Методология.
  • Определенный фрагмент программного обеспечения.
  • Быстрое исправление проблем организации.
  • Просто команда или должность должность (хотя эти названия достаточно распространены в отрасли).