Lambda MicroVMs سرویس جدید AWS برای ساخت محیط‌های محاسباتی بدون‌سرور با جداسازی در سطح ماشین مجازی است. این سرویس با تکیه بر فناوری Firecracker، راه‌اندازی سریع، حفظ وضعیت و مقیاس‌پذیری خودکار را در اختیار توسعه‌دهندگان قرار می‌دهد و برای اجرای امن کد کاربران یا عامل‌های هوش مصنوعی طراحی شده است. براساس توضیحات منتشرشده در وبلاگ رسمی AWS، توسعه‌دهندگان می‌توانند برای هر کاربر، وظیفه یا نشست، یک محیط اجرایی اختصاصی ایجاد کنند؛ بدون آنکه مدیریت مستقیم زیرساخت مجازی‌سازی بر عهده آن‌ها باشد. چنین محیط‌هایی می‌توانند در تحلیل داده، دستیارهای کدنویسی هوش مصنوعی، اسکن امنیتی، محیط‌های توسعه تعاملی و فرایندهای CI/CD کاربرد داشته باشند. Lambda MicroVMs چگونه کار می‌کند؟ زیرساخت این سرویس بر پایه Firecracker ساخته شده است؛ فناوری مجازی‌سازی سبکی که در لایه زیرین AWS Lambda نیز استفاده می‌شود. هدف از این معماری، ترکیب جداسازی یک ماشین مجازی با سرعت راه‌اندازی بالا است. هر محیط از سایر محیط‌های اجرایی جدا می‌شود و پس از پایان وظیفه می‌توان آن را متوقف یا حذف کرد. AWS برای این سرویس دو منبع اصلی در نظر گرفته است: تصویر MicroVM که محیط اجرا، وابستگی‌ها و کد برنامه را به‌صورت نسخه‌بندی‌شده نگه می‌دارد و نمونه‌هایی که هنگام نیاز از روی آن تصویر راه‌اندازی می‌شوند. این ساختار به تیم‌ها اجازه می‌دهد یک محیط پایه تعریف کنند و نمونه‌های متعدد و جداگانه‌ای از آن بسازند. ۱. راه‌اندازی سریع با استفاده از Snapshot یکی از قابلیت‌های اصلی، راه‌اندازی مبتنی بر Snapshot است. توسعه‌دهنده تصویری می‌سازد که محیط Runtime، وابستگی‌ها، کد برنامه و وضعیت اولیه حافظه و دیسک را در خود نگه می‌دارد. هنگام ایجاد تصویر، سرویس Dockerfile را اجرا و برنامه را آماده می‌کند؛ سپس یک Snapshot از محیط می‌گیرد. نمونه‌های جدید مستقیماً از روی همین Snapshot فعال می‌شوند. در نتیجه، لازم نیست تمام مراحل نصب و آماده‌سازی برای هر نشست دوباره انجام شود. این روش می‌تواند زمان انتظار کاربران را کاهش دهد، به‌ویژه در برنامه‌هایی که برای هر کاربر یا درخواست به یک فضای اجرایی مستقل نیاز دارند. ۲. ارتباط مستقیم از طریق HTTPS هر نمونه یک نشانی اختصاصی HTTPS برای دریافت اتصال ورودی دارد. توسعه‌دهندگان می‌توانند با کلاینت‌های استاندارد HTTPS، وب‌سوکت یا gRPC با برنامه داخل محیط ارتباط برقرار کنند. به‌این‌ترتیب، هر کاربر یا وظیفه می‌تواند نشانی و محیط اجرایی جداگانه‌ای داشته باشد و برنامه‌های تعاملی نیز ارتباط خود را با محیط حفظ کنند. ۳. حفظ وضعیت و مدیریت چرخه عمر Lambda MicroVMs امکان کنترل چرخه عمر محیط‌های اجرایی را فراهم می‌کند. براساس اطلاعات AWS، توسعه‌دهندگان می‌توانند نشست‌هایی از چند دقیقه تا هشت ساعت ایجاد و برای دوره‌های بدون فعالیت، سیاست تعلیق خودکار تعیین کنند. این ویژگی برای ابزارهایی مناسب است که نشست کاربر باید برای مدتی مشخص در دسترس باقی بماند. در زمان تعلیق، وضعیت حافظه و دیسک حفظ می‌شود. اگر کاربر دوباره بازگردد، محیط می‌تواند در مدت کوتاهی فعالیت خود را ادامه دهد؛ بنابراین احتمالاً نیازی به بارگذاری مجدد فایل‌ها، کتابخانه‌ها یا نتایج محاسباتی نخواهد بود. جزئیات عملکرد و هزینه این فرایند باید براساس مستندات هر منطقه بررسی شود. ۴. مقیاس‌پذیری عمودی و افقی هر محیط با منابع پایه قابل‌تنظیم راه‌اندازی می‌شود. پیکربندی پیش‌فرض اعلام‌شده شامل دو گیگابایت حافظه و یک vCPU است و امکان افزایش آن تا هشت گیگابایت حافظه و چهار vCPU وجود دارد. نمونه‌ها می‌توانند متناسب با نیاز یک نشست، به‌صورت عمودی منابع بیشتری دریافت کنند. مقیاس‌پذیری افقی نیز برای ایجاد هم‌زمان محیط‌های بیشتر پشتیبانی می‌شود. AWS اعلام کرده است که در زمان افزایش تقاضا می‌توان طی یک دقیقه صدها محیط را راه‌اندازی کرد؛ بااین‌حال، ظرفیت عملی به سهمیه حساب، منطقه ارائه سرویس و محدودیت‌های اعلام‌شده وابسته خواهد بود. ۵. دسترسی به اینترنت و منابع خصوصی محیط‌ها به‌صورت پیش‌فرض از اتصال خروجی به اینترنت عمومی پشتیبانی می‌کنند. اگر برنامه به منابع داخل یک VPC خصوصی مانند پایگاه داده، API داخلی، Amazon RDS یا خوشه Redshift نیاز داشته باشد، می‌توان از Lambda Network Connector استفاده کرد. این قابلیت برای تیم‌هایی مهم است که کد را در یک محیط جداگانه اجرا می‌کنند، اما همچنان به سرویس‌های داخلی سازمان نیاز دارند. کاربردهای Lambda MicroVMs برای توسعه‌دهندگان یکی از کاربردهای مطرح‌شده، ساخت محیط‌های توسعه مبتنی بر مرورگر و نوت‌بوک‌های تحلیل داده است. هر کاربر می‌تواند فضای اختصاصی خود را داشته باشد و فایل‌ها، بسته‌های نصب‌شده و فرایندهای فعال را در همان نشست نگه دارد. این ویژگی برای تحلیل‌های چندساعته و کار با مجموعه‌داده‌های بزرگ مفید است. عامل‌های کدنویسی هوش مصنوعی نیز می‌توانند کد تولیدشده را در محیطی جدا از سامانه اصلی اجرا و مسیرهای مختلف را آزمایش کنند. ابزارهای امنیتی می‌توانند اسکن آسیب‌پذیری را در فضای ایزوله انجام دهند و سامانه‌های CI/CD نیز قادرند برای هر فرایند ساخت یا آزمایش، محیطی موقت ایجاد و پس از پایان عملیات آن را حذف کنند. مدیریت دسترسی و نکات اجرایی نقش IAM مربوط به ساخت تصویر می‌تواند از نقش زمان اجرا جدا باشد. این تفکیک به مدیران زیرساخت کمک می‌کند مجوزهای مرحله آماده‌سازی و اجرای برنامه را دقیق‌تر کنترل کنند. با وجود مدیریت‌شدن زیرساخت توسط AWS، تیم‌ها همچنان باید سیاست‌های دسترسی، داده‌های حساس، اتصال شبکه و عمر محیط‌ها را متناسب با نیاز خود تنظیم کنند. پیش از استفاده عملی از Lambda MicroVMs باید مناطق در دسترس، سهمیه‌ها، هزینه اجرا و محدودیت‌های فنی بررسی شود. اطلاعات منبع بر معرفی ویژگی‌های سرویس تمرکز دارد و برای مقایسه کامل هزینه یا عملکرد آن با ماشین‌های مجازی و کانتینرهای دیگر، داده کافی ارائه نمی‌کند. جمع‌بندی Lambda MicroVMs تلاش می‌کند سادگی محاسبات بدون‌سرور را با جداسازی یک ماشین مجازی اختصاصی ترکیب کند. راه‌اندازی مبتنی بر Snapshot، حفظ وضعیت، اتصال HTTPS، مقیاس‌پذیری خودکار و دسترسی به VPC از قابلیت‌های مهم معرفی‌شده هستند. این سرویس می‌تواند برای تیم‌هایی مناسب باشد که کد کاربران یا عامل‌های هوش مصنوعی را در محیط‌های جداگانه اجرا می‌کنند، اما نمی‌خواهند زیرساخت مجازی‌سازی را مستقیماً مدیریت کنند. منبع: وبلاگ رسمی AWS معرفی Lambda MicroVMs در وبلاگ رسمی AWS