← Vissza az Eszközökhöz

Weboldal: https://www.pulumi.com/

Áttekintés

A Pulumi egy Infrastructure as Code (IaC) platform, amely lehetővé teszi a felhő infrastruktúra definiálását, telepítését és kezelését ismert programozási nyelvek használatával, mint a TypeScript, Python, Go, C# és Java, domain-specifikus nyelvek helyett.

Cél

  • Infrastruktúra definiálása valódi programozási nyelvekkel
  • Felhő erőforrások kezelése AWS, Azure, GCP, Kubernetes és más platformokon
  • Terraform, CloudFormation, ARM sablonok helyettesítése vagy kiegészítése
  • Szoftverfejlesztési legjobb gyakorlatok alkalmazása az infrastruktúrára
  • Infrastruktúra telepítések automatizálása CI/CD-vel

Használati esetek

  • Multi-cloud infrastruktúra - Telepítés AWS, Azure, GCP, Kubernetes platformokra egy kódbázisból
  • Infrastruktúra automatizálás - Programozott kontroll a felhő erőforrások felett
  • Kubernetes kezelés - Kubernetes erőforrások definiálása és telepítése
  • Szerver nélküli alkalmazások - Lambda, Cloud Functions, Azure Functions telepítése
  • Konténer orkesztráció - Docker, ECS, AKS, GKE kezelése
  • Adatbázis kiosztás - RDS, CosmosDB, Cloud SQL létrehozása és konfigurálása
  • CI/CD folyamatok - Infrastruktúra telepítések automatizálása
  • Policy as Code - Megfelelőség és irányítás érvényesítése

Főbb funkciók

Programozási nyelvek

  • TypeScript/JavaScript - Népszerű webfejlesztők számára
  • Python - Kiváló adat és ML csapatok számára
  • Go - Nagy teljesítmény és párhuzamosság
  • C#/.NET - Vállalati .NET csapatok
  • Java - JVM ökoszisztéma integráció
  • YAML - Egyszerű deklaratív opció

Felhő szolgáltatók

  • AWS, Azure, Google Cloud
  • Kubernetes, Docker
  • DigitalOcean, Linode, Hetzner
  • Cloudflare, Datadog, GitHub
  • 100+ támogatott szolgáltató

Alapvető képességek

  • Állapot kezelés - Infrastruktúra állapot követése
  • Előnézet/diff - Változások megtekintése alkalmazás előtt
  • Titkosítás kezelés - Titkosított konfiguráció
  • Komponens modell - Újrafelhasználható infrastruktúra komponensek
  • Policy as Code - CrossGuard a megfelelőséghez
  • Tesztelés - Unit és integrációs tesztek az infrastruktúrához
  • Meglévő erőforrások importálása - Meglévő infrastruktúra átvétele

Pulumi vs Terraform

FunkcióPulumiTerraform
NyelvValódi programozási nyelvekHCL (HashiCorp Configuration Language)
LogikaTeljes programozási konstrukciók (ciklusok, feltételek)Korlátozott HCL funkciók
TesztelésStandard tesztelési keretrendszerekTerraform tesztelő eszközök
IDE támogatásTeljes IntelliSense, automatikus kiegészítésHCL-specifikus eszközök
ÁllapotPulumi Service vagy saját kezelésSaját kezelés vagy Terraform Cloud

Árazás

  • Egyéni - Ingyenes egyéni használatra
  • Csapat - Csapat együttműködési funkciók
  • Vállalati - Fejlett biztonság és megfelelőség
  • Saját tárhelyen - Helyszíni állapot backend opció

Példa

// TypeScript példa - AWS S3 bucket telepítése
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
 
const bucket = new aws.s3.Bucket("my-bucket", {
    website: {
        indexDocument: "index.html",
    },
});
 
export const bucketName = bucket.id;
export const websiteUrl = bucket.websiteEndpoint;

Célközönség

  • DevOps mérnökök
  • Felhő építészek
  • Platform mérnökök
  • Szoftverfejlesztők, akik infrastruktúrát kezelnek
  • SRE (Site Reliability Engineering) csapatok
  • Csapatok, amelyek valódi programozási nyelveket szeretnének használni IaC-hez

Miért válaszd a Pulumit?

  • Használj ismert programozási nyelveket új DSL-ek tanulása helyett
  • Használd ki a meglévő IDE eszközöket, tesztelési keretrendszereket és csomagkezelőket
  • Alkalmazd a szoftverfejlesztési legjobb gyakorlatokat az infrastruktúrára
  • Gyorsabb fejlesztés ciklusokkal, függvényekkel és absztrakciókkal
  • Erős típusosság és fordítási idejű ellenőrzés

Kezdő lépések

# Pulumi CLI telepítése
curl -fsSL https://get.pulumi.com | sh
 
# Új projekt létrehozása
pulumi new aws-typescript
 
# Infrastruktúra telepítése
pulumi up

Források