Azure Fundamentals · درس

إنشاء خطة App Service وتطبيق ويب

وفّر خطة App Service، وتعرّف على مستويات SKU، وانشر تطبيق ويب من ملف ZIP أو مستودع GitHub باستخدام النشر المستمر.

الدرس 1 من 413 خطوة

إنشاء خطة App Service وتطبيق ويب درس مجاني في Azure Fundamentals على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Azure Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Azure Fundamentals 4 دروس في المجموع.

ما Azure App Service؟

إن Azure App Service نظام Platform as a Service (PaaS) مُدار بالكامل لاستضافة تطبيقات الويب وواجهات REST API والواجهات الخلفية لتطبيقات الأجهزة المحمولة. تنشرون التعليمات البرمجية الخاصة بكم، بينما تتولى Azure تصحيح نظام التشغيل وموازنة التحميل والتوسعة التلقائية للبنية الأساسية. ويدعم App Service كلًا من .NET وNode.js وPython وJava وPHP وRuby والحاويات المخصصة، مما يجعله إحدى أكثر خدمات الحوسبة تنوعًا في Azure.

خطة App Service: وحدة الفوترة

تحدد خطة App Service المنطقة ونظام التشغيل، Windows أو Linux، وموارد الحوسبة، مثل CPU وRAM، المخصصة لتطبيقاتكم. وتدفعون مقابل الخطة لا مقابل التطبيقات الفردية، إذ يمكن لتطبيقات متعددة مشاركة الخطة نفسها دون تكلفة إضافية. وتحدد طبقة SKU للخطة ميزات مثل عدد خانات النشر وإمكانات التوسعة التلقائية ودعم التكامل مع VNet.

# Create an App Service Plan (Linux, Standard S1 tier)
az appservice plan create \
  --name MyAppServicePlan \
  --resource-group MyRG \
  --location eastus \
  --sku S1 \
  --is-linux

طبقات SKU لخطة App Service

تتوفر خطط App Service في عدة طبقات ذات إمكانات وتكلفة متزايدة. تعمل الطبقتان Free (F1) وShared (D1) على بنية أساسية مشتركة، وهما مخصصتان للتطوير فقط. توفر Basic (B1-B3) حوسبة مخصصة دون توسعة تلقائية أو خانات نشر. وتضيف Standard (S1-S3) التوسعة التلقائية و5 خانات نشر. وتوفر Premium (P1-P3v3) مزيدًا من موارد الحوسبة والتكامل مع VNet. أما Isolated (I1-I3) فتعمل في بيئة خاصة مخصصة.

# App Service Plan tiers (ordered by capability)
# Free:     F1  — shared, 60 min/day compute
# Shared:   D1  — shared, custom domain support
# Basic:    B1, B2, B3 — dedicated, no autoscale
# Standard: S1, S2, S3 — autoscale, 5 slots
# Premium:  P1v3, P2v3, P3v3 — VNet integration
# Isolated: I1v2, I2v2 — App Service Environment (ASE)

إنشاء تطبيق ويب

إن Web App تطبيق فردي مستضاف ضمن خطة App Service. ويحصل كل تطبيق ويب على اسم مضيف افتراضي فريد بالصيغة <appname>.azurewebsites.net. وتحددون مكدس وقت التشغيل، مثل NODE:18-lts أو DOTNET:7.0، عند إنشاء التطبيق، مع إمكانية تحديثه لاحقًا دون إعادة النشر.

# Create a Node.js Web App on the Linux plan
az webapp create \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --plan MyAppServicePlan \
  --runtime 'NODE:18-lts'

# Access the app
# https://MyUniqueWebApp.azurewebsites.net

نشر التعليمات البرمجية إلى App Service

يدعم App Service عدة أساليب للنشر. يُعد النشر عبر ZIP أبسطها، إذ تحزمون تطبيقكم وترسلون ملف ZIP. ويرتبط النشر عبر Git بمستودع Git ويجري البناء عند الدفع. ويُعد كل من GitHub Actions وAzure Pipelines تكامل CI/CD الموصى به. كما يمكنكم نشر صورة حاوية Docker من Azure Container Registry أو من أي سجل عام.

# Deploy a ZIP package
zip -r app.zip . --exclude '.git/*' --exclude 'node_modules/*'
az webapp deploy \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --src-path app.zip

# Configure deployment from GitHub
az webapp deployment source config \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --repo-url https://github.com/myorg/myrepo \
  --branch main \
  --manual-integration

إعدادات التطبيق ومتغيرات البيئة

يعرض App Service إعدادات التطبيق لموضع تطبيقكم على هيئة متغيرات بيئة. وهذه هي الطريقة الموصى بها لحقن إعدادات مثل سلاسل اتصال قواعد البيانات ومفاتيح API ورايات الميزات دون تضمينها مباشرةً في التعليمات البرمجية. وتُشفَّر الإعدادات أثناء التخزين، ويمكنها الرجوع إلى أسرار Azure Key Vault باستخدام سلسلة مرجعية لـ Key Vault، مما يلغي الحاجة إلى تخزين الأسرار في المدخل.

# Set application settings
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --settings \
    NODE_ENV=production \
    DATABASE_URL='@Microsoft.KeyVault(SecretUri=https://mykv.vault.azure.net/secrets/dburl/)'

# View current settings
az webapp config appsettings list \
  --name MyUniqueWebApp \
  --resource-group MyRG

التشغيل الدائم وفحوصات السلامة

يفرغ App Service التطبيق افتراضيًا بعد فترة من عدم النشاط. فعّلوا Always On، المتوفر في الطبقة Standard وما فوقها، لإبقاء التطبيق محمّلًا طوال الوقت، وهو أمر مهم للمهام الخلفية وواجهات API التي تحتاج إلى استجابات سريعة عند بدء التشغيل البارد. وترسل ميزة health check طلبات إلى عنوان URL تحددونه، وتزيل المثيلات غير السليمة من موازن التحميل، مما يتيح استبدال المثيلات تلقائيًا.

# Enable Always On
az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --always-on true

# Configure health check endpoint
az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --generic-configurations '{"healthCheckPath": "/health"}'

سجلات App Service والتشخيص

يوفر App Service تسجيلًا مدمجًا لكل من سجلات التطبيق، أي stdout/stderr من تعليماتكم البرمجية، وسجلات خادم الويب، أي سجلات الوصول عبر HTTP، وسجلات النشر. ويمكنكم بث السجلات في الوقت الفعلي باستخدام Azure CLI أو تمكين تخزين السجلات في Blob Storage. فعّلوا Application Insights للتتبع الموزع ومراقبة الأداء طوال دورة حياة الطلب كاملة.

# Enable application logging to file system
az webapp log config \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --application-logging filesystem \
  --level information

# Tail logs in real time
az webapp log tail \
  --name MyUniqueWebApp \
  --resource-group MyRG

توسيع نطاق App Service يدويًا

يمكنكم توسيع نطاق App Service عموديًا (إلى SKU أكبر يحتوي على المزيد من CPU وRAM) أو أفقيًا (إضافة المزيد من المثيلات). تؤدي زيادة عدد المثيلات يدويًا إلى رفع العدد فورًا، وتتوفر ابتداءً من المستوى Basic. يتيح التوسيع العمودي إلى مستوى أعلى ميزات إضافية مثل فتحات النشر والتكامل مع VNet من دون انقطاع الخدمة — إذ يُعاد تشغيل التطبيق لفترة وجيزة أثناء تغيير SKU.

# Scale out: increase instance count to 3
az appservice plan update \
  --name MyAppServicePlan \
  --resource-group MyRG \
  --number-of-workers 3

# Scale up: upgrade from S1 to P2v3
az appservice plan update \
  --name MyAppServicePlan \
  --resource-group MyRG \
  --sku P2V3

المراقبة في مدخل Azure

تعرض لوحة Overview في App Service رسومًا بيانية آنية للطلبات ووقت الاستجابة والبيانات الواردة والصادرة ومعدلات الأخطاء. وتشغّل لوحة Diagnose and solve problems أدوات كشف آلية للمشكلات الشائعة. تتيح علامة التبويب Metrics تثبيت مخططات مخصصة وتعيين قواعد التنبيه. ويمكنكم التكامل مع Application Insights لتتبّع الطلبات من البداية إلى النهاية وإنشاء خرائط التبعيات عبر كامل حزمة تطبيقكم.

# View recent HTTP metrics via CLI
az monitor metrics list \
  --resource '/subscriptions/<sub>/resourceGroups/MyRG/providers/Microsoft.Web/sites/MyUniqueWebApp' \
  --metric 'Requests,Http5xx,AverageResponseTime' \
  --interval PT1M \
  --start-time 2025-01-01T00:00:00Z \
  --end-time 2025-01-01T01:00:00Z

استراتيجيات تسعير App Service

حسّنوا تكاليف App Service من خلال دمج عدة تطبيقات في خطة واحدة عندما تكون احتياجاتها من الموارد متوافقة، واستخدام المستوى المجاني لبيئات التطوير والاختبار، وتطبيق Azure Reservations (التزام لمدة سنة أو 3 سنوات) لأحمال العمل الإنتاجية المتوقعة، مما يتيح توفير ما يصل إلى 55%. ويضمن التوسع التلقائي (الموضّح في الدرس التالي) عدم دفع تكاليف المثيلات غير المستخدمة خلال ساعات انخفاض الطلب.

تحقق سريع

اختبروا مدى فهمكم لمفاهيم Microsoft Azure Fundamentals (AZ-900) الواردة في هذا الدرس.

مراجعة الدرس

تعلّمتم في هذا الدرس أن خطة App Service تحدد مستوى الحوسبة ووحدة الفوترة لتطبيقات الويب، وأنه يمكنكم نشر التعليمات البرمجية عبر ZIP أو Git أو مسارات CI/CD، وأن إعدادات التطبيق تحقن الإعدادات باعتبارها متغيرات بيئية من دون تضمين الأسرار مباشرةً في التعليمات البرمجية. في الدرس التالي، سنستكشف فتحات النشر لإصدارات لا تتسبب في أي توقف.

البدء مجانًا

تعلم Azure Fundamentals مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «إنشاء خطة App Service وتطبيق ويب» مجاني؟

نعم — نص درس «إنشاء خطة App Service وتطبيق ويب» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Azure Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Azure Fundamentals 4 دروس في المجموع.

ماذا ستتعلم في «إنشاء خطة App Service وتطبيق ويب»؟

وفّر خطة App Service، وتعرّف على مستويات SKU، وانشر تطبيق ويب من ملف ZIP أو مستودع GitHub باستخدام النشر المستمر. تتمرن على Azure Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Azure Fundamentals؟

لا تُشترط خبرة سابقة. Azure Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «إنشاء خطة App Service وتطبيق ويب»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Azure Fundamentals هذا؟

نعم. كل درس في Azure Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إنشاء خطة App Service وتطبيق ويب
  2. فتحات النشر والتبديل
  3. التوسع التلقائي والنطاقات المخصصة
  4. مصادقة App Service والشبكات
← العودة إلى Azure Fundamentals