← يتطلب: Docker الحوكمة والتشغيل خبير ⏱ 6 ساعات الدورة 30

النشر السحابي

Cloud Deployment

🎯 أهداف التعلم

1فهم خيارات النشر السحابي
2تعلم نشر IRIS على AWS
3تعلم نشر IRIS على Azure
4فهم Auto-scaling
5تعلم أفضل ممارسات السحابة
01

خيارات النشر السحابي

يمكن نشر IRIS على عدة منصات سحابية.

// خيارات النشر
// 1. AWS - Amazon Web Services
//    - EC2 للحواسب الافتراضية
//    - RDS لقواعد البيانات
//    - EKS للحاويات
//    - S3 للتخزين

// 2. Azure - Microsoft Azure
//    - Virtual Machines
//    - Azure SQL
//    - AKS للحاويات
//    - Blob Storage

// 3. Google Cloud Platform
//    - Compute Engine
//    - Cloud SQL
//    - GKE للحاويات
//    - Cloud Storage

// 4. InterSystems Cloud
//    - Managed IRIS instances
//    - خدمة مدارة بالكامل

// اختيار المنصة المناسبة
ClassMethod ChooseCloudPlatform()
{
    // اعتبارات الاختيار:
    // 1. التكلفة
    // 2. الأداء
    // 3. الموثوقية
    // 4. الدعم التقني
    // 5. الامتثال التنظيمي
}
02

نشر IRIS على AWS

نشر IRIS على Amazon Web Services.

# نشر IRIS على AWS EC2

# 1. إنشاء EC2 Instance
aws ec2 run-instances \
  --image-id ami-xxxxxxxxx \
  --instance-type m5.xlarge \
  --key-name hospital-key \
  --security-group-ids sg-xxxxxxxxx \
  --subnet-id subnet-xxxxxxxxx \
  --block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":100,"VolumeType":"gp3"}}]'

# 2. تثبيت IRIS
ssh -i hospital-key.pem ec2-user@instance-ip
sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo docker pull intersystems/iris:2024.1
sudo docker run -d --name iris -p 1972:1972 -p 52773:52773 intersystems/iris:2024.1

# 3. إعداد Load Balancer
aws elb create-load-balancer \
  --load-balancer-name hospital-lb \
  --listeners "Protocol=HTTP,LoadBalancerPort=52773,InstanceProtocol=HTTP,InstancePort=52773" \
  --subnets subnet-xxxxxxxxx

# 4. إعداد Auto Scaling
aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name hospital-asg \
  --launch-configuration-name hospital-lc \
  --min-size 2 \
  --max-size 10 \
  --desired-capacity 3
03

نشر IRIS على Azure

نشر IRIS على Microsoft Azure.

# نشر IRIS على Azure

# 1. إنشاء Resource Group
az group create --name hospital-rg --location eastus

# 2. إنشاء Virtual Machine
az vm create \
  --resource-group hospital-rg \
  --name hospital-iris \
  --image UbuntuLTS \
  --size Standard_D4s_v3 \
  --admin-username azureuser \
  --ssh-key-value ~/.ssh/id_rsa.pub

# 3. تثبيت IRIS
az vm run-command invoke \
  --resource-group hospital-rg \
  --name hospital-iris \
  --command-id RunShellScript \
  --scripts "sudo apt-get update && sudo apt-get install -y docker.io && sudo docker pull intersystems/iris:2024.1"

# 4. إعداد Azure Load Balancer
az network lb create \
  --resource-group hospital-rg \
  --name hospital-lb \
  --sku Standard

# 5. إعداد Auto-scaling
az vmss create \
  --resource-group hospital-rg \
  --name hospital-vmss \
  --image UbuntuLTS \
  --vm-sku Standard_D4s_v3 \
  --instance-count 3 \
  --admin-username azureuser
04

أفضل ممارسات السحابة

اتبع هذه الممارسات للنشر السحابي الفعال.

// أفضل الممارسات السحابية

// 1. High Availability
ClassMethod SetupHA()
{
    // Multi-AZ Deployment
    // استخدم مناطق توفر متعددة
    // إعداد Automatic Failover
}

// 2. Auto-scaling
ClassMethod SetupAutoScaling()
{
    // حدس الموارد بناءً على الحمولة
    // إعداد Alerts للمراقبة
    // اختبار Auto-scaling دورياً
}

// 3. Security
ClassMethod CloudSecurity()
{
    // استخدام IAM Roles بدلاً من credentials
    // تشفير البيانات في الراحة والحركة
    // استخدام VPC وSecurity Groups
    // تفعيل CloudTrail للتدقيق
}

// 4. Cost Optimization
ClassMethod OptimizeCost()
{
    // استخدام Reserved Instances للإنتاج
    // استخدام Spot Instances للتطوير
    // إيقاف الموارد غير المستخدمة
    // مراقبة التكاليف دورياً
}

// 5. Backup and Recovery
ClassMethod CloudBackup()
{
    // استخدام AWS S3 أو Azure Blob للنسخ الاحتياطي
    // إعداد Cross-region replication
    // اختبار الاستعادة دورياً
}

📝 اختبار التحقق

1 ما هو Auto-scaling؟
A نوع من التشفير
B تعديل الموارد تلقائياً بناءً على الحمولة
C نظام النسخ الاحتياطي
D أداة مراقبة
💡 الشرح

Auto-scaling يضيف أو يزيل الموارد تلقائياً بناءً على الحمولة الحالية.

2 لماذا نستخدم Multi-AZ Deployment؟
A لتقليل التكلفة
B لضمان High Availability
C لتحسين الأداء
D لتسهيل الإدارة
💡 الشرح

Multi-AZ ينشر التطبيق في مناطق توفر متعددة لضمان الاستمرارية في حال فشل منطقة.

ما هو Auto-scaling في السحابة؟
💡 الشرح

Auto-scaling يزيد أو يقلل الموارد (معالج، ذاكرة) تلقائياً حسب حجم الطلبات

💡 النقاط الرئيسية

  • IRIS يمكن نشره على AWS وAzure وGCP
  • Auto-scaling يضبط الموارد تلقائياً
  • Multi-AZ يضمن High Availability
  • اتبع أفضل ممارسات الأمان السحابي
  • راقب التكاليف وحسّنها دورياً