Что такое Pulumi и как он меняет ландшафт Cloud DevOps

Инфраструктура как код (IaC) позволяет разработчикам программно настраивать облачную инфраструктуру и управлять ею. На рынке существует множество различных инструментов IaC. Но изучить и освоить такой инструмент непросто.

Поэтому инструмент IaC с минимальной кривой обучения всегда был центральной темой обсуждения.

Почему Пулуми?

Pulumi, инструмент IaC, выпущенный в середине 2018 года, похоже, хорошо решает эту проблему. В результате он быстро становится одним из самых популярных инструментов IaC.

Давайте выясним, почему многие команды DevOps начали выбирать Pulumi в качестве инструмента IaC.

1. Многоязычная поддержка

В отличие от других существующих инструментов, Pulumi поддерживает несколько общих языков программирования, включая Node.js, Go, Python и мой любимый язык TypeScript.

Вы также можете написать модульные тесты и интеграционные тесты в ваших знакомых библиотеках тестирования для тестирования конфигураций вашей инфраструктуры.

Например, мы можем создать новую корзину AWS S3 и присоединить к ней лямбда-функцию в качестве обработчика событий с помощью TypeScript.

import * as aws from “@pulumi/aws”;
// Create a bucket using IaC.
const myBucket = new aws.s3.Bucket(“mybucket”);
// Create an AWS Lambda event handler for the S3 bucket.
myBucket.onObjectCreated(“myBucketHandler”, (e) => {
 // lambda function code goes here.
});

2. Последовательный рост

У него уже 9,5 тысяч звезд на GitHub, и он стабильно растет с увеличением количества загрузок.

3. Щедрый бесплатный план

Если вы хотите опробовать Pulumi, вы можете начать с их уровня бесплатного пользования, которого более чем достаточно для проведения всех ваших экспериментов перед миграцией без каких-либо затрат. Кроме того, это навсегда бесплатно для личного использования, и каждый месяц вы получаете 150 000 бесплатных кредитов, даже если вы используете платный план.

4. Поддержка сухого прогона

Terraform - один из ведущих инструментов IaC, известный своей поддержкой пробного запуска. В Terraform команда terraform plan показывает предварительный просмотр запланированных обновлений стека, чтобы разработчики могли убедиться, что непреднамеренные изменения не развернуты.

Pulumi также поддерживает эту функцию пробного прогона с помощью команды pulumi preview. Кроме того, Pulumi использует провайдеров Terraform, если собственного провайдера не существует.

Поэтому не стоит беспокоиться, если вы переходите на Pulumi с Terraform. Пулуми уже позаботился о вас.

5. Простая миграция с других инструментов IaC

Pulumi упрощает переход с других инструментов IaC. Он имеет преобразователи для следующих типов.

  • Шаблоны ARM (Azure Resource Manager)
  • Kubernetes CustomResourceDefinitions
  • Terraform HCL (язык конфигурации Harshicorp)

Таким образом, мы можем перейти с перечисленных выше типов на язык общего назначения, поддерживаемый Pulumi, по вашему выбору с помощью полуавтоматики.

6. Соглашение важнее конфигурации

В облачной архитектуре есть хорошо зарекомендовавшие себя шаблоны для решения конкретных проблем. Итак, вместо того, чтобы писать IaC для каждого модуля, почему бы не объединить их и не абстрагироваться от сложностей?

Pulumi CrossWalks именно это и делает. Это набор библиотек и передовых практик, которые позволяют нам предоставлять облачную инфраструктуру с помощью нескольких строк кода. Кроме того, это гарантирует, что мы следуем лучшим отраслевым практикам, обеспечивая максимальную эффективность и безопасность.

Использование Pulumi на практике

Давайте посмотрим, как мы можем использовать Pulumi с AWS. Следующий код подготавливает экземпляр t2.micro AWS EC2 с указанными правилами безопасности.

Затем вы также можете писать модульные тесты с любой платформой тестирования, которую вы предпочитаете. Здесь я использовал Mocha для демонстрации.

Создавайте приложения иначе

Инструменты OSS, такие как Bit, предлагают новую парадигму для создания современных приложений.

Вместо того чтобы разрабатывать монолитные проекты, вы сначала создаете независимые компоненты. Затем вы собираете свои компоненты вместе, чтобы создать столько приложений, сколько захотите. Это не только более быстрый способ сборки, но и более масштабируемый, он помогает стандартизировать разработку.

Это весело, попробуй →

Заключение

Pulumi набирает популярность благодаря поддержке нескольких языков программирования, включая TypeScript.

Поэтому изучить и адаптироваться к нему намного проще, чем к любому другому инструменту IaC.

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

Всем спасибо за чтение !!!

Учить больше