Основы и концепции 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:
Традиционные силосы
Что не так с традиционными силосами?
Под традиционными силосами:
- Разработчики пишут код
- «Перебрось через стену» для QA
- Код переключается между разработчиками и контролерами качества по мере того, как QA обнаруживает проблемы, а разработчики их исправляют.
- Наконец, он готов к производству.
- QA / Dev «бросает код через стену» для эксплуатации
- Если возникнет проблема, Шеф перебрасывает ее через стену Деву.
- Домен каждой группы - это «черный ящик» для других групп.
- Шеф сказал бы: «Наши системы в порядке; это твой код! '
- Дев сказал бы: «Но код работает на моей машине!»
Такой способ работы приводит к тому, что многие люди указывают пальцем - Ops - это черный ящик, разработчики им не доверяют, а Ops не доверяют разработчикам.
Разработчики и операторы имеют разные приоритеты - операторы считают, что разработчики нарушают стабильность, а разработчики видят в операциях препятствие для реализации своего кода.
Даже если они ХОТЯТ работать вместе - Dev измеряется предоставлением функций, что означает развертывание изменений, а Ops измеряется временем безотказной работы, но изменения вредны для стабильности.
Недостатки традиционных силосов
- «Черные ящики» приводят к указанию пальца
- Длительный процесс означает медленное время вывода на рынок
- Отсутствие автоматизации означает, что такие вещи, как сборки и развертывания, несовместимы.
- Выявление и устранение проблем занимает много времени
Слияние Dev и Ops (DevOps)
Как DevOps решает традиционные проблемы разрозненности?
В рамках модели DevOps:
- Разработчики пишут код
- Фиксация кода запускает автоматическую сборку, интеграцию и тесты
- QA может получить его почти сразу
- Как только он будет готов, начните автоматическое развертывание в производственной среде.
- Поскольку все автоматизировано, его намного проще развернуть, сохраняя при этом стабильность.
- Развертывания могут происходить намного чаще, что позволяет быстрее передавать функции в руки клиентов.
- Если последнее развертывание ломает что-то в производстве, автоматический мониторинг немедленно уведомляет команду
- Команда выполняет откат, развертывая предыдущую рабочую версию, быстро устраняя проблему.
- Через час команда разработчиков может развернуть фиксированную версию нового кода.
Разработчики и Ops работали вместе, чтобы сделать ставку на скорость доставки и стабильность.
Автоматизация привела к согласованности - создание, тестирование и развертывание происходило каждый раз одинаково, гораздо быстрее и чаще.
Хороший мониторинг, а также быстрый процесс развертывания гарантируют, что проблемы могут быть устранены еще до того, как пользователи заметят их. Несмотря на то, что изменение кода вызвало проблему, у пользователей было мало времени простоя или оно отсутствовало.
Преимущества DevOps
- Технические команды, как правило, более довольны DevOps, чем традиционными разрозненными структурами
- Больше времени на инновации и меньше времени на тушение пожаров
- Разработчики и операторы преследуют одну и ту же цель - скорость доставки и стабильность системы.
- Метод работы DevOps дает клиентам быстро и надежно те функции, которые им нужны.