Wir freuen uns, die Unterstützung für .NET Core for Pulumi bekannt zu geben! Diese Ankündigung bedeutet, dass Sie Ihre Cloud-Infrastruktur - einschließlich aller in Azure enthaltenen Elemente wie Kubernetes, Funktionen, AppService, Virtual Machines, CosmosDB usw. - mithilfe Ihrer bevorzugten .NET-Sprache deklarieren können, einschließlich C #, VB.NET und F #. Dies gibt Ihnen die Möglichkeit, die gesamte Cloud zu nutzen, ohne den Code-Editor mit den bereitgestellten infrastrukturähnlichen Codemethoden verlassen zu müssen.

Die Infrastruktur hat heutzutage an Relevanz gewonnen, da moderne Cloud-Funktionen wie Microservices, Container, Server und Data Warehouses die Architektur Ihrer Anwendung durchdringen. Der Begriff Infrastruktur umfasst alle Cloud-Ressourcen, die Ihre Anwendung benötigt. Moderne Architekturen erfordern ein gründliches Nachdenken bei der Erstellung einer Anwendung. Der Pulumi-Ansatz hilft Infrastrukturentwicklern und Teams, gemeinsam innovative neue Funktionen zu entwickeln, die alle Vorteile der modernen Cloud nutzen.
Pulumi wurde vor etwas mehr als einem Jahr auf den Markt gebracht und erreichte kürzlich eine stabile Marke von 1,0. Nachdem .NET mit Hunderten von Unternehmen zusammengearbeitet hatte, um Cloud-basierte Anwendungen in der Produktion bereitzustellen, wechselte es schnell zu einer der am häufigsten nachgefragten Community-Funktionen von Pulumi. Zumal viele von uns im Pulumi-Team frühe .NET-Experten sind, freuen wir uns, Pulumi heute auf dem .NET Core für Ihre Cloud-Entwicklungsanforderungen verfügbar zu machen.
Was ist Pulumi?
Mit Pulumi können Sie reale Sprachen verwenden, um die Infrastrukturanforderungen Ihrer Anwendung mit einer leistungsstarken Methode auszudrücken, die als "Infrastruktur als Code" bezeichnet wird. Wenn Sie die Infrastruktur als Code verwenden, deklarieren Sie die gewünschte Infrastruktur, und der Mechanismus bietet Ihnen die Möglichkeit, diese zu automatisieren, einfach zu replizieren und zuverlässig genug zu sein, um die Produktionsanforderungen zu erfüllen. Pulumi geht diesen Ansatz noch einen Schritt weiter, indem es reale Sprachen verwendet und moderne Cloud-Infrastruktur-Vorlagen wie Container und serverlose Programme erstklassig und einfach gestaltet.
Mit Pulumi für .NET können Sie:
- Deklarieren Sie die Infrastruktur mit C #, VB.NET oder F #.
- Automatisches Erstellen, Aktualisieren oder Löschen von Cloud-Ressourcen mithilfe des Pulumi-Frameworks als Code-Handler, wodurch manuelle Mausklicks in der Azure-Benutzeroberfläche und benutzerdefinierte Skripts entfernt werden.
- Verwenden Sie Ihre bevorzugten IDEs und Tools, einschließlich Visual Studio und Visual Studio-Code, um Funktionen wie die automatische Vervollständigung, das Refactoring und die Onlinedokumentation auszuführen.
- Erkennen Sie Fehler im Voraus mithilfe von Standard-Compilerfehlern, Roslyn-Parsern und einer infrastrukturspezifischen Richtlinien-Engine für Sicherheit, Compliance und Best Practices.
- Verwenden Sie vorhandene NuGet-Bibliotheken erneut oder verteilen Sie Ihre eigenen, um eine bessere Infrastruktur, Leistung oder nur allgemeine Programmiermuster zu erzielen.
- Führen Sie kontinuierliche, vorhersehbare und zuverlässige Bereitstellungen mit Azure DevOps-Pipelines, GitHub-Aktionen oder einer von mehr als einem Dutzend Integrationen durch.
- Erstellen Sie skalierbare Cloud-Anwendungen mit klassischen Cloud-Infrastrukturtechnologien wie Kubernetes, Docker-Containern und serverlosen Funktionen.
Das kostenlose Open-Source-SDK von Pulumi, das das CLI- und Bibliothekssortiment enthält, bietet diese Funktionen. Pulumi bietet auch erweiterte Funktionen für Teams, die Pulumi in der Produktion einsetzen möchten, wie die Azure ActiveDirectory-Integration für die Authentifizierung und erweiterte Richtlinien.
Beispiel: Eine globale Datenbank mit einer serverlosen Anwendung
Angenommen, wir möchten eine neue Anwendung erstellen, die Azure CosmosDB für die globale Datenverteilung verwendet, um Kunden unabhängig von ihrem Standort eine hohe Leistung zu bieten. Dabei wird eine serverlose C # -Anwendung verwendet, die automatisch mit unserer Datenbank skaliert. In der Regel verwenden wir einige andere Tools zum Aufbau von Infrastrukturen, z. B. JSON, YAML, DSL oder manuelles Zeigen und Klicken in der Azure-Konsole. Dieser Ansatz ist als Ganzes normal, aber beängstigend - er ist komplex, ungenutzt und bedeutet, dass ein Infrastrukturfachmann erforderlich ist, um überhaupt erst an den Start zu gehen.
Pulumis Ansatz besteht darin, Code in unserer bevorzugten .NET-Sprache zu schreiben. Den Rest erledigt das Pulumi-Tool. Mit diesem C # -Code wird beispielsweise eine Azure CosmosDB-Datenbank mithilfe der serverlosen Azure AppService FunctionApp erstellt, die automatisch mit der Datenbank skaliert wird:
using System; using System.Collections.Generic; using Pulumi; using Pulumi.Azure.AppService; using Pulumi.Azure.Core; using Pulumi.Azure.CosmosDB; class Program { static Task<int> Main(string[] args) { return Deployment.RunAsync(() => { var locations = new[] { "WestUS", "WestEurope", "SouthEastAsia" }; var rg = new ResourceGroup("myapp-rg", new ResourceGroupArgs { Location = locations[0], }); var app = new CosmosApp("myapp", new CosmosAppArgs { ResourceGroup = resourceGroup, Locations = locations, DatabaseName = "pricedb", ContainerName = "prices", Factory = (location, db) => { var func = new ArchiveFunctionApp("myapp-func", new ArchiveFunctionAppArgs { Location = location, Archive = new FileArchive("app"), AppSettings = new Dictionary<string, string> { ["COSMOSDB_ENDPOINT"] = db.Endpoint, }, }, ); return func.App.ID; }, }); }); }
Sieh dir Program.cs auf GitHub an
Nachdem Sie diesen Code geschrieben haben, führen Sie CLI Pulumi mit dem Befehl pulumi up aus. Zunächst wird eine Vorschau der zu erstellenden Infrastrukturressourcen angezeigt. Nach der Bestätigung wird Ihre gesamte Anwendung und die erforderliche Infrastruktur in nur wenigen Minuten bereitgestellt.

Wenn Sie später Änderungen vornehmen müssen, bearbeiten Sie einfach Ihr Programm, führen die CLI erneut aus und nehmen die erforderlichen inkrementellen Änderungen vor, um Ihre Infrastruktur entsprechend zu aktualisieren. Ein vollständiger Verlauf Ihrer Bereitstellungen wird aufgezeichnet, sodass Sie leicht sehen können, welche Änderungen vorgenommen wurden.
Warum eignet sich .NET auch hervorragend für die Infrastruktur?
Viele von uns verwenden .NET gern, um ihre Anwendungen zu erstellen. Warum also nicht für IaaS? In der Tat haben wir bereits einige der oben genannten Vorteile aufgeführt. Viele von ihnen sind wahrscheinlich offensichtlich, wenn Sie .NET bereits kennen und lieben, aber lassen Sie uns dies kurz wiederholen.
Mit jeder .NET-Sprache erhalten Sie viele nützliche Funktionen für IaaS:
- Schulung: Sie müssen keine DSL- oder Markup-Vorlagensprachen lernen.
- Ausdruckskraft: Verwenden Sie Schleifen, bedingte Ausdrücke, Mustervergleiche, LINQ, asynchronen Code usw. dynamisch eine Infrastruktur zu erstellen, die den Anforderungen der Zielumgebung entspricht.
- Abstraktion: Verkapseln Sie allgemeine Vorlagen in Klassen und Funktionen, um die Komplexität zu verbergen und das mehrfache Kopieren und Einfügen derselben Vorlage zu vermeiden.
- Freigabe und Wiederverwendung: Stellen Sie eine Verbindung zur Community von Cloud-Anwendungen und Infrastrukturexperten her, indem Sie NuGet-Bibliotheken für Ihr Team oder die internationale Community freigeben und wiederverwenden.
- Produktivität: Verwenden Sie Ihre bevorzugte Entwicklungsumgebung und erhalten Sie Kontoauszug, Go-To-Definition, Live-Fehlerprüfung, Refactoring, statische Analyse und interaktive Dokumentation.
- Projektorganisation: Verwenden Sie gängige Techniken zur Codestrukturierung, z. B. Assemblys und Namespaces, um die Infrastruktur eines oder mehrerer Projekte zu verwalten.
- Anwendungslebenszyklus: Verwenden Sie vorhandene ALM-Systeme und -Methoden zum Verwalten und Bereitstellen Ihrer Infrastrukturprojekte, einschließlich Quellcodeverwaltung, Codeverifizierung, Testen und kontinuierlicher Integration (CI) und Bereitstellung (CD).
Pulumi bietet Zugriff auf das gesamte .NET-Ökosystem. Dies ist eine Selbstverständlichkeit, jedoch nicht in anderen Lösungen, die auf JSON-, YAML-, DSL- oder CLI-Skripts basieren. Der Zugriff auf die vollständige Sprache war erforderlich, um das obige CosmosApp-Beispiel hinzuzufügen. Hierbei handelt es sich um eine benutzerdefinierte Komponente, die intern Klassen, Schleifen, Lambdas und sogar LINQ verwendet. Dieser Ansatz hilft Entwicklern und Betreibern auch dabei, mithilfe eines gemeinsamen Frameworks besser zusammenzuarbeiten. Wenn Sie alle oben genannten Werte addieren, erhalten Sie das Ergebnis schneller und zuverlässiger.
Treten Sie der Community bei und legen Sie los
Wir haben die erste Pulumi-Vorschau für .NET veröffentlicht, einschließlich der Unterstützung aller Azure-Dienste. Um Pulumi auszuprobieren, besuchen Sie die
Pulumi- Homepage
für die .NET-Homepage .
Dort finden Sie einige Installations- und Einstiegsanweisungen für Pulumi für .NET. Die folgenden Ressourcen bieten zusätzliche nützliche Informationen: