تصور کنید بخواهید یک معماری پیچیده ابری را تست کنید، اما مجبور باشید برای هر تغییر کوچک، منتظر پاسخ سرورهای AWS بمانید یا با محدودیتهای رایگان حساب کاربری دستوپنجه نرم کنید. fakecloud که در ۲۶ سپتامبر ۲۰۲۶ منتشر شد، این معادله را تغییر میدهد و وعده میدهد ۱۰۵ سرویس AWS را بهطور کامل در محیط محلی و بدون نیاز به هیچ حسابی اجرا کند.
به نقل از وبسایت fakecloud.dev، این ابزار در قالب یک فایل باینری واحد عرضه شده است که برخلاف ابزارهای سادهی Mock، محیطی را ایجاد میکند که دقیقاً مشابه زیرساخت واقعی رفتار میکند. همانطور که در تحلیلهای پیشین ما دربارهی بهینهسازی هزینههای استنتاج اشاره کردیم، حذف وابستگی به محیطهای ابری در مرحلهی توسعه، یکی از کلیدیترین گامها برای کاهش هزینههای عملیاتی است.
شبیهسازی محلی ابری مدتهاست که برای توسعهدهندگان یک نقطه اصطکاک بوده است. ابزارهایی مثل LocalStack وجود دارند، اما نسخههای رایگان آنها اغلب برای دسترسی به سرویسهای کلیدی، نیاز به توکنهای احراز هویت یا خرید اشتراک دارند. این موضوع برای کسانی که به دنبال گردشکار کاملاً آفلاین (Air-gapped) یا بدون پیکربندی هستند، یک مانع بزرگ است. در همین راستا، پلتفرم Floci نیز با تمرکز بر سرعت خیرهکننده در اجرای شبیهسازها سعی در حذف موانع احراز هویت برای توسعهدهندگان دارد.
رویکرد fakecloud
fakecloud این مشکل را با ارائه یک باینری مستقل یا یک Image داکر حل کرده است که هیچ نیازی به ورود به حساب کاربری، توکن یا پرداخت هزینه ندارد. طبق مستندات این پروژه، ۷,۵۰۸ عملیات در ۱۰۵ سرویس مختلف، از جمله S3، SQS، Lambda و Bedrock پیادهسازی شده است. این پروژه ادعای تطابق ۱۰۰ درصدی با استانداردهای AWS را دارد؛ بهطوری که در هر Commit، بیش از ۲۴۸ هزار تست تولیدشده توسط مدل Smithy با موفقیت پاس میشوند.
قابلیتهای فنی
این شبیهساز فراتر از کپیبرداری ساده از APIهاست و از بیش از ۳۰ ادغام بینسرویسی پشتیبانی میکند. برخی از این قابلیتها عبارتند از:
- اعلانهای S3 و توزیع پیامهای SNS
- جریانهای DynamoDB و اهداف EventBridge
- محرکهای API Gateway برای اجرای Lambda
- یکپارچگی وظایف Step Functions و محرکهای Cognito
- اشتراکهای CloudWatch Logs
پوشش سرویسها و پروتکلها
این پلتفرم طیف وسیعی از پروتکلها را پشتیبانی میکند. برای مثال، پروتکل JSON برای Secrets Manager و EventBridge Scheduler، پروتکل Query برای CloudFormation و ElastiCache، و پروتکلهای REST برای Bedrock و Route 53 به کار گرفته شده است.
سایر سرویسهای پشتیبانیشده شامل موارد زیر است:
- محاسبات و ارکستراسیون: EC2، EKS و Step Functions.
- پایگاهداده: RDS (پشتیبانی از PostgreSQL/MySQL/MariaDB از طریق داکر)، Aurora DSQL و MemoryDB.
- امنیت: IAM، STS، KMS و ACM.
- پیامرسانی: Kinesis، Firehose و EventBridge Pipes.
برای بهبود تجربه تست، fakecloud از SDKهای اختصاصی برای زبانهای TypeScript، Python، Go، PHP، Java و Rust استفاده میکند. این SDKها به توسعهدهنده اجازه میدهند تا پس از اجرای کد با SDK رسمی AWS، وضعیت داخلی شبیهساز (مثل ایمیلهای SES یا پیامهای SQS) را بهطور مستقیم بازرسی کند.
بنچمارکهای عملکردی
در مقایسه با نسخه رایگان LocalStack، ابزار fakecloud بهرهوری منابع خیرهکنندهای دارد. زمان راهاندازی آن حدود ۳۰۰ میلیثانیه است، در حالی که رقیبش به ۳ ثانیه زمان نیاز دارد. مصرف حافظه در حالت بیکار برای fakecloud تنها ۱۰ مگابایت است، در مقابل ۱۵۰ مگابایت برای LocalStack. همچنین حجم نصب آن تنها ۱۹ مگابایت است، نه یک گیگابایت.
مقایسه قابلیتها
برخلاف نسخههای رایگان رقبا، fakecloud دسترسی به سرویسهای پرهزینه را رایگان کرده است:
- Bedrock: ۲۱۴ عملیات در ۴ API مختلف.
- Cognito User Pools: ۱۲۲ عملیات.
- SES v2: ۱۱۰ عملیات، شامل قوانین واقعی برای دریافت ایمیل.
- RDS: ۱۶۳ عملیات، شامل افزونه aws_lambda برای PostgreSQL.
- API Gateway v2: ۱۰۳ عملیات، شامل HTTP APIها و احراز هویت JWT.
این کاهش شدید در مصرف منابع به این معناست که توسعهدهندگان میتوانند شبیهساز را بدون ایجاد تأخیر در خط لولههای CI/CD ادغام کنند. همچنین امکان اجبار به رفتارهای ناهمگام (Async) در لحظه، نیاز به حلقههای Polling شکننده در تستهای یکپارچگی را از بین میبرد.
برای یک توسعهدهنده، این یعنی گردشکار «اول محلی» (Local-first) دیگر یک مصالحه نیست. شما میتوانید کد خود را با SDK رسمی AWS بنویسید و تنها زمانی از SDKهای fakecloud استفاده کنید که نیاز به بررسی وضعیت داخلی شبیهساز برای تأیید نتایج (Assertions) داشته باشید.
این رویکرد این فرض را میشکند که تست محلی AWS باید بین «سهولت در راهاندازی» و «پوشش API» یکی را انتخاب کند. با رایگان کردن سرویسهای با تطابق بالا، مانع ورود برای ساخت معماریهای پیچیده Serverless بهشدت کاهش یافته است.
توسعهدهندگان میتوانند با اجرای یک اسکریپت نصب ساده و تغییر Endpoint کلاینت AWS به localhost:4566، کار را آغاز کنند.
گام بعدی شما
- اگر از LocalStack استفاده میکنید، حجم باینری ۱۹ مگابایتی fakecloud را برای کاهش زمان بوت CI/CD تست کنید.
- سرویسهای Bedrock را در محیط محلی شبیهسازی کنید تا هزینههای تست مدلهای زاینده را به صفر برسانید.
- SDKهای اختصاصی این ابزار را برای بازرسی پیامهای SQS و SNS بدون نیاز به کنسول AWS جایگزین کنید.
اما بهینهسازیهای سختافزاری برای اجرای این مدلهای شبیهساز حتی جذابتر است — به تحلیل ما درباره تراشههای جدید برای محیطهای توسعه مراجعه کنید.




گفتگو