Инфраструктура как Code SDK от Pulumi — это самый простой способ создания и развертывания инфраструктуры любой архитектуры и в любом облаке с использованием языков программирования, которые вы уже знаете и любите. Ускорьте кодирование и поставку инфраструктуры с помощью любимых языков и инструментов, а также внедряйте IaC где угодно с помощью API автоматизации.
Просто напишите код на своем любимом языке, и Pulumi автоматически выделяет и управляет вашими ресурсами на AWS, Azure, Google Cloud Platform, Kubernetes и более чем у 120 поставщиков, используя подход «инфраструктура как код». Пропустите YAML и используйте стандартные функции языка, такие как циклы, функции, классы и управление пакетами, которые вы уже знаете и любите.
Например, создайте три веб-сервера:
const aws = require("@pulumi/aws");const sg = new aws.ec2.SecurityGroup("web-sg", {ingress: [{ протокол: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }],});for (let i = 0; i < 3; i++) {new aws.ec2.Instance(`web-${i}`, {ami: "ami -7172b611",instanceType: "t2.micro",vpcSecurityGroupIds: [sg.id],userData: `#!/bin/bash echo "Hello, World!" > index.html nohup python -m SimpleHTTPServer 80 &`,} );}
Или простой бессерверный таймер, который архивирует Hacker News каждый день в 8:30 утра:
const aws = require("@pulumi/aws");const snapshots = new aws.dynamodb.Table("snapshots", {attributes: [{ name: "id", type: "S", }],hashKey: " id", billingMode: "PAY_PER_REQUEST",});aws.cloudwatch.onSchedule("daily-yc-snapshot", "cron(30 8 * * ? *)", () => {require("https"). get("https://news.ycombinator.com", res => {let content = "";res.setEncoding("utf8");res.on("data", chunk => content += chunk); res.on("end", () => new aws.sdk.DynamoDB.DocumentClient().put({TableName: snapshots.name.get(),Item: { date: Date.now(), content }, }).promise());}).end();});
В pulumi/examples доступно множество примеров, охватывающих контейнеры, бессерверные системы и инфраструктуру.
Pulumi имеет открытый исходный код под лицензией Apache 2.0, поддерживает множество языков и облаков и легко расширяется. Этот репозиторий содержит CLI pulumi
, языковые SDK и основной движок Pulumi, а отдельные библиотеки находятся в своих собственных репозиториях.
Начало работы с Pulumi : разверните простое приложение в AWS, Azure, Google Cloud или Kubernetes с помощью Pulumi.
Обучение : Следуйте путям обучения Pulumi, чтобы изучить лучшие практики и архитектурные модели на подлинных примерах.
Примеры . Просмотрите несколько примеров на разных языках, в облаках и сценариях, включая контейнеры, бессерверные технологии и инфраструктуру.
Документы : узнайте о концепциях Pulumi, следуйте руководствам пользователя и ознакомьтесь со справочной документацией.
Реестр : найдите пакет Pulumi с необходимыми вам ресурсами. Установите пакет непосредственно в свой проект, просмотрите документацию API и начните сборку.
Pulumi ESC : Централизованное управление секретами и оркестровка. Надежно контролируйте разрастание секретов и сложность конфигурации во всей вашей облачной инфраструктуре и приложениях.
Дорожная карта Пулуми : просмотрите запланированную работу на предстоящий квартал и избранный список невыполненных задач, которые у нас на уме, но еще не запланированы.
Slack сообщества : присоединяйтесь к нам в Slack сообщества Pulumi. Все разговоры и вопросы приветствуются.
Обсуждения на GitHub : задавайте вопросы или делитесь тем, что вы создаете с помощью Pulumi.
Ознакомьтесь с руководством по началу работы, чтобы быстро начать работу с Pulumi на вашей платформе и в облаке по вашему выбору.
В противном случае следующие шаги продемонстрируют, как развернуть вашу первую программу Pulumi с помощью AWS Serverless Lambdas за считанные минуты:
Установить :
Чтобы установить последнюю версию Pulumi, выполните следующую команду (дополнительные параметры установки см. в полных инструкциях по установке):
$ curl -fsSL https://get.pulumi.com/ | ш
Создать проект :
После установки вы можете начать работу с pulumi new
:
$ mkdir пулуми-демо && cd пулуми-демо $ pulumi новый hello-aws-javascript
new
команда предлагает шаблоны для всех языков и облаков. Запустите его без аргументов, и он предложит вам доступные проекты. Эта команда создала проект AWS Serverless Lambda, написанный на JavaScript.
Развертывание в облаке :
Запустите pulumi up
чтобы перенести свой код в облако:
$ пулуми вверх
Это делает все облачные ресурсы необходимыми для запуска вашего кода. Просто внесите изменения в свой проект, и последующие pulumi up
рассчитают минимальную разницу для внедрения ваших изменений.
Используйте свою программу :
Теперь, когда ваш код развернут, вы можете с ним взаимодействовать. В приведенном выше примере мы можем свернуть конечную точку:
$ curl $(выходной URL-адрес стека пулуми)
Доступ к журналам :
Если вы используете контейнеры или функции, унифицированная команда ведения журналов Pulumi покажет все ваши журналы:
$ пулуми журналы -f
Уничтожьте ваши ресурсы :
После завершения вы можете удалить все ресурсы, созданные вашей программой:
$ пулуми уничтожить -y
Чтобы узнать больше, посетите pulumi.com, где вы найдете гораздо больше информации, включая учебные пособия, примеры и подробную информацию об основных концепциях Pulumi CLI и модели программирования.
Pulumi CLI v1 и v2 больше не поддерживаются. Если вы еще не используете версию 3, рассмотрите возможность перехода на версию 3, чтобы и дальше получать новейшие и лучшие возможности Pulumi! ?
Чтобы перейти с версии 2 на версию 3, ознакомьтесь с нашим Руководством по миграции на версию 3.
Посетите реестр, чтобы просмотреть полный список поддерживаемых поставщиков облачных услуг и инфраструктуры.
Посетите CONTRIBUTING.md для получения информации о создании Pulumi из исходного кода или о внесении улучшений.