Pulumi: современный Infrastructure as Code для DevOps
Концепция управления инфраструктурой как кодом необходима в DevOps-средах. Более того, поддерживать эффективный DevOps-пайплайн без неё невозможно. Инструменты infrastructure-as-code, такие как Pulumi, помогают DevOps-командам автоматизировать их схемы предоставления ресурсов в масштабе.
Эта статья познакомит вас с концепцией infrastructure-as-code. Вы также узнаете, почему Pulumi, современный инструмент infrastructure as code, популярен в DevOps-сообществе.
Infrastructure as Code объяснено
Infrastructure-as-Code (IaC) — это процесс автоматизации схем предоставления и управления ресурсами с использованием декларативных языков программирования.
До infrastructure as code (IaC) системным администраторам приходилось вручную конфигурировать, развертывать и управлять серверными ресурсами. Им нужно было конфигурировать bare metal машины перед развертыванием приложений. Ручное управление инфраструктурой вызывало много проблем. Это было дорого, медленно, трудно масштабировать и подвержено человеческим ошибкам.
С появлением облачных вычислений развертывание виртуализированных сред упростилось, но администраторы все равно должны были развертывать среду вручную. Им нужно было входить в веб-дашборд облачного провайдера и кликать кнопки для развертывания желаемых серверных конфигураций.
Однако, когда вам нужно развернуть сотни серверов через множество облачных провайдеров и локаций максимально быстро, ручное выполнение всего непрактично.
IaC позволяет DevOps-командам развертывать и управлять инфраструктурой в масштабе и через множественных провайдеров с простыми инструкциями. Все, что нужно — написать конфигурационный файл и выполнить его для автоматического развертывания желаемых сред. Алгоритмы кода определяют тип необходимой среды, а автоматизация развертывает её.
Что такое Pulumi?
Pulumi — инструмент infrastructure as code с открытым исходным кодом, использующий самые популярные языки программирования для упрощения предоставления и управления облачными ресурсами.
Основанный в 2017 году, Pulumi фундаментально изменил то, как DevOps-команды подходят к концепции infrastructure-as-code. Вместо полагательства на доменно-специфические языки, Pulumi позволяет организациям использовать реальные языки программирования для предоставления и списания cloud-native инфраструктуры.
В отличие от Terraform, у которого свой проприетарный язык и синтаксис для определения инфраструктуры как кода, Pulumi использует реальные языки. Вы можете писать конфигурационные файлы на Python, JavaScript или TypeScript. Другими словами, вас не заставляют учить новый язык программирования только для управления инфраструктурой.
Чтобы увидеть, как Pulumi соотносится с другими похожими решениями, прочитайте нашу статью Pulumi vs Terraform
Как cloud-native платформа, Pulumi позволяет развертывать любой тип облачной инфраструктуры — виртуальные серверы, контейнеры, приложения или бессерверные функции. Вы также можете развертывать и управлять ресурсами через множественных облачных провайдеров, такие как AWS, Microsoft Azure или PNAP Bare Metal Cloud.
Уникальный подход Pulumi к IaC позволяет DevOps-командам управлять своей инфраструктурой как приложением, написанным на их выбранном языке. Используя Pulumi, вы можете воспользоваться функциями, циклами и условиями для создания динамических облачных сред. Pulumi помогает разработчикам создавать повторно используемые компоненты, устраняя хлопоты копирования и вставки тысяч строк кода.
Pulumi поддерживает следующие языки программирования:
● Python
● JavaScript
● Go
● TypeScript
● .NET языки (C#, F#, и VB)
Как работает Pulumi?
Pulumi стал любимым инструментом infrastructure-as-code в DevOps-средах благодаря своей мультиязыковой и мультиоблачной природе. Он предоставляет DevOps-инженерам привычный метод управления ресурсами.
Pulumi делает это через свою облачную объектную модель и рантайм оценки. Он берет вашу программу, написанную на любом языке, выясняет, какие облачные ресурсы вы хотите управлять, и выполняет вашу программу. Все это возможно, потому что он изначально язык-нейтрален и облако-нейтрален.
Три компонента составляют ядро системы Pulumi:
• Language host. Language host запускает вашу Pulumi-программу для создания среды и регистрации ресурсов с движком развертывания.
• Deployment engine. Он запускает многочисленные проверки и вычисления для определения, должно ли он создавать, обновлять, удалять или реплицировать ресурсы.
• Resource providers. Pulumi автоматически скачивает пакеты и плагины в фоновом режиме согласно спецификациям вашего языка и облачного провайдера.
Pulumi позволяет управлять вашей инфраструктурой через веб-приложение или интерфейс командной строки (CLI).
Чтобы начать использовать Pulumi, сначала нужно зарегистрироваться и создать аккаунт. После регистрации нужно указать язык программирования и облачного сервис-провайдера.
Если вы предпочитаете использовать CLI, вам нужно установить его на локальную машину и аутентифицировать с вашим аккаунтом и предоставить секретные учетные данные, которые вы получаете от вашего облачного провайдера.
Для детального объяснения того, как работает Pulumi, взгляните на этот быстрый туториал.
8 особенностей и преимуществ Pulumi
1. Открытый исходный код: Pulumi бесплатен для неограниченного индивидуального использования. Однако, если вы хотите использовать его в команде, вам придется платить небольшую годовую плату.
2. Мультиязычный: Используйте свой любимый язык программирования для написания конфигурационных файлов инфраструктуры. Как язык-нейтральная IaC-платформа, Pulumi не заставляет вас учить новый язык программирования, ни использует доменно-специфические языки. Вам не нужно писать ни строчки YAML-кода с Pulumi.
3. Мультиоблачный: Предоставляйте, масштабируйте и списывайте инфраструктуру и ресурсы через множество облачных сервис-провайдеров. Среди них платформа Bare Metal Cloud phoenixNAP, Google Cloud, AWS, Microsoft Azure.
4. Функционально насыщенный CLI: Движущая сила, делающая Pulumi таким универсальным — его простой, но мощный интерфейс командной строки (CLI). Через CLI развертывание и списание облачной инфраструктуры и серверов проводится набором команд, выпущенных в терминале. Вы можете использовать Pulumi на Linux, Windows и OS X.
5. Облачная объектная модель: Базовая облачная объектная модель предлагает детальный обзор того, как ваши программы построены. Она доставляет унифицированную программную модель, позволяющую управлять облачным ПО где угодно и через любой облачный провайдер.
6. Стеки (Stacks): Стеки — изолированные экземпляры вашей облачной программы, отличающиеся от ваших других программ. С Pulumi вы можете развернуть множество стеков для различных целей. Например, вы можете развернуть и списать staging-стек, testing-стек или production-стек.
7. Повторно используемые компоненты: Нет необходимости копировать и вставлять тысячи строк кода. Pulumi помогает вам следовать лучшим практикам кодирования, позволяя повторно использовать существующий код через разные проекты. Код не определяет просто один экземпляр; он определяет всю архитектуру.
8. Унифицированная архитектура: DevOps-организации могут использовать и повторно использовать компоненты для управления инфраструктурой и построения уникальной архитектуры и политики тестирования. Такая свобода позволяет командам строить внутреннюю платформу.
Заключение
Поддержка Pulumi наиболее популярных языков программирования помогает DevOps оставаться продуктивными без потери времени на управление инфраструктурой. Хотя Pulumi может не быть единственным infrastructure-as-code инструментом, не навязывающим проприетарный язык, он безусловно самый гибкий, потому что он cloud-agnostic.
Вы можете использовать силу Pulumi через множественных облачных провайдеров, пиша конфигурационные файлы на языках, которые вы уже используете для запуска ваших приложений.
Облачные вычисления
- Основы Verilog: проектирование вашего первого И-шлюза
- Носовые зажимы (Toe Clamps): особенности, выгоды и как выбрать правильный
- Infrastructure as Code: преимущества, вызовы и лучшие практики
- Основы и достижения технологии двигателей переменного тока
- Что такое программирование: практическое руководство по языкам, рабочим процессам и частым вызовам
- Что такое сталь A2? Универсальная, стоимоэффективная марка инструментальной стали для промышленности и столя…
- Мастерство редактирования постпроцессоров: профессиональное руководство для точной обработки
- Промышленные насосы: типы, принципы работы и ключевые особенности
- G-коды ЧПУ объяснены: основное руководство для программистов ЧПУ
- Код ТН ВЭД (HS Code) для гидравлических насосов: классификация и применение