В чем разница между DevOps и автоматизацией?

42

Я вижу, что всякий раз, когда кто-то делает DevOps, речь идет об автоматизации таких вещей, как развертывание и т. Д.

Но где заканчивается автоматизация и начинается DevOps?

розовая пантера
источник
Здравствуйте, @punkpanther, если этот или любой ответ решил ваш вопрос, пожалуйста, примите его , нажав на галочку. Это указывает более широкому сообществу, что вы нашли решение, и дает некоторую репутацию как ответчику, так и вам. Там нет обязательств сделать это. Если вы не чувствуете, что на ваш вопрос ответили, пожалуйста, не стесняйтесь общаться с авторами в комментариях.
Ричард Слейтер
Может быть, лучший вопрос: где заканчивается DevOps и начинается автоматизация? Не все, что делается с DevOps, связано с автоматизацией; большая часть этого, да, но не все ... Можно сказать, что DevOps - это все, кроме автоматизации - это системный администратор, общие стандарты архитектуры, общие стандарты публикации (скажем, GitHub) определенной технологической области ... Где автоматизация в этой конкретной области - хороший вопрос сам по себе, я думаю ...
JohnDoea

Ответы:

45

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

Вот как связаны DevOps и автоматизация. DevOps - это не просто автоматизация, это еще не все. И наоборот, автоматизация не используется исключительно «людьми DevOps». До того, как появился DevOps, в ИТ происходила большая автоматизация.

DevOps в отношении автоматизации

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

Александр
источник
1
Именно то, что я сказал по этому вопросу :)
Tensibai
Почему в DevOps нет «рабочего процесса тикетов»?
Накилон
15

Автоматизация является ключевым атрибутом DevOps, но это еще не все. Вопрос вроде как «В чем разница между боксом времени и Scrum?».

Вы услышите, что DevOps называют «культурой», «движением», «методологией» и тому подобным, что не достаточно хорошо для этого подходит для понимания, даже если эти описания точны. Короче говоря, DevOps - это слияние методологий, автоматизации и виртуализации Agile, которые обеспечивают новый цикл обратной связи в управлении / контроле / управлении программным проектом.

С агрессивной автоматизацией вещи, которые занимают много времени и подвержены человеческим ошибкам, теперь происходят быстро и без происшествий. В результате мы склонны делать их чаще. Основным примером этого является «развертывание в производство». Мы использовали для сохранения больших партий работы и развертывания их в нерабочее время на случай, если «что-то пошло не так». Но теперь мы можем вносить изменения несколько раз в день таким образом, чтобы шансы на «что-то пошло не так» резко сократились, а влияние чего-то пошло не так, когда это произошло.

Как только у нас будет этот повторяющийся процесс, мы начнем рассматривать его как «конвейер». Требования входят, код, развернутый в производство, выходит. Мы автоматизируем все в этом конвейере - тесты, документацию, слияния, развертывания и другие тесты и т. Д. Поскольку люди фокусируются на автоматизации, они не видят «конвейерный менталитет», который привел ее в действие. Это методология управления - внимание, уделяемое конвейеру, - делает DevOps больше, чем автоматизация.

Как только у нас есть эта автоматизация, включаются петли обратной связи. Мы начинаем измерять такие вещи, как время цикла, чтобы мы могли выяснить, что мы пытались угадать с помощью оценок. Вещи об архитектуре, которые усложняют автоматизацию / непрерывную доставку, как правило, заменяются альтернативными архитектурными шаблонами, которые облегчают автоматизацию / непрерывную доставку (несколько замечательных примеров этого документированы в книге «Эволюционные базы данных». «Зеленые / синие развертывания» - это еще один пример). ).

Обратите внимание, что я смог предоставить это описание, не говоря уже о Jenkins, Check, Puppet, Ansible, Vagrant, AWS или любом другом инструменте, который его поддерживает. Это то, что мы подразумеваем под модными словами более высокого уровня, такими как «методология». В конце концов, любой набор инструментов может быть заменен ... То, что нам осталось, это основные принципы управления, обеспечиваемые автоматизацией, и акцент на конвейере.

Дэвид Бок
источник
1
Прошу прощения, но это звучит как Agile манифест больше, чем информация о культуре devops для моих чувств. Методология гибкого / итеративного / короткого цикла, даже если она часто используется, не является обязательной для организации разработчиков. У вас может быть команда разработчиков на проекте водопада, и вы можете автоматизировать доставку в бункере, так что я чувствую, что эти ответы частично решают вопрос.
Тенсибай
2
@ Tensibai Я должен несколько не согласиться - вы не автоматизируете процесс, который выполняется не часто. DevOps без Agile - это все равно что автоматизировать создание суперкара за несколько миллионов долларов.
Дэйв Сверски
Этот ответ невероятно многословен, и трудно выявить различия или плюсы / минусы, связанные с ФП.
Евгений
@ Дэйв, ты упускаешь суть, я, должно быть, не совсем понял, что я имею в виду, что культура Devops - это разрушение силосных команд, автоматизация или короткий цикл не связаны, даже если обычно, я не видел этот важный момент в твоем ответе
Тенсибай
13

DevOps - это действительно культурный сдвиг - он предназначен для преодоления традиционных барьеров между операциями и разработкой (и в действительности также с QA и остальной частью бизнеса!). Идея заключается в том, что вместо «силовых структур» департамента вы можете работать напрямую с другими командами, чтобы выполнять работу быстрее и эффективнее.

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

tayworm
источник
4

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

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

Розалинд Рэдклифф
источник
1

Я хотел бы добавить свои 2 цента:
1) Автоматизация :
     то, к чему мы сегодня должны двигаться. Стало больше необходимости, когда предпочтительным способом было бы автоматизировать детали, если не весь процесс. Такой подход дает пользователям (разработчикам) гибкость в использовании фиксированного шага и возможность настройки по мере необходимости.
     Преимущество этого подхода в том, что мы можем автоматизировать те части, которые нам нужны, в то время как отдельный процесс может быть связан разработчиком. Чем более детализированы этапы автоматизации, тем лучше у них контроль.
     Кроме того, существует множество инструментов для автоматизации в таких областях, как автоматизированная автоматизация, автоматизация SOP (для обслуживания отрасли), автоматизация отчетов (например, Splunk) и т. Д.
2) DevOps:
     Учитывая качество и своевременность доставки, которые ожидаются в текущем мире, необходимо расширить автоматизацию процесса доставки программного обеспечения. Чтобы сделать это максимально быстрым и выгодным для клиента, DevOps активно использует средства автоматизации.
     Преимущество этого подхода заключается в том, что отдельные этапы могут быть автоматизированы для обеспечения согласованности в масштабах всего предприятия, а общая оркестровка может быть изменена в соответствии с процессом, необходимым для этого проекта.
     Отдельные средства автоматизации (в некотором роде), такие как Chef для развертывания, Docker через Dockerfile, Maven для сборки и т. Д., Могут быть связаны вместе, вероятно, через Jenkins, чтобы обеспечить требуемое решение, в то же время сокращая время, необходимое для внедрения или использования. ,
Надеюсь, что это поможет добавить какую-то ценность к мыслительному процессу, который у вас уже может быть.

Изменить: Забыл добавить, что я говорил о процессе и инструментах - 2 из 3 аспектов в DevOps. Как уже упоминалось, третий и не менее важный аспект - это люди. Одно из основных различий между этим и автоматизацией, которое я предполагаю, заключается в том, что люди более склонны к более частому освоению автоматизации, чем к DevOps. Я чувствую, что это связано с природой самого DevOps, поскольку автоматизация обычно связана с тем, чтобы им было легче, а они чувствуют, что DevOps меняет то, как им удобно.

Картик Венкатесан
источник
1

Движение DevOps состоит из четырех основных областей, сокращенно называемых CAMS :

  1. культура
  2. автоматизация
  3. измерение
  4. Sharing

Вот оригинальный определяющий пост 2010 года.

В каждой области есть некоторые инструменты, процессы и практики, которые являются общепринятыми, хотя этот предмет не очень хорошо определен для Best Practices, в большинстве случаев есть некоторые Good Practices, которым нужно следовать.

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

Иржи Клауда
источник
-2

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

Заметьте, я ничего не сказал об автоматизации.

Автоматизация - это повторение успеха. Если я выполняю шаги a, b и c и процесс X всегда работает, то шаги a, b и c являются хорошими кандидатами для автоматизации. Тогда я могу использовать время для ручного процесса, чтобы делать вещи, которые приносят мне больше денег. Автоматизация успешна, когда все просто. Развертывание новых выпусков, запуск интеграционных тестов, затягивание болта, резервное копирование данных, балансирование кредитов и дебетов и т. Д. - все это отличные кандидаты на автоматизацию, потому что шаги повторяются человеком или роботом.

Примечание . Новым является то, что разработчики также являются операторами. Нет другой группы. Сотрудничество в моем случае было редким. Если в Руководстве по устранению неполадок ничего не было (он же TSG), вам гарантирован телефонный звонок. По моему опыту Ops был первым вызовом в случае экскаватора. Проблемы между службами были вне их рубки.

Нет возврата Нет возврата
источник
Но, между прочим, сотрудничество всегда было правильно? Связь между dev и ops, это что-то новое? Что Devops приносит новое?
Розовая пантера
Новым является то, что разработчики также являются операторами. Нет другой группы. Сотрудничество в моем случае было редким. Если в Руководстве по устранению неполадок ничего не было (он же TSG), вам гарантирован телефонный звонок. По моему опыту Ops был первым вызовом в случае экскаватора. Проблемы между службами были вне их рубки.
Нет возврата, нет возврата,
3
Автоматизация и DevOps "не связаны"? С уважением, я не мог не согласиться больше. Непрерывная интеграция, непрерывное развертывание, автоматическое тестирование и многое другое являются неотъемлемой частью технологического компонента DevOps. Без автоматизации DevOps - это всего лишь культура. Культура,
безусловно,
@NoRefundsNoReturns Devs - операторы. В том смысле, что нет необходимости в команде разработчиков?
Pinkpanther
Не стесняйтесь не соглашаться. У нас были тонны автоматизации, когда мы работали как с командой разработчиков, так и с командами операций. Вот почему я говорю, что они не связаны. Автоматизация может меньше заботиться о вашей структуре организации. Если ваши разработчики также являются операторами, очень вероятно, что автоматизация произойдет, потому что большинство разработчиков ленивы и будут склонны автоматизировать повторяющиеся задачи. Я смущен вашим ответом @pinkpanther
Нет возврата, нет возврата,