Инфраструктура как код - Infrastructure as code
Эта статья содержит контент, который написан как Реклама.Март 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Инфраструктура как код (IaC) - это процесс управления и обеспечения компьютера дата-центры через машиночитаемые файлы определений, а не через физическую конфигурацию оборудования или интерактивные инструменты конфигурации.[1]В ИТ-инфраструктура управляемый этим процессом, включает в себя как физическое оборудование, такое как голые серверы, а также виртуальные машины, и связанные ресурсы конфигурации. Определения могут быть в система контроля версий. Он может использовать сценарии или декларативные определения, а не ручные процессы, но этот термин чаще используется для продвижения декларативный подходы.
Обзор
IaC вырос в ответ на трудности, связанные с служебные вычисления и веб-фреймворки второго поколения. В 2006 году запуск Веб-сервисы Amazon ’ Эластичное вычислительное облако и версия 1.0 Рубин на рельсах всего за несколько месяцев до[2] создавал на предприятии широко распространенные проблемы масштабирования, которые ранее возникали только в крупных многонациональных компаниях.[3] Идея IaC родилась с появлением новых инструментов для работы в этой постоянно растущей области. Мысль о моделировании инфраструктуры с помощью кода, а затем о возможности проектирования, реализации и развертывания инфраструктуры приложений с использованием известных передовых методов работы с программным обеспечением привлекла как разработчиков программного обеспечения, так и администраторов ИТ-инфраструктуры. Возможность обрабатывать инфраструктуру как код и использовать те же инструменты, что и любой другой программный проект, позволит разработчикам быстро развертывать приложения.[4]
Добавленная стоимость и преимущества
Ценность IaC можно разделить на три измеримые категории: стоимость, скорость и риск.[нужна цитата ] Снижение затрат направлено на то, чтобы помочь предприятию не только финансово, но и с точки зрения людей и усилий, а это означает, что, удалив ручной компонент, люди могут переориентировать свои усилия на другие задачи предприятия.[нужна цитата ] Автоматизация инфраструктуры обеспечивает ускорение за счет более быстрого выполнения при настройке инфраструктуры и нацелена на обеспечение прозрачности, чтобы помочь другим командам в рамках предприятия работать быстрее и эффективнее. Автоматизация устраняет риск, связанный с человеческой ошибкой, такой как неправильная настройка вручную; удаление этого может сократить время простоя и повысить надежность. Эти результаты и атрибуты помогают предприятию продвигаться к внедрению культуры DevOps, комбинированная работа разработка и операции.[5]
Типы подходов
Обычно есть два подхода к IaC: декларативный (функциональный) vs. императив (процедурный). Разница между декларативным и императивным подходами по сути 'Какие' против 'как' . Декларативный подход фокусируется на том, какой должна быть конечная целевая конфигурация; то императив сосредотачивается на том, как инфраструктура должна быть изменена, чтобы соответствовать этому.[6] Декларативный подход определяет желаемое состояние, и система выполняет то, что должно произойти для достижения этого желаемого состояния. Императив определяет конкретные команды, которые необходимо выполнить в соответствующем порядке, чтобы получить желаемый результат. [7]
Методы
Есть два метода IaC: 'толкать ' и 'тянуть ' . Основное различие заключается в способе настройки серверов. В методе извлечения настраиваемый сервер извлекает свою конфигурацию с управляющего сервера. В методе push управляющий сервер отправляет конфигурацию в целевую систему.[8]
Инструменты
Есть много инструментов, которые реализуют возможности автоматизации инфраструктуры и используют IaC. В общих чертах, любой фреймворк или инструмент, который выполняет изменения или конфигурирует инфраструктуру декларативно или императивно на основе программного подхода, можно рассматривать как IaC.[9] Традиционно для реализации IaC использовались средства автоматизации сервера (жизненного цикла) и управления конфигурацией. Теперь предприятия также используют инструменты автоматизации непрерывной настройки или автономные инфраструктуры IaC, такие как Microsoft PowerShell DSC.[10] или же AWS CloudFormation.[11]
Автоматизация непрерывной настройки
Все автоматизация непрерывной конфигурации (CCA) инструменты можно рассматривать как расширение традиционных фреймворков IaC. Они используют IaC для изменения, настройки и автоматизации инфраструктуры, а также обеспечивают прозрачность, эффективность и гибкость в управлении инфраструктурой.[3] Эти дополнительные атрибуты обеспечивают безопасность и соответствие требованиям на уровне предприятия.
Контент сообщества
Важным аспектом при рассмотрении инструментов CCA, если они имеют открытый исходный код, является контент сообщества. В качестве Gartner утверждает, что ценность инструментов CCA «зависит от контента и поддержки, предоставляемых сообществом пользователей, так же как и от коммерческой зрелости и производительности инструментов автоматизации».[3] Продавцы любят Кукольный и Повар, те, кто существует довольно долго, создали свои собственные сообщества. Шеф-повар Репозиторий сообщества Chef и Puppet имеет PuppetForge.[12] Другие поставщики полагаются на соседние сообщества и используют другие инфраструктуры IaC, такие как PowerShell DSC.[10] Появляются новые поставщики, которые ориентируются не на контент, а на модели, использующие интеллектуальные возможности продукта для доставки контента. Эти визуальные объектно-ориентированные системы хорошо работают для разработчиков, но они особенно полезны для производственно-ориентированных DevOps и компонентов операций, которые ценят модели, а не сценарии для контента. По мере того, как область продолжает развиваться и меняться, контент на основе сообщества будет становиться все более важным для того, как используются инструменты IaC, если только они не ориентированы на модели и не ориентированы на объекты.
Известные инструменты CCA включают:
Инструмент | Выпущено | Метод | Подход | Написано в | Комментарии |
---|---|---|---|---|---|
Повар | Повар (2009) | Тянуть | Декларативный и императивный | Рубин | - |
Выдра | Инедо | Толкать | Декларативный и императивный | - | Ориентированный на Windows |
Кукольный | Марионетка (2005) | Тянуть | Декларативный и императивный | C ++ & Clojure с 4.0, Рубин | - |
SaltStack | SaltStack | Толкай и тяни | Декларативный и императивный | Python | - |
CFEngine | Northern.tech | Тянуть | Декларативная | C | - |
Terraform | HashiCorp (2014) | Толкать | Декларативная | Идти | - |
Ansible / Ансибл Тауэр | Красная шляпа (2012) | Толкать | Декларативный и императивный | Python | - |
Другие инструменты включают AWS CloudFormation, cdist, StackStorm, Жужу, и Pulumi.
Отношение к DevOps
IaC может быть ключевым атрибутом внедрения передовых практик в DevOps - Разработчики более активно участвуют в определении конфигурации, а оперативные группы раньше вовлекаются в процесс разработки.[13] Инструменты, использующие IaC, обеспечивают видимость состояния и конфигурации серверов и, в конечном итоге, обеспечивают видимость для пользователей внутри предприятия, стремясь объединить команды для максимизации их усилий.[14] Автоматизация в целом направлена на устранение путаницы и подверженности ошибкам аспектов ручных процессов, чтобы сделать их более эффективными и продуктивными. Обеспечение гибкости создания более совершенного программного обеспечения и приложений с меньшим временем простоя и в целом рентабельным способом для компании. IaC предназначен для уменьшения сложности, которая снижает эффективность ручной настройки. Автоматизация и совместная работа считаются центральными элементами DevOps; Инструменты автоматизации инфраструктуры часто входят в состав Набор инструментов DevOps.[15]
Отношение к безопасности
Отчет об угрозах в облаке за 2020 год, выпущенный Unit 42 (подразделение анализа угроз поставщика кибербезопасности). Palo Alto Networks ) выявил около 200 000 потенциальных уязвимостей в инфраструктуре в виде шаблонов кода.[16]
Смотрите также
Рекомендации
- ^ Виттиг, Андреас; Виттиг, Майкл (2016). Amazon Web Services в действии. Manning Press. п. 93. ISBN 978-1-61729-288-0.
- ^ Бауэр, Джозеф Л .; Кристенсен, Клейтон М. "Подрывные технологии: ловя волну". Harvard Business Review.
- ^ а б c Флетчер, Колин; Косгроув, Терренс (26 августа 2015 г.). Инновации в средствах автоматизации непрерывного конфигурирования. Gartner (Отчет).
- ^ Райли, Крис (12 ноября 2015 г.). "Версия вашей инфраструктуры". DevOps.com.
- ^ Филлипс, Эндрю (14 мая 2015 г.). «Переход от автоматизации инфраструктуры к истинному DevOps». DevOps.com.
- ^ «Декларативные против императивных моделей управления конфигурацией: что на самом деле лучше?». Scriptrock.com. Получено 14 декабря 2015.
- ^ Лошвиц, Мартин (14 ноября 2014 г.). «Выбор между ведущими менеджерами конфигурации с открытым исходным кодом». Сеть администрирования и безопасность. Лоуренс, Канзас США: Linux New Media USA LLC.
- ^ Венеция, Пол (21 ноября 2013 г.). «Марионетка против шеф-повара против Ансибля против соли». networkworld.com. Сетевой мир. Получено 14 декабря 2015.
- ^ Тенденции рынка Garner: DevOps - не рынок, а философия, ориентированная на инструменты, которая поддерживает цепочку создания стоимости непрерывной доставки (отчет). Gartner. 18 февраля 2015 г.
- ^ а б Чаганти, Равикантх (5 января 2016 г.). «DevOps, инфраструктура как код и PowerShell DSC: введение». Журнал PowerShell. Журнал PowerShell. Получено 11 января 2016.
- ^ https://aws.amazon.com/about-aws/whats-new/2011/02/25/introduction-aws-cloudformation/
- ^ Осетр, Фил (28 октября 2012 г.). "Марионетка или повар?".
- ^ Рамос, Мартин (4 ноября 2015 г.). «Непрерывная интеграция: инфраструктура как код в DevOps». easydynamics.com. Архивировано из оригинал 6 февраля 2016 г.. Получено 29 января 2016.
- ^ Инфраструктура как код: разжигание огня для более быстрой доставки приложений (отчет). Форрестер. Март 2015 г.
- ^ Wurster, Laurie F .; Колвилл, Ронни Дж .; Рост, Кэмерон; Трипати, Сомендра; Растоги, Адити. Анализ новых технологий: DevOps - это культурный сдвиг, а не технология (отчет). Gartner.
- ^ «Отчет об облачных угрозах указывает на необходимость последовательной разработки DevSecOps». Информационная неделя. Получено 24 февраля 2020.