برنامه نویسی

جذاب ترین راه برای مدیریت منابع AWS شما

یکی از دوستان چند سالی است که یک راه حل SaaS را در AWS Cloud ویرایش می کند. گام به گام، راه حل SaaS او شروع به یافتن می کند، مجموعه مشتریانش در حال رشد است، او باید توسعه دهندگان بیشتری را استخدام کند. کدی که قبلاً توسط یک شخص اصلاح می‌شد، اکنون توسط چندین مورد اصلاح می‌شود، تا کنون مخزن git آن فقط از دو شاخه «توسعه» برای پیشرفت‌ها و «اصلی» برای آنچه به تولید می‌رود تشکیل شده است.

جریان git مناسب برای یک توسعه دهنده

این وضعیت به طرز وحشتناکی او را آزار می دهد، او به این فکر می کند که آیا می تواند افزایش یابد. پس از من می پرسد:

  • چگونه می توانم توسعه ویژگی ها را به صورت موازی مدیریت کنم؟
  • چگونه می توانم خطرات رگرسیون را به حداقل برسانم؟
  • چگونه می توان انتشارات تولید را با زمان توقف صفر انجام داد؟

Gitflow مانند تیم های توسعه دهندگان بزرگتر است

قبل از پاسخ دادن به این سؤالات، می‌خواستم به او اطمینان دهم زیرا حضور در فضای ابری AWS یک نقطه شروع عالی است. مطمئناً AWS کامل‌ترین اکوسیستم ابری را دارد و هر برنامه SaaS باید در آنجا احساس امنیت کند.
بنابراین به او گفتم چشمانش را ببندد و راه حلی را تصور کند که بتواند به صورت پویا:

  • یک شاخه “ویژگی” از “توسعه” ایجاد می کند
  • یک محیط اختصاصی “ویژگی” در ابر AWS ایجاد می کند
  • یک خط لوله استقرار در محیط “ویژگی” ایجاد کنید که در هر commit در شاخه “ویژگی” راه اندازی می شود.
  • یک رکورد DNS ایجاد کنید که امکان آزمایش آسان شاخه “ویژگی” را فراهم می کند
  • یک متعادل کننده بار ایجاد کنید و یک گواهی SSL را برای محیط “ویژگی” مستقر کنید
  • با هر تأیید اعتبار «درخواست ادغام» در شاخه «توسعه»، در «Staging» مستقر شود
  • تصویری از محیط «استیجینگ» برای استقرار در تولید ایجاد کنید

مدیریت خودکار محیط

بعد بهش گفتم چشماش رو باز کنه چون به راحتی میشه روی ابر AWS پیاده سازی کرد بیا باهاش ​​کنار بیایم.

چگونه یک شاخه “ویژگی” از “توسعه” ایجاد کنیم؟

Terraform دوست شماست، کد زیر به شما امکان می دهد یک ماژول Terraform داشته باشید که به شما امکان می دهد هر مخزن git را مدیریت کنید.

قطعه کد Terrform برای ایجاد یا حذف شاخه git

چگونه می توانم یک محیط اختصاصی ویژگی در AWS Cloud ایجاد کنم؟

اگر نیاز به تعامل با AWS دارید، Terraform بار دیگر دوست شماست. همه مدل‌های استقرار را می‌توان با Terraform خودکار کرد:

  • سرورهای EC2
  • ظروف داکر در ECS
  • ظروف داکر در Kubernetes
  • توابع لامبدا
  • پایگاه های داده RDS
  • ترکیبی از همه این حجم کاری

قطعه کد Terrform برای ایجاد یک نمونه EC2

قطعه کد Terrform برای ایجاد یک سرویس AWS Fargate برای کانتینرهای Docker

چگونه می توانم یک خط لوله استقرار در محیط “ویژگی” ایجاد کنم و این خط لوله در commit در شاخه “ویژگی” راه اندازی می شود؟

در اینجا نیز Terraform به شما این امکان را می‌دهد که با ابزار انتخابی خود، ایجاد خط لوله را خودکار کنید. اما از آنجایی که در AWS هستید، می توانید از Terraform برای ایجاد خط لوله با AWS CodePipeline استفاده کنید.

قطعه کد Terrform برای ایجاد خط لوله AWS CodePipeline

چگونه می توانم یک رکورد DNS ایجاد کنم که آزمایش شاخه “ویژگی” را آسان کند؟

ما قطعاً می توانیم همه کارها را با Terraform انجام دهیم، زیرا ایجاد یک رکورد DNS در Amazon Route 53 یک بازی کودکانه است.

قطعه کد Terraform برای ایجاد یک رکورد DNS در منطقه میزبانی شده Route 53

چگونه یک Load Balancer ایجاد کنیم و یک گواهی SSL را روی آن در محیط «ویژگی» مستقر کنیم؟

Terraform یک بار دیگر راه حل است. تنها چیزی که نیاز دارید ارائه ARN گواهی است.

قطعه کد Terraform برای ایجاد یک AWS ALB با گواهی SSL متصل به آن

چگونه هر بار که یک درخواست ادغام تأیید می شود به طور خودکار مستقر شود؟

اعتبار یک “درخواست ادغام” مربوط به یک commit در شاخه مقصد است. با AWS CodePipeline و Terraform، راه اندازی خودکار اجرای خط لوله با پیکربندی یک اتصال در مرحله Source خط لوله شما انجام می شود.

استفاده از اتصال کد استار برای راه اندازی اجرای خط لوله

چگونه می توانم تصویری از محیط صحنه برای استقرار تولید ایجاد کنم؟

با Terraform ایجاد یک تصویر AMI از یک نمونه آسان است، ایجاد یک تصویر Docker حتی ساده تر است.

قطعه کد Terraform برای ایجاد یک AMI

بنابراین جذاب ترین راه برای مدیریت منابع AWS چیست؟

همه این کدها به شما امکان می دهد اسکریپت هایی داشته باشید که به شما امکان می دهد منابع خود را مدیریت کنید، محیط های جدید ایجاد کنید، کار توسعه دهندگان خود را ساده کنید و ارتقا دهید.
برای رفتن بیشتر، حتی می توانید یک برنامه کاربردی کوچک “کاربر پسند” برای کنترل اجرای اسکریپت های خود ایجاد کنید و بنابراین مدیریت یک زیرساخت پیچیده را با یک کلیک کنترل کنید.

مدیریت اسکریپت های IaC

سپس کل معماری شما می تواند شبیه این باشد.

معماری راه حل شامل ابزار IaC برای مدیریت منابع ابری AWS

Terraform عالیه

ابزارهای IaC پاسخ مناسبی برای مدیریت منابع Cloud هستند. هنوز هم می‌توانید با استفاده از کنسول وب AWS لذت ببرید، اما ابزارهایی مانند Terraform باعث می‌شوند سرعت بیشتری داشته باشید، مانند یوسین بولت سریع پیش بروید و قابلیت نگهداری زیرساخت‌های AWS Cloud شما را بهبود بخشد.

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

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

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

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