Wir freuen uns, die .NET Core-Unterstützung für Pulumi bekannt zu geben! Diese Ankündigung bedeutet, dass Sie die Cloud-Infrastruktur - einschließlich aller Azure-Komponenten wie Kubernetes, Funktionen, AppService, Virtual Machines, CosmosDB usw. - mit Ihrer bevorzugten .NET-Sprache deklarieren können, einschließlich C #, VB.NET und F #. So haben Sie die gesamte Cloud immer zur Hand, ohne den Code-Editor verlassen zu müssen, und können produktionsbereite "Infrastruktur als Code" -Techniken verwenden.

Die Infrastruktur hat heutzutage an Relevanz gewonnen, da moderne Cloud-Funktionen wie Microservices, Container, Serverless und Datenspeicher die Architektur Ihrer Anwendung durchdringen. Der Begriff "Infrastruktur" umfasst alle Cloud-Ressourcen, die Ihre Anwendung zum Ausführen benötigt. Moderne Architekturen erfordern ein intensives Nachdenken über die Infrastruktur beim Erstellen Ihrer Anwendung, anstatt erst danach zu warten. Mit dem Ansatz von Pulumi können Entwickler und Infrastruktur-Teams zusammenarbeiten, um innovative neue Funktionen bereitzustellen, die alles nutzen, was die moderne Cloud zu bieten hat.
Pulumi startete vor etwas mehr als einem Jahr und erreichte kürzlich einen stabilen Meilenstein von 1,0. Nachdem .NET mit Hunderten von Unternehmen zusammengearbeitet hat, um Cloud-Anwendungen in Produktion zu bringen, ist es schnell zu einer der am häufigsten von der Community gewünschten Funktionen von Pulumi aufgestiegen. Vor allem, weil viele von uns im Pulumi-Team .NET-Experten sind, sind wir heute begeistert, Pulumi für Ihre Cloud-Engineering-Anforderungen auf .NET Core verfügbar zu machen.
Was ist Pulumi?
Mit Pulumi können Sie mithilfe realer Sprachen die Infrastrukturanforderungen Ihrer Anwendung ausdrücken. Dabei wird eine leistungsstarke Technik namens "Infrastruktur als Code" verwendet. Wenn Sie Infrastruktur als Code verwenden, deklarieren Sie die gewünschte Infrastruktur und eine Engine stellt sie für Sie bereit, sodass sie automatisiert und einfach zu replizieren ist und robust genug für anspruchsvolle Produktionsanforderungen. Pulumi geht mit diesem Ansatz noch einen Schritt weiter, indem es reale Sprachen nutzt und moderne Cloud-Infrastrukturmuster 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 der Pulumi-Infrastruktur als Code-Engine, ohne manuelles Zeigen und Klicken in der Azure-Benutzeroberfläche und in Ad-hoc-Skripten.
- Verwenden Sie Ihre bevorzugten IDEs und Tools, einschließlich Visual Studio und Visual Studio Code, und nutzen Sie Funktionen wie die automatische Vervollständigung, das Refactoring und die interaktive Dokumentation.
- Beheben Sie Fehler frühzeitig mit Standard-Compilerfehlern, Roslyn-Analysegeräten und einer infrastrukturspezifischen Richtlinien-Engine zur Durchsetzung von Sicherheit, Compliance und Best Practices.
- Sie können jede vorhandene NuGet-Bibliothek wiederverwenden oder Ihre eigene verteilen, unabhängig davon, ob es sich um Best Practices für die Infrastruktur, Produktivität oder nur um allgemeine Programmiermuster handelt.
- Kontinuierliche, vorhersehbare und zuverlässige Bereitstellung mithilfe von Azure DevOps-Pipelines, GitHub-Aktionen oder einer von über einem Dutzend Integrationen.
- Erstellen Sie skalierbare Cloud-Anwendungen mit klassischen Cloud-nativen Infrastrukturtechnologien wie Kubernetes, Docker-Containern, serverlosen Funktionen und hochskalierbaren Datenbanken wie CosmosDB und bringen Sie diese Ihrem Anwendungscode näher.
Das kostenlose Open-Source-SDK von Pulumi, das eine CLI und eine Reihe von Bibliotheken enthält, ermöglicht diese Funktionen. Pulumi bietet auch Premium-Funktionen für Teams, die Pulumi in der Produktion einsetzen möchten, z. B. die Azure Active Directory-Integration für Identitäts- und erweiterte Richtlinien.
Ein Beispiel: Globale Datenbank mit serverloser App
Angenommen, wir möchten eine neue Anwendung erstellen, die Azure CosmosDB für die globale Verteilung von Daten verwendet, sodass die Leistung für Kunden unabhängig von ihrem Standort in der Welt hervorragend ist. Eine C # -Anwendung ohne Server wird automatisch zusammen mit unserer Datenbank skaliert. Normalerweise verwenden wir einige andere Tools zum Erstellen der Infrastruktur, z. B. JSON, YAML, DSL oder manuelles Zeigen und Klicken in der Azure-Konsole. Dieser Ansatz ist selbstverständlich, aber auch einschüchternd - er ist komplex, nicht wiederholbar und bedeutet, dass wir einen Infrastrukturfachmann benötigen, um überhaupt erst loslegen zu können.
Der Pulumi-Ansatz besteht darin, nur Code in unserer bevorzugten .NET-Sprache zu schreiben. Den Rest erledigt das Pulumi-Tool. Mit diesem C # -Code wird beispielsweise eine Azure CosmosDB-Datenbank mit einer serverlosen Azure AppService FunctionApp erstellt, die automatisch zusammen 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; }, }); }); }
rohe Program.cs anzeigen, die von
GitHub gehostet werdenNachdem Sie diesen Code geschrieben haben, führen Sie die Pulumi-CLI mit dem Befehl pulumi up aus. Zunächst wird eine Vorschau der Infrastrukturressourcen angezeigt, die erstellt werden sollen. Nach der Bestätigung wird die gesamte Anwendung und die erforderliche Infrastruktur in nur wenigen Minuten bereitgestellt.

Wenn Sie später Änderungen vornehmen müssen, müssen Sie nur Ihr Programm bearbeiten, die CLI erneut ausführen und die erforderlichen inkrementellen Änderungen vornehmen, 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 auch für die Infrastruktur als Code? Wir haben bereits einige der oben genannten Vorteile gesehen. Viele davon sind wahrscheinlich offensichtlich, wenn Sie .NET bereits kennen und lieben. Lassen Sie uns jedoch noch einmal kurz zusammenfassen.
Durch die Verwendung einer beliebigen .NET-Sprache erhalten Sie viele hilfreiche Funktionen für Ihren Infrastrukturcode:
- Vertrautheit: Sie müssen weder DSLs noch Markup Templating-Sprachen lernen.
- Ausdruckskraft: Verwenden Sie Schleifen, Bedingungen, Mustererkennung, LINQ, asynchronen Code und mehr, um dynamisch eine Infrastruktur zu erstellen, die den Anforderungen der Zielumgebung entspricht.
- Abstraktion: Kapselung gemeinsamer Muster in Klassen und Funktionen, um die Komplexität zu verbergen und das wiederholte Kopieren und Einfügen desselben Boilerplates zu vermeiden.
- Freigabe und Wiederverwendung: Nutzen Sie eine Community von Cloud-Anwendungen und Infrastrukturexperten, indem Sie NuGet-Bibliotheken für Ihr Team oder die globale Community freigeben und wiederverwenden.
- Produktivität: Verwenden Sie Ihre bevorzugte IDE und erhalten Sie die Abschlusserklärung, gehen Sie zur Definition, zur Live-Fehlerprüfung, zum Refactoring, zur statischen Analyse und zur interaktiven Dokumentation.
- Projektorganisation: Verwenden Sie gängige Code-Strukturierungstechniken wie Assemblys und Namespaces, um Ihre Infrastruktur in einem oder mehreren Projekten zu verwalten.
- Anwendungslebenszyklus: Verwenden Sie vorhandene ALM-Systeme und -Techniken zum Verwalten und Bereitstellen Ihrer Infrastrukturprojekte, einschließlich Quellcodeverwaltung, Codeüberprüfung, Testen und kontinuierlicher Integration (CI) und Bereitstellung (CD).
Pulumi gibt den Zugriff auf das gesamte .NET-Ökosystem frei - eine Selbstverständlichkeit, die jedoch in anderen Lösungen auf der Basis von JSON-, YAML-, DSL- oder CLI-Skripten fehlt. Der Zugriff auf eine vollständige Sprache war für die Aktivierung des obigen CosmosApp-Beispiels unerlässlich, bei dem es sich um eine benutzerdefinierte Komponente handelt, die intern Klassen, Schleifen, Lambdas und sogar LINQ verwendet. Dieser Ansatz hilft Entwicklern und Betreibern auch dabei, mithilfe einer gemeinsamen Grundlage besser zusammenzuarbeiten. Wenn Sie alle oben genannten Faktoren zusammenfassen, werden die Aufgaben schneller und zuverlässiger erledigt.
Treten Sie der Community bei und legen Sie los
Heute haben wir die erste Vorschau von Pulumi für .NET veröffentlicht, einschließlich der Unterstützung für die gesamte Palette von Azure-Diensten.
Besuchen Sie die Pulumi for .NET-Homepage, um Pulumi auszuprobieren.
Dort finden Sie verschiedene Anweisungen zur Installation und zum Einstieg in Pulumi für .NET. Die folgenden Ressourcen bieten zusätzliche nützliche Informationen:
Obwohl Pulumi für .NET im Status "Vorschau" aufgeführt ist, werden alle wesentlichen Funktionen des Pulumi-Programmiermodells unterstützt (und der Rest ist in Vorbereitung). Unser Ziel ist es, in den nächsten Wochen Feedback zu sammeln, und wir werden hart daran arbeiten, die .NET-Erfahrung auf breiter Front zu verbessern, einschließlich weiterer Beispiele und einer besseren Dokumentation.
Treten Sie
der Community in Slack bei , um Ihre Szenarien und Ideen zu besprechen und die erforderliche Unterstützung durch das Team und andere Endbenutzer zu erhalten. Pulumi ist auch
Open Source auf GitHub .
Dies ist ein aufregender Tag für das Pulumi-Team und unsere Community. Pulumi wurde von einigen der ersten .NET-Mitarbeiter ins Leben gerufen. Es ist daher großartig, wieder zu unseren Wurzeln zurückzukehren und sich mit der .NET-Community zu verbinden, um Entwicklern, Infrastruktur-Teams und Betreibern dabei zu helfen, gemeinsam bessere Cloud-Software zu entwickeln.
Wir freuen uns auf die neuen und erstaunlichen Cloud-Anwendungen, die Sie mit Pulumi für .NET erstellen!