Dengan senang hati kami mengumumkan dukungan untuk .NET Core untuk Pulumi! Pengumuman ini berarti Anda dapat mendeklarasikan infrastruktur cloud Anda - termasuk semua yang ada di Azure, seperti Kubernetes, Functions, AppService, Virtual Machines, CosmosDB, dan banyak lagi - menggunakan bahasa .NET favorit Anda, termasuk C #, VB.NET, dan F #. Ini memberi Anda kemampuan untuk menggunakan seluruh cloud tanpa harus meninggalkan editor kode menggunakan metode infrastruktur-sebagai-kode yang siap digunakan.

Infrastruktur menjadi lebih relevan saat ini karena kemampuan cloud modern seperti layanan microser, wadah, server, dan gudang data menembus arsitektur aplikasi Anda. Istilah infrastruktur mencakup semua sumber daya cloud yang dibutuhkan aplikasi Anda. Arsitektur modern membutuhkan pemikiran mendalam tentang mereka ketika membuat aplikasi. Pendekatan Pulumi membantu pengembang dan tim infrastruktur bekerja sama untuk menciptakan fitur-fitur baru yang inovatif yang memanfaatkan segala yang ditawarkan cloud modern.
Pulumi diluncurkan sedikit lebih dari setahun yang lalu dan baru-baru ini mencapai angka stabil 1,0. Setelah bekerja dengan ratusan perusahaan untuk menyebarkan aplikasi berbasis cloud dalam produksi, .NET dengan cepat beralih ke salah satu fitur komunitas Pulumi yang paling sering diminta. Terutama karena banyak dari kita di tim Pulumi adalah pakar .NET awal, hari ini kami sangat senang untuk membuat Pulumi tersedia di .NET Core untuk kebutuhan pengembangan cloud Anda.
Apa itu Pulumi?
Pulumi memungkinkan Anda untuk menggunakan bahasa nyata untuk mengekspresikan kebutuhan infrastruktur aplikasi Anda menggunakan metode yang kuat yang disebut "infrastruktur sebagai kode." Dengan menggunakan infrastruktur sebagai kode, Anda mendeklarasikan infrastruktur yang diinginkan, dan mekanisme menyediakannya bagi Anda untuk diotomatisasi, mudah ditiru, dan cukup andal untuk memenuhi persyaratan produksi. Pulumi mengambil pendekatan ini selangkah lebih maju, menggunakan bahasa nyata dan membuat templat infrastruktur cloud modern, seperti wadah dan program tanpa server, kelas satu dan sederhana.
Dengan Pulumi untuk .NET, Anda dapat:
- Deklarasikan infrastruktur dengan C #, VB.NET, atau F #.
- Secara otomatis membuat, memperbarui, atau menghapus sumber daya cloud menggunakan kerangka kerja Pulumi sebagai penangan kode, menghapus titik dan klik manual dalam antarmuka pengguna Azure dan skrip khusus.
- Gunakan IDE dan alat favorit Anda, termasuk Visual Studio dan Visual Studio Code, untuk melakukan fungsi seperti pelengkapan otomatis, refactoring, dan dokumentasi online.
- Deteksi kesalahan di muka menggunakan kesalahan kompiler standar, analis Roslyn, dan mekanisme kebijakan khusus infrastruktur untuk keamanan, kepatuhan, dan praktik terbaik.
- Gunakan kembali perpustakaan NuGet yang ada atau distribusikan sendiri, baik untuk infrastruktur yang lebih baik, kinerja, atau hanya pola pemrograman umum.
- Melakukan penyebaran berkelanjutan, dapat diprediksi, dan andal dengan Pipa Azure DevOps, Tindakan GitHub, atau salah satu dari lebih dari selusin integrasi.
- Buat aplikasi cloud yang skalabel menggunakan teknologi infrastruktur cloud klasik seperti Kubernetes, wadah Docker, fitur tanpa server.
SDK sumber terbuka Pulumi gratis, yang mencakup bermacam-macam CLI dan perpustakaan, menyediakan fitur-fitur ini. Pulumi juga menawarkan fitur-fitur canggih untuk tim yang ingin menggunakan Pulumi dalam produksi, seperti integrasi Azure ActiveDirectory untuk otentikasi dan kebijakan lanjutan.
Contoh: database global dengan aplikasi tanpa server
Katakanlah kita ingin membuat aplikasi baru yang menggunakan Azure CosmosDB untuk distribusi data global untuk memberikan kinerja tinggi bagi pelanggan, di mana pun mereka berada, menggunakan aplikasi C # tanpa server yang secara otomatis berskala dengan database kami. Kami biasanya menggunakan beberapa alat pembangun infrastruktur lainnya, seperti JSON, YAML, DSL, atau titik-dan-klik secara manual di konsol Azure. Pendekatan ini secara keseluruhan adalah normal, tetapi menakutkan - itu rumit, tidak digunakan dan berarti bahwa seorang ahli infrastruktur diperlukan bahkan untuk memulai.
Pendekatan Pulumi adalah menulis kode dalam bahasa .NET favorit kami, dan alat Pulumi dapat menangani sisanya. Misalnya, kode C # ini membuat database Azure CosmosDB menggunakan serverless Azure AppService FunctionApp, yang secara otomatis menskala dengan database:
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; }, }); }); }
Tonton Program.cs di GitHub
Setelah menulis kode ini, Anda menjalankan CLI Pulumi dengan perintah pulumi, dan pertama-tama akan menunjukkan kepada Anda pratinjau sumber daya infrastruktur yang rencananya akan dibuat. Setelah konfirmasi, itu akan mengerahkan seluruh aplikasi Anda dan infrastruktur yang diperlukan hanya dalam beberapa menit.

Kemudian, jika Anda perlu melakukan perubahan, Anda cukup mengedit program Anda, menjalankan kembali CLI, dan itu akan membuat perubahan tambahan yang diperlukan untuk memperbarui infrastruktur Anda yang sesuai. Riwayat lengkap penyebaran Anda dicatat sehingga Anda dapat dengan mudah melihat perubahan apa yang telah dibuat.
Mengapa .NET juga bagus untuk infrastruktur?
Banyak dari kita suka menggunakan .NET untuk membangun aplikasi kita, jadi mengapa tidak menggunakannya untuk IaaS? Bahkan, kami telah mendaftarkan beberapa keunggulan di atas. Banyak dari mereka mungkin jelas jika Anda sudah tahu dan cinta .NET, tapi mari kita ulangi sebentar.
Menggunakan bahasa .NET apa pun, Anda mendapatkan banyak fitur berguna untuk IaaS:
- Pelatihan: Tidak perlu belajar bahasa DSL atau bahasa templat markup.
- Ekspresififitas: gunakan loop, ekspresi kondisional, pencocokan pola, LINQ, kode asinkron, dll. untuk secara dinamis membuat infrastruktur yang memenuhi kebutuhan lingkungan target.
- Abstraksi: Meringkas template umum di kelas dan fungsi untuk menyembunyikan kompleksitas dan menghindari beberapa penyalinan dan menempel template yang sama.
- Berbagi dan menggunakan kembali: Bergabunglah dengan komunitas ahli aplikasi cloud dan infrastruktur dengan membagikan dan menggunakan kembali perpustakaan NuGet dengan tim Anda atau komunitas internasional.
- Produktivitas: Gunakan lingkungan pengembangan favorit Anda dan dapatkan Penyelesaian Pernyataan, Definisi Go-To, pengecekan kesalahan langsung, refactoring, analisis statis, dan dokumentasi interaktif.
- Organisasi proyek: Gunakan teknik penataan kode umum, seperti majelis dan ruang nama, untuk mengelola infrastruktur satu atau lebih proyek.
- Siklus Hidup Aplikasi: Gunakan sistem dan metode ALM yang ada untuk mengelola dan menggunakan proyek infrastruktur Anda, termasuk kontrol sumber, verifikasi kode, pengujian dan integrasi berkelanjutan (CI), dan pengiriman (CD).
Pulumi menyediakan akses ke seluruh ekosistem .NET - sesuatu yang mudah diterima begitu saja, tetapi tidak dalam solusi lain berdasarkan skrip JSON, YAML, DSL, atau CLI. Akses ke bahasa lengkap diperlukan untuk menambahkan contoh CosmosApp di atas, yang merupakan komponen khusus yang secara internal menggunakan kelas, loop, lambdas, dan bahkan LINQ. Pendekatan ini juga membantu pengembang dan operator bekerja lebih baik bersama, menggunakan fondasi bersama. Tambahkan semua hal di atas bersama-sama, dan Anda akan mendapatkan hasilnya lebih cepat dan lebih dapat diandalkan.
Bergabunglah dengan komunitas dan mulailah
Kami merilis pratinjau Pulumi pertama untuk .NET, termasuk dukungan untuk berbagai layanan Azure. Untuk mencoba Pulumi, kunjungi beranda
Pulumi untuk beranda .NET .
Di sana Anda akan menemukan beberapa instalasi dan memulai instruksi untuk Pulumi untuk .NET. Sumber daya berikut menyediakan informasi berguna tambahan: