"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تشغيل PHP على بنية AWS ServerLess؟ الجزء ما هو بدون خادم؟

كيفية تشغيل PHP على بنية AWS ServerLess؟ الجزء ما هو بدون خادم؟

تم النشر بتاريخ 2024-11-04
تصفح:396

تسمح Lambda، وهي خدمة AWS الرائدة بدون خادم، بتشغيل التعليمات البرمجية في أوقات تشغيل مختلفة. لكن لغة PHP غير موجودة بشكل واضح في الوصف الرسمي للمنتج. هل يعني ذلك أنه لا يمكنك تشغيل كود PHP على Lambdas؟ لا لا!

في هذه السلسلة (مشتقة من محاضرة ألقيتها أمام AWS User Group Poitiers)، سنناقش ما هو بدون خادم وكيفية تشغيل PHP (إذا كانت هذه هي لغتك المفضلة) على Lambda.

ما هو بدون خادم؟

Serverless هو نموذج استضافة حيث يقوم موفر السحابة بتوسيع الموارد المخصصة لأعباء عمل العميل ديناميكيًا، مع إدارة ليس فقط البنية التحتية المادية (الخوادم، تبريد الطاقة) ولكن أيضًا حتى وقت تشغيل التنفيذ (التصحيح، ..).

How to run PHP on AWS ServerLess architecture ? Part  What

بالمعنى الدقيق للكلمة، يتم تخصيص الحوسبة لكل طلب، مما يؤدي إلى نموذج تسعير "مقياس إلى الصفر" (لا يتم دفع الموارد بالساعة، ولكن فقط بشكل متناسب مع الطلب الفعلي)، مع توفير مستويات عالية مدمجة - التوفر.

وهذا يضيف إلى مزايا السحابة الأخرى، وفي المقام الأول حقيقة أن كل شيء يأتي مع واجهة برمجة التطبيقات (API)، مما يجعل الأتمتة ممكنة.

مجموع هذه المزايا يجعل من الممكن الحصول على بيئات سريعة الزوال لفرع الميزات مجانًا تقريبًا، مما يعزز إنتاجية المطورين والمهلة الزمنية.

How to run PHP on AWS ServerLess architecture ? Part  What

لا يقتصر الأمر بدون خادم على الحوسبة فقط!

هناك الكثير من الحلول في النظام البيئي بدون خادم. عندما ظهر الحوسبة بدون خادم (Lambda)، في عام 2014، كانت قوائم الانتظار المُدارة (SQS) موجودة منذ عقد من الزمن، وS3 لمدة 8 سنوات.

How to run PHP on AWS ServerLess architecture ? Part  What

لاحظ أنه في الشريحة أعلاه، لا يتطابق Aurora مع تعريفنا الصارم لـ Serverless لأنه لا يتم قياسه إلى الصفر (تم تغيير حجم الإصدار 1 إلى الصفر ولكن قد يستغرق بعد ذلك دقائق للبدء، مع الإصدار 2 الذي تحتاج إلى الحصول عليه في ما لا يقل عن 0.5 وحدة ACU في كل من مثيلات الكاتب والقارئ لديك حتى تكون قاعدة البيانات جاهزة لخدمة الاستعلامات.

ستجد أدناه بنية نموذجية لاستضافة تطبيق ويب يتضمن خدمات بدون خادم فقط. يمكن أن تكلف استضافة مثل هذا التطبيق أقل من دولار واحد سنويًا لعدد محدود من المستخدمين.

How to run PHP on AWS ServerLess architecture ? Part  What

هل بدون خادم للخدمات الصغيرة فقط؟

نعم.. ولا. لقد تم تصميمه مع وضع الخدمات الصغيرة في الاعتبار ولكن لا يزال بإمكانك نشر بنية متجانسة (طالما لم يكن لديك تسلسل بدء تشغيل طويل الأمد في كل مرة يتم فيها إطلاق بيئة جديدة).

How to run PHP on AWS ServerLess architecture ? Part  What

خيارات بدون خادم لحل التحدي الشائع مع الخدمات الصغيرة: التنسيق وتصميم الرقصات

تتيح بنية الخدمات الصغيرة إمكانية تقليل الاقتران بين مكونات التطبيقات (باستخدام لغات مختلفة، من خلال أنماط غير متزامنة، وتحسين قابلية التوسع عن طريق إزالة الاقتران على مستوى البنية التحتية).

ومع ذلك، عندما يكون لدينا وظائف متعددة ذات غرض واحد، فإن تنفيذ منطق العمل قد يتطلب التنسيق بين الوظائف. يمكن تنفيذ هذا التنسيق باستخدام نمطين أساسيين.

  • التزامن: في هذا النمط، نتحكم في استدعاءات الوظيفة بطريقة حتمية. يُستخدم هذا غالبًا داخل مجال الأعمال، عندما يتم تسليم الوظائف بواسطة فريق خدمة واحد. النهج بدون خادم لهذا هو AWS StepFunction، وهو سير عمل/جهاز حالة. يوجد برنامج تعليمي لطيف حول كيفية تنسيق وظائف Lambda باستخدام StepFunction هنا.
  • تصميم الرقصات: هذا النمط أكثر أهمية في سيناريوهات مجالات الأعمال المشتركة، مع فرق خدمة منفصلة، ​​للحفاظ على اقتران محدود للغاية. يمكّن ناقل الأحداث التطبيق من دفع الأحداث والاشتراك في الأحداث. يمكن للعديد من المستهلكين الاشتراك في نفس الحدث ويمكن لكل مستهلك تصفية الأحداث التي يحتاجها. خدمة AWS الأساسية لهذا هي EventBridge. سوف تقوم بنشر مدونة كتبت عنها هنا.

التعرف على لامدا

Lambda هو حل الوظيفة كخدمة من AWS. باستخدام Lambda، يمكنك نشر التعليمات البرمجية الخاصة بك والحصول على إمكانية توفر وقابلية للتوسع بشكل فوري، دون القلق بشأن نشر المثيلات وتصحيح نظام التشغيل أو وقت التشغيل.

يمكن استخدام Lambda مع الاستدعاءات المتزامنة (عبر بوابة API أو موازن تحميل التطبيق أو عنوان url لوظيفة Lambda) أو الاستدعاءات غير المتزامنة (الاستجابة للأحداث التي أنشأها AWS أو الأحداث التي أنشأها المستخدم).

عندما تقوم بنشر Lambda، فإنك تختار مقدار الذاكرة التي يحتاجها للتشغيل. وحدة المعالجة المركزية المخصصة متناسبة. ثم تدفع بناءً على عدد المللي ثانية المستخدمة. على سبيل المثال، تبلغ تكلفة جهاز Lambda بسعة 128 ميجابايت 1.7*10^-9$/ms. وهذا يعني 164 ساعة من الحوسبة قبل أن تنفق أول دولار لك.

How to run PHP on AWS ServerLess architecture ? Part  What

ومقاييس لامدا. سريع. أسرع بكثير من أي شيء آخر. لا مزيد من أخطاء 429 (أو 500 إذا لم يكن عبء العمل لديك محميًا بشكل جيد) بسبب التباين الكبير في حركة المرور.

How to run PHP on AWS ServerLess architecture ? Part  What

حل التحدي الرئيسي مع LambdaLiths: البدايات الباردة

تعالج بيئات تنفيذ Lambda طلبًا واحدًا فقط في وقت معين، ويتم إعادة استخدامها للطلبات اللاحقة. وهذا يعني أنه لكي يتم توسيع نطاق وظيفة Lambda، أو عندما لا يتم استدعاء وظيفة Lambda لفترة من الوقت، سيتعين على Lambda بدء بيئة تنفيذ جديدة: هذه بداية باردة.

إذا كانت عمليات البدء الباردة ضارة بتطبيقك (مرة أخرى، فمن الأفضل أن تكون حركة المرور بطيئة أو تصل إلى 429 ثانية)، فهناك بعض الخيارات. لدى AWS مقالة لطيفة حول استخدام أجهزة تدفئة Lambda أو إعداد التزامن المتوفر لمعالجتها. بالإضافة إلى ذلك، بالنسبة لمستخدمي Java، تتيح ميزات Lambda SnapStart إمكانية تقديم أداء جيد لبدء التشغيل على البارد، من خلال التقاط لقطة لـ microVM بعد بدء تشغيل JVM.

ماذا عن دعم PHP؟

تنص الأسئلة الشائعة الرسمية للمنتج على أنه "يدعم أصلاً كود Java وGo وPowerShell وNode.js وC# وPython وRuby، ويوفر واجهة برمجة تطبيقات وقت التشغيل التي تسمح لك باستخدام أي لغات برمجة إضافية لتأليف وظائفك."

في منشورات المدونة التالية في هذه السلسلة، سنشرح كيف يمكنك تشغيل PHP على Lambda من خلال الاستفادة من إطارين متميزين، Bref وLambda Web Adaptor، ومقارنة الإمكانيات التي يوفرها كل منهما.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/aws-builders/how-to-run-php-on-aws-serverless-architecture-part-1-whats-serverless-3j3m?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3