Я вижу, что всякий раз, когда кто-то делает DevOps, речь идет об автоматизации таких вещей, как развертывание и т. Д.
Но где заканчивается автоматизация и начинается DevOps?
Я вижу, что всякий раз, когда кто-то делает DevOps, речь идет об автоматизации таких вещей, как развертывание и т. Д.
Но где заканчивается автоматизация и начинается DevOps?
Ответы:
Большая часть DevOps делает возможным выпуск очень часто. Это связано с автоматизированной сборкой, автоматизированным тестированием и т. Д. Вы можете сказать, что для достижения своих целей DevOps необходимо использовать автоматизацию, чтобы быть эффективной.
Вот как связаны DevOps и автоматизация. DevOps - это не просто автоматизация, это еще не все. И наоборот, автоматизация не используется исключительно «людьми DevOps». До того, как появился DevOps, в ИТ происходила большая автоматизация.
Пожалуйста, не рассматривайте вышеприведенную диаграмму, чтобы представить все, что является DevOps, или все это автоматизация. Это поможет читателю представить, как эти два понятия связаны между собой.
Автоматизация является ключевым атрибутом DevOps, но это еще не все. Вопрос вроде как «В чем разница между боксом времени и Scrum?».
Вы услышите, что DevOps называют «культурой», «движением», «методологией» и тому подобным, что не достаточно хорошо для этого подходит для понимания, даже если эти описания точны. Короче говоря, DevOps - это слияние методологий, автоматизации и виртуализации Agile, которые обеспечивают новый цикл обратной связи в управлении / контроле / управлении программным проектом.
С агрессивной автоматизацией вещи, которые занимают много времени и подвержены человеческим ошибкам, теперь происходят быстро и без происшествий. В результате мы склонны делать их чаще. Основным примером этого является «развертывание в производство». Мы использовали для сохранения больших партий работы и развертывания их в нерабочее время на случай, если «что-то пошло не так». Но теперь мы можем вносить изменения несколько раз в день таким образом, чтобы шансы на «что-то пошло не так» резко сократились, а влияние чего-то пошло не так, когда это произошло.
Как только у нас будет этот повторяющийся процесс, мы начнем рассматривать его как «конвейер». Требования входят, код, развернутый в производство, выходит. Мы автоматизируем все в этом конвейере - тесты, документацию, слияния, развертывания и другие тесты и т. Д. Поскольку люди фокусируются на автоматизации, они не видят «конвейерный менталитет», который привел ее в действие. Это методология управления - внимание, уделяемое конвейеру, - делает DevOps больше, чем автоматизация.
Как только у нас есть эта автоматизация, включаются петли обратной связи. Мы начинаем измерять такие вещи, как время цикла, чтобы мы могли выяснить, что мы пытались угадать с помощью оценок. Вещи об архитектуре, которые усложняют автоматизацию / непрерывную доставку, как правило, заменяются альтернативными архитектурными шаблонами, которые облегчают автоматизацию / непрерывную доставку (несколько замечательных примеров этого документированы в книге «Эволюционные базы данных». «Зеленые / синие развертывания» - это еще один пример). ).
Обратите внимание, что я смог предоставить это описание, не говоря уже о Jenkins, Check, Puppet, Ansible, Vagrant, AWS или любом другом инструменте, который его поддерживает. Это то, что мы подразумеваем под модными словами более высокого уровня, такими как «методология». В конце концов, любой набор инструментов может быть заменен ... То, что нам осталось, это основные принципы управления, обеспечиваемые автоматизацией, и акцент на конвейере.
DevOps - это действительно культурный сдвиг - он предназначен для преодоления традиционных барьеров между операциями и разработкой (и в действительности также с QA и остальной частью бизнеса!). Идея заключается в том, что вместо «силовых структур» департамента вы можете работать напрямую с другими командами, чтобы выполнять работу быстрее и эффективнее.
Это все о снятии ограничений и оптимизации процессов. Автоматизация в значительной степени связана с этим, поскольку повторяющиеся процессы помогают устранить ограничения. Например: если кто-то из ops должен выполнить процесс ручного освобождения, чтобы вывести код в среду, есть несколько вещей, которые могут помешать - одна из них заключается в том, что должен быть кто-то в ops, свободный для выполнения развертывания, и во-вторых, меньше уверенности в процессе выпуска, потому что ручная работа подвержена ошибкам.
DevOps включает в себя автоматизацию, но это только часть. DevOps - это культурное изменение, направленное на разрушение разрозненности между различными частями организации и создание полного потока создания ценности. Обеспечение культуры, в которой бизнес, развитие, обеспечение качества, инфраструктура, безопасность, операции и т. Д. Работают вместе, чтобы обеспечить ценность для того, кто когда-либо является конечным пользователем. DevOps - это не инструмент, вы не можете его купить, вы должны изменить свою культуру.
Автоматизация является ключевой частью DevOps в том, что она обеспечивает скорость доставки с качеством. Автоматизация процесса развертывания - это одна из областей, на которую многие в первую очередь обращают внимание, поскольку это один из лучших способов быстрого получения прибыли, обеспечивающий высокую отдачу от инвестиций за счет не только сокращения времени на развертывание, но и стандартизации процесса и удаления ошибки.
Я хотел бы добавить свои 2 цента:
1) Автоматизация :
то, к чему мы сегодня должны двигаться. Стало больше необходимости, когда предпочтительным способом было бы автоматизировать детали, если не весь процесс. Такой подход дает пользователям (разработчикам) гибкость в использовании фиксированного шага и возможность настройки по мере необходимости.
Преимущество этого подхода в том, что мы можем автоматизировать те части, которые нам нужны, в то время как отдельный процесс может быть связан разработчиком. Чем более детализированы этапы автоматизации, тем лучше у них контроль.
Кроме того, существует множество инструментов для автоматизации в таких областях, как автоматизированная автоматизация, автоматизация SOP (для обслуживания отрасли), автоматизация отчетов (например, Splunk) и т. Д.
2) DevOps:
Учитывая качество и своевременность доставки, которые ожидаются в текущем мире, необходимо расширить автоматизацию процесса доставки программного обеспечения. Чтобы сделать это максимально быстрым и выгодным для клиента, DevOps активно использует средства автоматизации.
Преимущество этого подхода заключается в том, что отдельные этапы могут быть автоматизированы для обеспечения согласованности в масштабах всего предприятия, а общая оркестровка может быть изменена в соответствии с процессом, необходимым для этого проекта.
Отдельные средства автоматизации (в некотором роде), такие как Chef для развертывания, Docker через Dockerfile, Maven для сборки и т. Д., Могут быть связаны вместе, вероятно, через Jenkins, чтобы обеспечить требуемое решение, в то же время сокращая время, необходимое для внедрения или использования. ,
Надеюсь, что это поможет добавить какую-то ценность к мыслительному процессу, который у вас уже может быть.
Изменить: Забыл добавить, что я говорил о процессе и инструментах - 2 из 3 аспектов в DevOps. Как уже упоминалось, третий и не менее важный аспект - это люди. Одно из основных различий между этим и автоматизацией, которое я предполагаю, заключается в том, что люди более склонны к более частому освоению автоматизации, чем к DevOps. Я чувствую, что это связано с природой самого DevOps, поскольку автоматизация обычно связана с тем, чтобы им было легче, а они чувствуют, что DevOps меняет то, как им удобно.
Движение DevOps состоит из четырех основных областей, сокращенно называемых CAMS :
Вот оригинальный определяющий пост 2010 года.
В каждой области есть некоторые инструменты, процессы и практики, которые являются общепринятыми, хотя этот предмет не очень хорошо определен для Best Practices, в большинстве случаев есть некоторые Good Practices, которым нужно следовать.
Сама по себе автоматизация является немного более широкой темой, но в контексте DevOps это всего лишь часть того, что рассматривается. Обратите внимание, что мы руководствуемся культурой, хотя многие начинающие практики DevOps часто пропускают ее на свой страх и риск и переходят непосредственно к автоматизации.
Автоматизация и DevOps не связаны. DevOps больше похож на комбинированный инжиниринг, где разработчики сайта или сервиса все являются операторами этого сайта или сервиса. Почему этот роман? По моему опыту, первое, что сделала команда Ops, когда произошло нечто более захватывающее, чем сетевое сообщение, - это позвонило в команду разработчиков. Почему они это сделали? Потому что все, что делала команда Ops, - это отслеживание и ведение списка телефонных номеров разработчиков.
Заметьте, я ничего не сказал об автоматизации.
Автоматизация - это повторение успеха. Если я выполняю шаги a, b и c и процесс X всегда работает, то шаги a, b и c являются хорошими кандидатами для автоматизации. Тогда я могу использовать время для ручного процесса, чтобы делать вещи, которые приносят мне больше денег. Автоматизация успешна, когда все просто. Развертывание новых выпусков, запуск интеграционных тестов, затягивание болта, резервное копирование данных, балансирование кредитов и дебетов и т. Д. - все это отличные кандидаты на автоматизацию, потому что шаги повторяются человеком или роботом.
Примечание . Новым является то, что разработчики также являются операторами. Нет другой группы. Сотрудничество в моем случае было редким. Если в Руководстве по устранению неполадок ничего не было (он же TSG), вам гарантирован телефонный звонок. По моему опыту Ops был первым вызовом в случае экскаватора. Проблемы между службами были вне их рубки.