برنامه نویسی

استقرار سریع وب سایت استاتیک با Pulumi

این یک ارسال برای استقرار Pulumi و Document Challenge است: استقرار سریع وب سایت استاتیک

آنچه من ساختم

این پروژه استقرار سریع وب سایت استاتیک با استفاده از Pulumi در Azure است. هدف این بود که قابلیت های Pulumi برای زیرساخت ها به عنوان Code (IAC) را بررسی کرده و سهولت استفاده از آن را در مقایسه با سایر ابزارهای مانند Terraform و BiceP ارزیابی کنید.

لینک نسخه ی نمایشی زنده

https://endpointf8fd4fc8.azureedge.net/

repo پروژه

آن را در CodeBerg دریافت کنید

سفر من

از آنجا که این اولین چالش من بود ، من از شرکت در آن هیجان زده شدم. استقرار یک وب سایت استاتیک سریع به یک ارائه دهنده ابر با استفاده از Pulumi فرصتی عالی برای شیرجه زدن به این ابزار بود. در حالی که من با Terraform و Bicep تجربه داشتم ، کنجکاو بودم که ببینم آیا Pulumi به آسانی انتخاب می شود یا خیر.

یک منبع مهم مستندات Pulumi برای Azure بود که یک راهنمای تنظیم مستقیم را ارائه می داد:
https://www.pulumi.com/docs/iac/get-started/azure/

من همچنین یک الگوی Pulumi برای استقرار وب سایت های استاتیک در لاجورد پیدا کردم:
https://www.pulumi.com/templates/static-website/azure/

با استفاده از این الگوی ، روند کار را صاف کرد ، اگرچه من در این راه با چند چالش روبرو شدم.

چالش هایی که با آن روبرو شدم

شماره طول نام حساب ذخیره سازی

هنگام دویدن pulumi up، من در مورد نام حساب ذخیره سازی بیش از حد با خطایی روبرو شدم:

نام حساب ذخیره سازی خطا

در ابتدا ، به نظر می رسید که این نام طول مورد نیاز را برآورده می کند ، اما پس از عیب یابی ، فهمیدم که Pulumi یک شناسه منحصر به فرد را به نام حساب ذخیره سازی اضافه می کند ، و این باعث می شود از حد مجاز فراتر رود. کوتاه کردن نام توسط چند شخصیت مسئله را حل کرد.

مشخصات CDN و عدم تطابق مکان پایانی

مسئله دیگری با مشخصات CDN و موقعیت مکانی پایانی بوجود آمد. از آنجا که منطقه لاجورد اولیه من سوئیس شمالی است ، پولومی تلاش کرد تا مشخصات CDN و نقطه پایانی را در همان منطقه مستقر کند. با این حال ، لاجورد از استقرار CDN در سوئیس شمالی پشتیبانی نمی کند و باعث این خطا می شود:

خطای CND پروفایل و مکان پایانی

برای رفع این مشکل ، من صریحاً یک مکان پشتیبانی شده را در پیکربندی Pulumi Python خود مشخص کردم. من منابع صحیح API Pulumi را برای پروفایل های CDN و نقاط پایانی از طریق یک جستجوی سریع پیدا کردم:

https://www.pulumi.com/registry/packages/azure-native/api-docs/cdn/profile/

https://www.pulumi.com/registry/packages/azure-native/api-docs/cdn/endpoint/

پیش نمایش تغییرات زیرساخت

یکی از ویژگی هایی که من در مورد Pulumi خیلی دوست داشتم این است که چگونه قبل از استفاده از آنها ، تغییرات زیرساختی را نشان می دهد. خروجی واضح و ساخت یافته ، حداقل در این مقیاس پروژه ، بررسی تغییرات بدون پیمایش بیش از حد ترمینال را آسان می کند ؛)

مرور کلی Pulumi Infra

نگه داشتن محتوای وب سایت استاتیک در همگام سازی

به روزرسانی محتوای وب سایت بسیار آسان است. Pulumi پرونده های استاتیک را پیگیری می کند ، تغییرات را تشخیص می دهد و یکپارچه پرونده ها را در حساب ذخیره سازی به روز می کند.

نگه داشتن محتوای وب سایت استاتیک در همگام سازی

معمول

Pulumi ابزاری عالی برای این پروژه بود. در اینجا به همین دلیل من آن را مفید دانستم:

  • Pulumi به شما امکان می دهد زیرساخت ها را به عنوان کد با استفاده از زبانهای برنامه نویسی آشنا بنویسید و ادغام آن را با پروژه های موجود آسان کنید.

  • با وجود خطاهایی که با آن روبرو شدم ، عیب یابی ساده بود و پیام های خطا مفید بودند.

  • توانایی پیش نمایش تغییرات زیرساخت ها قبل از استقرار ، خطر تغییرات غیر منتظره را کاهش می دهد.

به طور کلی ، این چالش یک تجربه یادگیری خارق العاده بود ، و من مشتاقانه منتظر استفاده از Pulumi در پروژه های آینده هستم!

با تشکر از خواندن! افکار و تجربیات خود را با Pulumi در نظرات به من اطلاع دهید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا