Инфраструктура как код

Метод управления центром обработки данных

Инфраструктура как код ( IaC ) — это процесс управления и предоставления ресурсов компьютерного центра обработки данных с помощью машиночитаемых файлов определений, а не физической конфигурации оборудования или интерактивных инструментов конфигурации. [1] ИТ -инфраструктура, управляемая этим процессом, включает как физическое оборудование, такое как серверы без ОС , так и виртуальные машины , а также связанные с ними ресурсы конфигурации. Определения могут находиться в системе контроля версий , а не поддерживать код с помощью ручных процессов. Код в файлах определений может использовать либо скрипты, либо декларативные определения, но IaC чаще использует декларативные подходы.

Обзор

IaC развился в ответ на трудности, вызванные утилитарными вычислениями и веб-фреймворками второго поколения. В 2006 году запуск Amazon Web Services Elastic Compute Cloud и версии Ruby on Rails 1.0 всего за несколько месяцев до этого [2] создал широко распространенные трудности масштабирования на предприятии, которые ранее испытывали только крупные многонациональные компании. [3] С появлением новых инструментов для работы в этой постоянно растущей области родилась идея IaC. Мысль о моделировании инфраструктуры с помощью кода, а затем о возможности проектирования, внедрения и развертывания инфраструктуры приложений с использованием известных передовых методов программного обеспечения привлекла как разработчиков программного обеспечения, так и администраторов ИТ-инфраструктуры. Возможность рассматривать инфраструктуру как код и использовать те же инструменты, что и любой другой программный проект, позволила бы разработчикам быстро развертывать приложения. [4]

Преимущества

Ценность IaC можно разделить на три измеримые категории: стоимость, скорость и риск. [ требуется цитата ] Сокращение затрат направлено на помощь предприятию не только в финансовом отношении, но и в плане людей и усилий, что означает, что, устраняя ручной компонент, люди могут перенаправить свои усилия на другие корпоративные задачи. [ требуется цитата ] Автоматизация инфраструктуры обеспечивает скорость за счет более быстрого выполнения при настройке вашей инфраструктуры и направлена ​​на обеспечение видимости, чтобы помочь другим командам на предприятии работать быстрее и эффективнее. Автоматизация устраняет риск, связанный с человеческими ошибками, такими как ручная неправильная настройка; устранение этого может сократить время простоя и повысить надежность. Эти результаты и атрибуты помогают предприятию двигаться к внедрению культуры DevOps , объединенной работы разработки и эксплуатации . [5]

Типы подходов

В целом существует два подхода к IaC: декларативный (функциональный) и императивный (процедурный). Разница между декларативным и императивным подходом по сути заключается в «что» и «как» .Декларативный подход фокусируется на том, какой должна быть конечная целевая конфигурация;Императив фокусируется на том, как должна быть изменена инфраструктура , чтобы соответствовать этому. [6] Декларативный подход определяет желаемое состояние, а система выполняет то, что должно произойти для достижения этого желаемого состояния. Императив определяет конкретные команды, которые должны быть выполнены в соответствующем порядке, чтобы завершиться желаемым выводом. [7]

Методы

Infrastructure as Code (IaC) позволяет управлять серверами и их конфигурациями с помощью кода. Существует два способа отправки этих конфигураций на серверы: методы « push » и « pull ». В методе «push» система, управляющая конфигурацией, напрямую отправляет инструкции серверу. В методе «pull» сервер получает свои собственные инструкции от управляющей системы. [8]

Инструменты

Существует множество инструментов, которые реализуют возможности автоматизации инфраструктуры и используют IaC. В широком смысле, любой фреймворк или инструмент, который выполняет изменения или настраивает инфраструктуру декларативно или императивно на основе программного подхода, можно считать IaC. [9] Традиционно для достижения IaC использовались инструменты автоматизации (жизненного цикла) сервера и управления конфигурацией . Теперь предприятия также используют инструменты непрерывной автоматизации конфигурации или автономные фреймворки IaC, такие как Microsoft PowerShell DSC [10] или AWS CloudFormation . [11]

Непрерывная автоматизация конфигурации

Все инструменты непрерывной автоматизации конфигурации (CCA) можно рассматривать как расширение традиционных фреймворков IaC. Они используют IaC для изменения, настройки и автоматизации инфраструктуры, а также обеспечивают видимость, эффективность и гибкость в управлении инфраструктурой. [3] Эти дополнительные атрибуты обеспечивают безопасность и соответствие требованиям на уровне предприятия.

Содержимое сообщества

Содержимое сообщества является ключевым фактором, определяющим качество инструмента CCA с открытым исходным кодом. Как утверждает Gartner , ценность инструментов CCA «зависит как от контента и поддержки, предоставляемых сообществом пользователей, так и от коммерческой зрелости и производительности инструментов автоматизации». [3] Такие известные поставщики, как Puppet и Chef, создали свои собственные сообщества. У Chef есть Chef Community Repository , а у Puppet — PuppetForge . [12] Другие поставщики полагаются на смежные сообщества и используют другие фреймворки IaC, такие как PowerShell DSC. [10] Появляются новые поставщики, которые не ориентированы на контент, а на модели с интеллектом в продукте для доставки контента. Эти визуальные, объектно-ориентированные системы хорошо работают для разработчиков, но они особенно полезны для ориентированных на производство DevOps и операционных компонентов, которые ценят модели, а не скрипты для контента. По мере того, как эта область продолжает развиваться и меняться, контент на основе сообщества будет становиться все более важным для того, как используются инструменты IaC, если только они не ориентированы на модели и не являются объектно-ориентированными.

Известные инструменты CCA включают в себя:

ИнструментВыпущеноМетодПодходНаписано вКомментарии
CFEngineСеверный.тех (1993)ТянутьДекларативныйС-
КукольныйМарионетка (2005)Толкай и тяниДекларативный и императивныйC++ и Clojure с версии 4.0, Ruby-
Шеф-поварШеф-повар (2009)ТянутьДекларативный и императивныйРубин-
SaltStackСоляной Стек (2011)Толкай и тяниДекларативный и императивныйПитон-
Ansible / Башня AnsibleКрасная Шапочка (2012)Толкай и тяниДекларативный и императивныйПитон-
ТерраформироватьHashiCorp (2014)ТолкатьДекларативный и императивныйИдти-
ВыдраИнедо (2015)ТолкатьДекларативный и императивный-Windows-ориентированный
ПулумиПулуми (2018)ТолкатьДекларативный и императивныйИдти

Другие инструменты включают AWS CloudFormation , cdist , StackStorm , Juju и Step CI.

Отношения

Связь с DevOps

IaC может быть ключевым атрибутом внедрения лучших практик в DevOps . Разработчики становятся более вовлеченными в определение конфигурации, а команды Ops вовлекаются в процесс разработки на более раннем этапе. [13] Инструменты, которые используют IaC, обеспечивают видимость состояния и конфигурации серверов и в конечном итоге предоставляют видимость пользователям на предприятии, стремясь объединить команды для максимизации их усилий. [14] Автоматизация в целом направлена ​​на устранение путаницы и подверженности ошибкам аспектов ручных процессов и на то, чтобы сделать их более эффективными и производительными. Позволяет создавать лучшее программное обеспечение и приложения с гибкостью, меньшим временем простоя и в целом экономически эффективным способом для компании. IaC предназначен для снижения сложности, которая убивает эффективность ручной конфигурации. Автоматизация и сотрудничество считаются центральными точками в DevOps; инструменты автоматизации инфраструктуры часто включаются в качестве компонентов инструментальной цепочки DevOps . [15]

Отношение к безопасности

В отчете об угрозах в облаке за 2020 год, опубликованном Unit 42 (подразделением по анализу угроз поставщика услуг кибербезопасности Palo Alto Networks ), было выявлено около 200 000 потенциальных уязвимостей в инфраструктуре в виде шаблонов кода. [16]

Смотрите также

Ссылки

  1. ^ Виттиг, Андреас; Виттиг, Майкл (2016). Amazon Web Services в действии . Manning Press. стр. 93. ISBN 978-1-61729-288-0.
  2. ^ Боуэр, Джозеф Л.; Кристенсен, Клейтон М. «Прорывные технологии: ловля волны». Harvard Business Review .
  3. ^ abc Флетчер, Колин; Косгроув, Терренс (26 августа 2015 г.). Инновационный анализ инструментов автоматизации непрерывной конфигурации. Gartner (отчет).[ мертвая ссылка ]
  4. ^ Райли, Крис (12 ноября 2015 г.). «Версия вашей инфраструктуры». DevOps.com .
  5. ^ Филлипс, Эндрю (14 мая 2015 г.). «Переход от автоматизации инфраструктуры к настоящему DevOps». DevOps.com .
  6. ^ «Декларативные и императивные модели управления конфигурацией: что на самом деле лучше?». Scriptrock.com . Архивировано из оригинала 31 марта 2015 г. Получено 14 декабря 2015 г.
  7. ^ Лошвиц, Мартин (14 ноября 2014 г.). «Выбор между ведущими менеджерами конфигурации с открытым исходным кодом». Администрирование сетей и безопасности . Лоуренс, Канзас, США: Linux New Media USA LLC.
  8. ^ Венеция, Пол (21 ноября 2013 г.). «Puppet vs. Chef vs. Ansible vs. Salt». Network World . Network World. Архивировано из оригинала 18 июля 2018 г. . Получено 14 декабря 2015 г. .
  9. ^ Garner Market Trends: DevOps — не рынок, а инструментально-ориентированная философия, которая поддерживает непрерывную цепочку создания стоимости (отчет). Gartner. 18 февраля 2015 г.
  10. ^ ab Chaganti, Ravikanth (5 января 2016 г.). "DevOps, инфраструктура как код и PowerShell DSC: введение". PowerShell Magazine . PowerShell Magazine . Получено 11 января 2016 г. .
  11. ^ «Представляем AWS CloudFormation».
  12. Sturgeon, Phil (28 октября 2012 г.). «Puppet or Chef?». Архивировано из оригинала 1 февраля 2016 г. Получено 29 января 2016 г.
  13. ^ Рамос, Мартин (4 ноября 2015 г.). «Непрерывная интеграция: инфраструктура как код в DevOps». easydynamics.com . Архивировано из оригинала 6 февраля 2016 г. Получено 29 января 2016 г.
  14. ^ Инфраструктура как код: разжигание огня для более быстрой доставки приложений (отчет). Forrester. Март 2015 г.
  15. ^ Вюрстер, Лори Ф.; Колвилл, Ронни Дж.; Хайт, Кэмерон; Трипати, Сомендра; Растоги, Адити. Анализ новых технологий: DevOps — это сдвиг культуры, а не технология (отчет). Gartner.
  16. ^ «Отчет об угрозах в облаке показывает необходимость согласованной DevSecOps». InformationWeek . 13 февраля 2020 г. Получено 24 февраля 2020 г.

Получено с "https://en.wikipedia.org/w/index.php?title=Инфраструктура_как_код&oldid=1251380584"