يسرنا أن نعلن عن دعمنا لـ .NET Core لـ Pulumi! يعني هذا الإعلان أنه يمكنك الإعلان عن البنية الأساسية السحابية الخاصة بك - بما في ذلك كل شيء في Azure ، مثل Kubernetes والوظائف و AppService والأجهزة الظاهرية و CosmosDB والمزيد - باستخدام لغة .NET المفضلة لديك ، بما في ذلك C # و VB.NET و F #. يمنحك هذا القدرة على استخدام السحابة بأكملها دون الحاجة إلى ترك محرر الكود باستخدام أساليب البنية التحتية كرمز جاهزة للاستخدام.

أصبحت البنية التحتية أكثر أهمية في هذه الأيام حيث تتخلل القدرات السحابية الحديثة مثل الخدمات الصغيرة والحاويات والخوادم ومستودعات البيانات بنية تطبيقك. تغطي البنية التحتية للمصطلح جميع الموارد السحابية التي يحتاجها تطبيقك. تتطلب البنى الحديثة التفكير العميق عند إنشاء التطبيق. يساعد نهج Pulumi مطوري البنية التحتية وفرق العمل معًا على إنشاء ميزات جديدة مبتكرة تستفيد من كل ما توفره السحابة الحديثة.
تم إطلاق Pulumi منذ أكثر من عام بقليل ووصل مؤخرًا إلى مستوى 1.0. بعد العمل مع مئات الشركات لنشر التطبيقات المستندة إلى مجموعة النظراء في الإنتاج ، انتقل .NET بسرعة إلى إحدى ميزات المجتمع الأكثر طلبًا من Pulumi. خاصة وأن العديد منا في فريق Pulumi هم من أوائل خبراء .NET ، يسعدنا اليوم إتاحة Pulumi على .NET Core لتلبية احتياجات تطوير السحابة لديك.
ما هو Pulumi؟
يسمح لك Pulumi باستخدام لغات حقيقية للتعبير عن احتياجات البنية الأساسية للتطبيق الخاص بك باستخدام طريقة قوية تسمى "البنية التحتية كرمز". باستخدام البنية التحتية كرمز ، فإنك تعلن عن البنية الأساسية المطلوبة ، وتوفر الآلية لك أن تكون آليًا ، وسهل التكرار ، وموثوقية بدرجة كافية لتلبية متطلبات الإنتاج. تأخذ Pulumi هذا النهج خطوة واحدة إلى الأمام ، باستخدام لغات حقيقية وصنع قوالب البنية التحتية السحابية الحديثة ، مثل الحاويات والبرامج بدون خادم ، من الدرجة الأولى وبسيطة.
باستخدام Pulumi for .NET ، يمكنك:
- قم بتعريف البنية التحتية باستخدام C # أو VB.NET أو F #.
- يمكنك إنشاء موارد سحابة أو تحديثها أو حذفها تلقائيًا باستخدام بنية Pulumi الأساسية كمعالج للأكواد وإزالة النقرات والنقرات اليدوية في واجهة مستخدم Azure والبرامج النصية المخصصة.
- استخدم أدوات IDE والأدوات المفضلة لديك ، بما في ذلك Visual Studio و Visual Studio Code ، لأداء وظائف مثل الإكمال التلقائي وإعادة التجهيز والوثائق عبر الإنترنت.
- يمكنك اكتشاف الأخطاء مسبقًا باستخدام أخطاء برنامج التحويل البرمجي القياسي ومحلل Roslyn ومحرك سياسة خاص بالبنية التحتية للأمان والامتثال وأفضل الممارسات.
- إعادة استخدام أي مكتبة NuGet موجودة أو إعادة توزيعها ، سواء للبنية التحتية أو الأداء أو لأنماط البرمجة الشائعة فقط.
- يمكنك إجراء عمليات نشر مستمرة ويمكن التنبؤ بها وموثوق بها من خلال خطوط أنابيب Azure DevOps أو GitHub Actions أو واحدة من أكثر من عشرة عمليات تكامل.
- قم بإنشاء تطبيقات سحابية قابلة للتطوير باستخدام تقنيات البنية التحتية السحابية الكلاسيكية مثل Kubernetes و Docker container وميزات بدون خادم.
يوفر Pulumi SDK المفتوح المصدر المجاني ، والذي يتضمن CLI ومجموعة من المكتبات ، هذه الميزات. تقدم Pulumi أيضًا ميزات متقدمة للفرق التي تتطلع إلى استخدام Pulumi في الإنتاج ، مثل تكامل Azure ActiveDirectory للمصادقة والسياسات المتقدمة.
مثال: قاعدة بيانات عالمية مع تطبيق serverless
دعنا نفترض أننا نريد إنشاء تطبيق جديد يستخدم Azure CosmosDB لتوزيع البيانات العالمي لتوفير أداء عالي للعملاء ، بغض النظر عن مكانهم ، باستخدام تطبيق C # بدون خادم يقوم بالتدريج تلقائيًا مع قاعدة البيانات الخاصة بنا. نستخدم عادةً بعض أدوات بناء البنية الأساسية الأخرى ، مثل JSON أو YAML أو DSL ، أو يدويًا في وحدة التحكم Azure. هذا النهج طبيعي بشكل عام ، لكنه أمر مخيف - إنه معقد وغير مستخدم ويعني أن هناك حاجة إلى خبير في البنية التحتية حتى للبدء.
تتمثل طريقة Pulumi في كتابة التعليمات البرمجية بلغة .NET المفضلة لدينا ، ويمكن لأداة Pulumi التعامل مع الباقي. على سبيل المثال ، يقوم رمز C # بإنشاء قاعدة بيانات Azure CosmosDB باستخدام Azure AppService FunctionApp بدون خادم ، والذي يقوم تلقائيًا بتوسيع نطاقه باستخدام قاعدة البيانات:
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; }, }); }); }
مشاهدة Program.cs على جيثب
بعد كتابة هذا الرمز ، تقوم بتشغيل CLI Pulumi باستخدام الأمر pulumi up ، وسيظهر لك أولاً معاينة لموارد البنية التحتية التي تخطط لإنشائها. بعد التأكيد ، سيتم نشر التطبيق بالكامل والبنية التحتية اللازمة في بضع دقائق فقط.

في وقت لاحق ، إذا كنت بحاجة إلى إجراء أي تغييرات ، يمكنك ببساطة تحرير البرنامج وإعادة تشغيل CLI ، وستجري التغييرات الإضافية اللازمة لتحديث البنية الأساسية الخاصة بك وفقًا لذلك. يتم تسجيل محفوظات كاملة لعمليات النشر الخاصة بك حتى تتمكن من رؤية التغييرات التي تم إجراؤها بسهولة.
لماذا تعتبر .NET رائعة للبنية التحتية أيضًا؟
الكثير منا يحب استخدام .NET لبناء تطبيقاتنا ، فلماذا لا نستخدمها في IaaS؟ في الواقع ، لقد قمنا بالفعل بإدراج بعض المزايا أعلاه. ربما يكون الكثير منها واضحًا إذا كنت تعرف بالفعل شبكة .NET وتحبها ، ولكن دعنا نكررها لفترة وجيزة.
باستخدام أي لغة من لغات .NET ، تحصل على العديد من الميزات المفيدة لـ IaaS:
- التدريب: لا حاجة لتعلم لغة الترميز اللغوي الرقمية أو لغات قالب العلامات.
- التعبيرية: استخدام الحلقات ، التعبيرات الشرطية ، مطابقة الأنماط ، LINQ ، الكود غير المتزامن ، إلخ. لإنشاء بنية أساسية تلبي احتياجات البيئة المستهدفة ديناميكيًا.
- التجريد: قم بتغليف القوالب الشائعة في الفصول والوظائف لإخفاء التعقيد وتجنب نسخ ولصق نفس القالب المتعدد.
- المشاركة وإعادة الاستخدام: انضم إلى مجتمع التطبيقات السحابية وخبراء البنية التحتية من خلال مشاركة وإعادة استخدام مكتبات NuGet مع فريقك أو المجتمع الدولي.
- الإنتاجية: استخدم بيئة التطوير المفضلة لديك واحصل على إكمال البيان ، والانتقال إلى التعريف ، والتحقق من الأخطاء المباشرة ، وإعادة البناء ، والتحليل الثابت ، والوثائق التفاعلية.
- تنظيم المشروع: استخدم أساليب هيكلة التعليمات البرمجية الشائعة ، مثل التجميعات ومساحات الأسماء ، لإدارة البنية التحتية لمشروع واحد أو أكثر.
- دورة حياة التطبيق: استخدم أنظمة وأساليب ALM الحالية لإدارة ونشر مشاريع البنية التحتية الخاصة بك ، بما في ذلك التحكم في المصدر والتحقق من الكود والاختبار والتكامل المستمر (CI) والتسليم (CD).
يوفر Pulumi الوصول إلى نظام .NET بالكامل - وهو أمر يسهل اعتباره أمراً مفروغًا منه ، ولكن ليس في حلول أخرى تعتمد على البرامج النصية JSON أو YAML أو DSL أو CLI. كان الوصول إلى اللغة الكاملة ضروريًا لإضافة مثال CosmosApp أعلاه ، وهو مكون مخصص يستخدم داخليًا الفئات والحلقات و lambdas وحتى LINQ. يساعد هذا النهج أيضًا المطورين والمشغلين على العمل بشكل أفضل معًا باستخدام إطار عمل مشترك. أضف كل ما سبق معًا ، وستحصل على النتيجة بشكل أسرع وأكثر موثوقية.
انضم إلى المجتمع وابدأ
أصدرنا أول معاينة Pulumi لـ .NET ، بما في ذلك دعم النطاق الكامل لخدمات Azure. لتجربة Pulumi ، تفضل بزيارة صفحة
Pulumi الرئيسية
الخاصة بصفحة .NET الرئيسية .
هناك ستجد بعض التثبيت والبدء في إرشادات Pulumi for .NET. توفر الموارد التالية معلومات مفيدة إضافية: