آمازون وب سرویس (AWS) به‌تازگی از قابلیت جدیدی به نام «حالت اکسپرس» (Express Mode) برای سرویس CloudFormation رونمایی کرده است. این ویژگی با هدف کاهش چشمگیر زمان استقرار زیرساخت‌ها طراحی شده و می‌تواند فرآیندهایی را که پیش‌تر چند دقیقه یا حتی نیم‌ساعت طول می‌کشیدند، به چند ثانیه کاهش دهد. در این مطلب به بررسی جزئیات، مزایا، معایب و واکنش‌های جامعه توسعه‌دهندگان می‌پردازیم.

حالت اکسپرس CloudFormation چیست؟

در حالت استاندارد CloudFormation، پس از اعمال پیکربندی منابع، عملیات استقرار تا زمانی که منابع کاملاً تثبیت نشوند و آماده سرویس‌دهی نباشند، کامل اعلام نمی‌شود. اما در حالت اکسپرس، به‌محض موفقیت فراخوانی API مربوط به ایجاد، به‌روزرسانی یا حذف، عملیات به‌عنوان کامل علامت‌گذاری می‌شود. این یعنی منابع ممکن است همچنان در حال مقداردهی اولیه یا حتی حذف شدن باشند، اما استقرار از نظر سیستم به پایان رسیده است. این ویژگی نیازی به تغییر در قالب‌های CloudFormation ندارد و از تمامی قابلیت‌های موجود مانند پشته‌های تو در تو و مجموعه تغییرات پشتیبانی می‌کند.

نمودار مقایسه زمان استقرار در حالت استاندارد و اکسپرس CloudFormation

کاربردهای اصلی حالت اکسپرس

به گفته Channy Yun، مدافع اصلی توسعه‌دهندگان در AWS، این حالت برای دو سناریوی اصلی مفید است: گردش کارهای توسعه تکراری و سناریوهای تولیدی که تثبیت تدریجی منابع قابل قبول است. از جمله موارد استفاده می‌توان به تکرار بر روی پیکربندی زیرساخت در حین توسعه، آزمایش اجزای مجزای برنامه و توسعه زیرساخت با کمک هوش مصنوعی اشاره کرد که نیازمند حلقه‌های بازخورد زیر دقیقه‌ای هستند.

برای مثال، ایجاد یک صف SQS به همراه صف نامه‌های مرده در حالت استاندارد بیش از یک دقیقه زمان می‌برد، اما در حالت اکسپرس این کار در کمتر از ۱۰ ثانیه انجام می‌شود. همچنین حذف یک تابع Lambda با اتصالات شبکه که پیش‌تر ۲۰ تا ۳۰ دقیقه طول می‌کشید، اکنون به چند ثانیه کاهش یافته است.

فعال‌سازی حالت اکسپرس

این حالت به‌صورت پیش‌فرض فعال نیست و برای استفاده از آن باید در دستور AWS CLI گزینه زیر را اضافه کنید:

--deployment-config '{"mode": "EXPRESS"}'

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

واکنش‌های جامعه و نکات مهم

معرفی این ویژگی با استقبال و نقدهایی همراه بوده است. Yan Cui، قهرمان AWS و کارشناس بدون سرور، در LinkedIn خود نوشت: «حالت اکسپرس برای محیط‌های توسعه مفید است، اما با چارچوب‌بندی هوش مصنوعی موافق نیستم. حلقه بازخورد سریع همیشه مهم بوده و این یکی از دلایل اصلی ترجیح دادن Terraform به CloudFormation در سال‌های گذشته است.»

از سوی دیگر، Michał Piszczek، مدیر ارشد فناوری در Archdesk، هشدار می‌دهد که «غیرفعال بودن بازگشت به عقب (Rollback) به‌طور پیش‌فرض، جزئیاتی است که ممکن است نادیده گرفته شود. این ویژگی برای پشته‌های یکبار مصرف هوش مصنوعی مناسب است، اما برای هر چیزی که یک انسان مجبور است ساعت ۳ صبح اشکال‌زدایی کند، خطرناک است.»

به‌روزرسانی همزمان: اعتبارسنجی خودکار پیش از استقرار

در اعلامیه‌ای جداگانه، AWS اعلام کرد که اعتبارسنجی پیش از استقرار CloudFormation را به‌صورت خودکار برای تمام عملیات ایجاد و به‌روزرسانی پشته فعال کرده است. این قابلیت به تشخیص خطاهای قالب کمک می‌کند و شامل بررسی‌های اضافی، دستور جدید cdk validate برای پروژه‌های AWS CDK و گزینه غیرفعال کردن اعتبارسنجی برای استقرارهای خاص می‌شود.

در دسترس بودن و هزینه

هر دو ویژگی حالت اکسپرس و اعتبارسنجی جدید در تمامی مناطقی که CloudFormation پشتیبانی می‌شود، بدون نیاز به انتخاب و بدون هزینه اضافی در دسترس هستند. برای اطلاعات بیشتر می‌توانید به مستندات رسمی AWS CloudFormation مراجعه کنید.

به‌طور خلاصه، حالت اکسپرس CloudFormation گامی مهم در جهت کاهش اصطکاک عملیاتی است و می‌تواند تجربه توسعه‌دهندگان را به‌ویژه در محیط‌های توسعه و آزمایش بهبود بخشد. با این حال، آگاهی از معاوضه‌ها و استفاده صحیح از آن در سناریوهای تولیدی ضروری است.