
AWS Emulator يمنح وكلاء البرمجة نسخة محلية من AWS
AWS Emulator يمنح وكلاء البرمجة نسخة محلية من AWS للاختبار. بُني بواسطة وكلاء من أكثر من 400 نموذج API، ويعكس أعمال الأنظمة الموزعة المبكرة وضوابط هندسية جديدة عندما يكتب الوكلاء الشفرة.
أطلقت AWS أداة AWS Emulator المجانية دون اتصال، التي تمنح وكلاء البرمجة نسخة محلية من AWS للاختبار. يرتبط الإطلاق بأعمال الأنظمة الموزعة المبكرة في Amazon، بما في ذلك خدمة القفل Alf، ويعكس تحولاً في كيفية بناء المهندسين للضوابط عندما يكتب الوكلاء الشفرة.
من Alf إلى المحاكي
قبل نحو عشرين عاماً، عمل Swaminathan Sivasubramanian مع Al Vermeulen على Alf، وهي خدمة قفل موزعة مبنية على Paxos. تشغل Alf أنظمة موزعة معقدة كثيرة، مثل S3 و DynamoDB، واختُبرت بمحاكاة بيئتها بدقة عالية. لدى AWS اليوم أكثر من 200 خدمة، لذا بناء بيئات اختبار لكل منها يدوياً سيستغرق سنوات من العمل الهندسي.
كيف يبني الوكلاء المحاكي
جاءت الفكرة من Matt Goldberg، وهو Senior Principal Engineer في فريق AWS Developer Tools. يستخدم الوكلاء نماذج API عامة مكتوبة بـ Smithy واختبارات دقة مبنية على سيناريوهات العملاء، ثم يتحققون منها مقابل AWS الحقيقية. أعطى Matt Goldberg لـ Kiro توجيهاً واحداً يصف هذا النهج، وحصل على نسخة أولية مقبولة من محاكي SQS في نحو 15 دقيقة. كُتبت واختُبرت جميع شفرة AWS Emulator بواسطة وكلاء، وهي مبنية من أكثر من 400 نموذج API تغطي أكثر من 200 خدمة AWS.
دور المهندس الآن
عندما يكتب الوكلاء شفرتهم ويتحققون منها، يبني المهندسون المواصفات والاختبارات وبوابات الدمج التي تحدد متى يكون العمل صحيحاً. تعلم Swaminathan Sivasubramanian هذا عند إعادة بناء محرك تكرار مع Kiro: استغرقت إعادة البناء نحو ساعتين بعد توفر مواصفات وبيئة اختبار، بينما استغرقت نحو أربعة أشهر في المرة الأولى. يتضمن AWS Emulator اختبارات دقة تحققت مقابل AWS الحقيقية، وبوابة دمج مع وكلاء أمان ومراجع شفرة عام، وفحوصات حتمية. اكتملت نسخة داخلية خلال عطلة نهاية أسبوع، وبدأت تكتسب اعتماداً خلال شهر. صدر كود المحاكي بموجب CC0، وستشارك AWS المزيد في re:Invent.
المصادر: All Things Distributed · Simon Willison · The New Stack
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.