برنامه نویسی

چگونه برنامه توسعه دهنده “DevMood” را در 24 ساعت با Pulumi ساخته و مستقر کردم

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

ناسزا یک برنامه وب است که برای تقویت تجربه برنامه نویسی یک توسعه دهنده با ارائه جوک های Dev ، برنامه نویسی و به روزرسانی های آب و هوا طراحی شده است. برنامه میزبان است AWS و استفاده می کند برمه برای زیرساخت ها به عنوان کد (IAC) ، اطمینان از استقرار یکپارچه و مقیاس پذیری. برنامه شامل:

  • شوخی 💬: مجموعه ای از شوخی های توسعه دهنده خنده دار.
  • برنامه نویسی موسیقی: موسیقی پس زمینه برای کمک به تمرکز.
  • اطلاعات آب و هوا 🌤: به روزرسانی های آب و هوا در زمان واقعی بر اساس مکان شما.
  • طراحی پاسخگو: با اندازه های مختلف صفحه سازگار است.

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

repo devmood github

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

راه اندازی پروژه

اولین قدم تنظیم ساختار پروژه ، از جمله بعد. js برای جبهه و پیکربندی خدمات پس زمینه در AWS با برمهبشر من استفاده کردم Tailwind CSS برای یک ظاهر طراحی شده برای اطمینان از برنامه پاسخگو و پویا در بین دستگاه ها. جبهه از نظر چیدمان کمی مشکل بود ، اما یک بار که من آن را آویزان کردم ، ترکیب Next.js و Tailwind آن را بسیار نرم تر کرد.

راه اندازی Frontend

برای جبهه ، من استفاده کردم بعد. js با Tailwind CSS برای یک ظاهر طراحی شده برای اولین بار. Next.js به من اجازه داد که برای عملکرد بهتر رندر سمت سرور را پیاده سازی کنم ، در حالی که Tailwind CSS یک طرح پاسخگو را تضمین می کرد. در اینجا یک پیش نمایش وجود دارد:

پیش نمایش Devmood Frontend

زیرساخت 1 (میزبان وب سایت استاتیک با S3)

برای نسخه اصلی ناسزا، من استفاده کردم آمازون S3ویژگی میزبانی وب سایت استاتیک. این یک راه حل مقرون به صرفه و مقیاس پذیر برای میزبانی جلوی است. زیرساخت ها با برمهبشر

اجزای کلیدی:

  • سطل S3: پرونده های وب سایت استاتیک (HTML ، CSS ، JS) را ذخیره می کند.
  • میزبانی وب سایت استاتیک: پیکربندی شده برای برنامه با یک سند و سند خطا.
  • خط مشی: دسترسی عمومی به دارایی های استاتیک را تضمین می کند.

پیش نمایش زیرساخت -1

نمودار زیرساختی 1

زیرساخت -2 (میزبان وب سایت استاتیک با S3 ، Cloudfront و OAC)

برای نسخه پیشرفته ناسزا، من اضافه کردم خطوط ابری برای تحویل محتوا و کنترل دسترسی Origin (OAC) برای امنیت ، فقط اطمینان حاصل کنید خطوط ابری می تواند به سطل S3 دسترسی پیدا کند. این زیرساخت بهینه شده نیز توسط برمهبشر

اجزای کلیدی:

  • سطل S3: میزبان پرونده های استاتیک اما با دسترسی عمومی محدود به Cloudfront است.
  • cdn cloudfront: ذخیره و ارائه محتوای استاتیک در سطح جهان ، بهبود عملکرد.
  • OAC (کنترل دسترسی Origin): تضمین می کند که فقط CloudFront می تواند به طور ایمن به پرونده های S3 دسترسی پیدا کند.

پیش نمایش زیرساخت -2

نمودار زیرساخت 2

ادغام مداوم (CI)

در خط لوله CI تضمین می کند که کد به طور مداوم با هر درخواست کشش کیفیت را بررسی کرده و برای کیفیت بررسی می شود. آن را می گذارد جبههبا زیرساخت -1وت زیرساخت 2 برای اطمینان از قوام و گرفتن خطاهای در مراحل اولیه ، کد کنید. در اینجا نحوه عملکرد آن آورده شده است:

مراحل:

  1. پرداخت کد: آخرین کد را از مخزن بیرون می کشد.
  2. node.js تنظیم: آخرین نسخه Node.js (V18) را نصب می کند.
  3. لین: قبل از ادغام در شعبه اصلی ، فرآیند خط را برای گرفتن هرگونه خطای برنامه نویسی یا تخلفات سبک اجرا می کند.

فن آوری های مورد استفاده:

  • اقدامات GitHub: فرآیند Linting را با محرک های درخواست کشش خودکار می کند.
  • از بین بردن: برای لینتینگ کد جلوی و زیرساخت استفاده می شود.

گردش کار CI

استقرار مداوم (CD)

در خط لوله CD هر زمان که فشار به شاخه اصلی وجود داشته باشد ، استقرار برنامه را خودکار می کند. مستقر می شود زیرساخت -1 (میزبان وب سایت استاتیک با S3) و زیرساخت 2 (میزبان وب سایت استاتیک با S3 ، CloudFront و OAC). در اینجا نحوه عملکرد این روند آورده شده است:

مراحل:

  1. پرداخت کد: آخرین کد را از مخزن بیرون می کشد.
  2. ساخت وب سایت استاتیک: دارایی های وب سایت استاتیک را از جبهه می سازد.
  3. پیکربندی اعتبار AWS: کلیدهای دسترسی AWS را برای استقرار ایمن پیکربندی می کند.
  4. زیرساخت -1 را از طریق Pulumi مستقر کنید: استقرار زیرساخت -1 با بارگذاری پرونده های وب سایت استاتیک روی سطل S3.
  5. زیرساخت -2 را از طریق Pulumi مستقر کنید: استقرار زیرساخت 2 با بارگذاری پرونده های وب سایت استاتیک روی سطل S3 ، در حالی که اطمینان از Cloudfront و OAC به درستی برای امنیت و عملکرد پیشرفته پیکربندی می شوند.

فن آوری های مورد استفاده:

  • اقدامات GitHub: فرایند استقرار را خودکار می کند.
  • Pultes Githu: زیرساخت ها را به عنوان کد با استفاده از آن مستقر می کند برمهبشر
  • اقدام AWS GitHub: مدیریت و تنظیمات AWS را مدیریت می کند.

گردش کار CD

من استفاده کردم برمه به عنوان زیرساخت من به عنوان ابزار کد (IAC) برای استقرار کلیه زیرساخت ها ، از جمله سطل S3با توزیع Cloudfrontوت کنترل دسترسی Origin (OAC) برای تأمین سطل S3. در اینجا چگونه Pulumi به من کمک کرد:

نحو

تجربه قبلی با AWS CDK وت چارچوب بدون سرور، رویکرد اول Pulumi-First-First هم آشنا و هم شهودی بود. منحنی یادگیری در ابتدا شیب دار بود ، اما مستندات Pulumi در بلند شدن و دویدن من بسیار مفید بود کمتر از 24 ساعتبشر

مدیریت چند پشته

یکی از جنبه های چالش برانگیز مدیریت پشته های مختلف برای میزبانی استاتیک اساسی و نسخه بهینه شده با Cloudfront و OACبشر ویژگی مدیریت چند پشته Pulumi باعث شده است تا ضمن نگه داشتن زیرساخت ها به عنوان پاک و قابل کنترل ، زیرساخت ها را از بین ببرد.

لکانکو

برای استقرار مداوم (CD) تنظیم ، من استفاده کردم Pultes Githu برای خودکار سازی استقرار زیرساخت های من. این یکپارچه با اقدامات GitHub ادغام می شود و مناسب برای مدیریت خط لوله استقرار بود. اقدام Pulumi باعث می شود تا روند استقرار و مدیریت زیرساخت ها از طریق کد ، اطمینان از خط لوله CD صاف و قابل اعتماد را آسان کنید.

برای اطلاعات بیشتر اقدامات Pulumi GitHub را بررسی کنید.

در کمتر از 24 ساعت، من با موفقیت ساختم و مستقر کردم ناسزا با استفاده از برمه وت AWSبشر علیرغم برخی چالش ها با مدیریت چند پشته و موانع نحوی اولیه ، رویکرد اولین نسخه Pulumi باعث شد تا خودکار سازی استقرار زیرساخت ها آسان شود. اگر به دنبال ساده سازی استقرار ابر خود هستید و از مزایای IAC لذت می برید ، من به شدت توصیه می کنم برمه یک امتحان

در صورت تمایل برای بررسی repo و مشارکت!


با تشکر از شما برای خواندن و متشکرم برمه برای ایجاد چنین ابزاری شگفت انگیز!

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

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

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

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