Что такое DevOps?
DevOps — это объединение людей, процессов и продуктов для обеспечения непрерывной доставки ценности нашим клиентам. Однако что именно это значит? Давайте послушаем, как Мара объясняет другим участникам команды, что такое DevOps и что нужно, чтобы стать эффективной организацией.
Мара созвала своих коллег на короткое совещание. Все появились, но никто не хочет быть там. На стол Мара положила коробку с пончиками.
Мара: Привет, спасибо за приход. Я хотела подробнее обсудить нашу схему потока создания ценности и то, как мы можем повысить эффективность процессов.
Карта потока значений Мары по-прежнему находится на доске с предыдущего собрания:
Мара: Наша карта потока ценности показывает, где мы потеряем эффективность при доставке ценности нашим конечным пользователям. Как и все остальные, мы можем улучшить, и мы можем решить, какие области сначала решать.
Энди: Это показывает нам, где у нас есть проблемы, но не то, что делать с ними.
Мара: Правильно, это упражнение, которое помогает нам указать нам в правильном направлении. Что делать с нашими проблемами, я думаю, DevOps может помочь нам. В моей последней компании наши показатели развертывания пошли вверх, время свинца было быстрее, и операции имели гораздо меньше инцидентов. Это заняло нас некоторое время, чтобы добраться туда, но это стоит. DevOps не дает сиюминутного результата.
Тим: Я знаю кого-то, кто только что получил работу в качестве инженера DevOps. Думаю, это больше связано с разработкой. Как раз твоя область, Энди.
Мара: DevOps не является должностью.
Амита: Есть ли какая-либо программная программа, которую мы можем получить, что может помочь нам вместе, или шаблон? Может быть, электронная таблица DevOps.
Мара: DevOps не является частью программного обеспечения.
Энди: Это больше похоже на методологию.
Мара: Не очень.
Энди, Амита, Тим: Так что это?!
Мара: Вот определение, что мне нравится использовать:
DevOps — это объединение людей, процессов и продуктов для непрерывной поставки ценности конечным пользователям.
На самом деле, Abel Wang, защитник облака в Майкрософт, имеет большой набор видео с краткими ответами на некоторые из наших вопросов. Давайте посмотрим, какое определение DevOps дает Абель.
Спросите Абель
Наша цель — предоставлять клиентам игры, которые им нравятся. Для этого мы работаем сообща, используя общий набор методик и инструментов.
Амита: Что это означает? Какие общие методики? Какие инструменты?
Мара: Вот что я имею в виду по методикам:
- Гибкое планирование: вместе мы создадим невыполненную работу, которую могут видеть все в команде и в управлении. Элементам мы назначим приоритеты, чтобы знать, с чего следует начать. Невыполненная работа может включать в себя пользовательские истории, ошибки и другую полезную информацию.
- Непрерывная интеграция (CI): мы автоматизируем сборку и тестирование кода. Эти процессы будут выполняться каждый раз, когда член команды фиксирует изменения в системе управления версиями.
- Непрерывная доставка (CD): cd — это то, как мы тестируем, настраиваем и развертываем из сборки в среду качества обслуживания или рабочей среды.
- Мониторинг. Для получения сведений о производительности и использовании приложения мы будем использовать данные телеметрии. С ее помощью мы сможем вносить улучшения при выполнении итераций.
Амита: Я не знаю об автоматическом тестировании. Мои тесты вручную, и я делаю их после Энди руки от кода ко мне. У меня нет времени менять все.
Тим: Нет никакого способа, я позволяю любому из вас развертывать в рабочей среде.
Энди: Это напугает управление. Они никогда не думают дальше, чем следующий выпуск, и они всегда хотят его вчера.
Мара: Я знаю, что вы означают об управлении. Я подготовила эти материалы о том, что делает команду эффективной.
Что делает команду эффективной
Вот материалы, подготовленные Марой. В них использована информация из отчетов по DevOps и опросов, которые проводились среди технических специалистов по всему миру.
DevOps помогает компаниям экспериментировать с способами повышения внедрения и удовлетворенности клиентов. Это может привести к повышению производительности организации и часто к повышению рентабельности и общей доли рынка.
Он использует метрики для создания четырех категорий, с помощью которых сравниваются элитные исполнители с низкими исполнителями.
Элитные исполнители:
Чаще производят развертывание.
На самом деле некоторые команды выполняют развертывание десятки раз в день.
Такие методики, как мониторинг, непрерывное тестирование, управление изменениями базы данных и интеграция безопасности в процессе разработки программного обеспечения помогают элитным исполнителям развертывать чаще и с большей предсказуемостью и безопасностью.
Сокращают время выполнения от фиксации до развертывания.
Время выполнения — это время, которое требуется на предоставление функции клиенту. Разделяя работу на небольшие части, автоматизируя ручные процессы и чаще производя развертывание, эффективные команды могут делать за считаные часы или дни то, на что раньше уходили недели или даже месяцы.
Имеют меньше сбоев при изменениях.
Новая функция, которая завершается сбоем в рабочей среде или что приводит к разрыву других функций, может создать потерянную возможность между вами и вашими пользователями. По мере того как высокопроизводительные команды зрелы, они снижают частоту сбоев изменений с течением времени.
Быстрее выполняют восстановление после инцидентов.
Когда происходят инциденты, эффективные команды способны производить восстановление быстрее. Работа с метриками помогает элитным исполнителям быстрее восстанавливаться, а также развертывать чаще.
Важно и то, как реализована облачная инфраструктура. Облако повышает производительность доставки программного обеспечения, и команды, которые принимают основные облачные характеристики, скорее всего, становятся элитными исполнителями.
Аутсорсинг может сэкономить деньги и предоставить гибкий пул труда, но вы должны использовать его в правильных областях. Низкопроизводительные команды, скорее всего, будут выполнять аутсорсинг целых функций (например, тестирование и операции), чем их высокопроизводительные коллеги.
Подводя черту
DevOps является ключевой причиной, по которой многие элитные исполнители способны обеспечить ценность клиентам в виде новых функций и улучшений, быстрее, чем их конкуренты. В этом коротком видео Абель объясняет, почему необходимо изучать DevOps.
Спросите Абель
То, что DevOps не является
В разговоре о том, что такое DevOps, важно понять, чем он не является. DevOps не является:
- Методология.
- Определенный фрагмент программного обеспечения.
- Быстрое исправление проблем организации.
- Просто команда или должность должность (хотя эти названия достаточно распространены в отрасли).