الاستعداد لنشر حمل عمل سير العمل المستند إلى الحدث (EDW) إلى Azure

يتم نشر نموذج حمل عمل AWS باستخدام Bash وCloudFormation و AWS CLI. يتم نشر تطبيق Python للمستهلك كحاوية. تصف الأقسام التالية كيفية اختلاف سير عمل Azure. هناك تغييرات في البرامج النصية Bash المستخدمة لنشر نظام مجموعة Azure Kubernetes Service (AKS) والبنية الأساسية الداعمة. بالإضافة إلى ذلك، يتم تعديل بيانات نشر Kubernetes لتكوين KEDA لاستخدام مقياس قائمة انتظار تخزين Azure بدلا من مقياس Amazon Simple Queue Service (SQS).

يستخدم سير عمل Azure ميزة التزويد التلقائي لعقدة AKS (NAP)، والتي تستند إلى Karpenter. تبسط هذه الميزة بشكل كبير نشر واستخدام Karpenter على AKS من خلال القضاء على الحاجة إلى استخدام Helm لنشر Karpenter بشكل صريح. ومع ذلك، إذا كانت لديك حاجة لنشر Karpenter مباشرة، يمكنك القيام بذلك باستخدام موفر AKS Karpenter على GitHub.

تكوين بيان توزيع Kubernetes

يستخدم AWS بيان YAML لتوزيع Kubernetes لنشر حمل العمل إلى EKS. يحتوي YAML لتوزيع AWS على مراجع إلى SQS وDynamoDB لمتدرجات KEDA، لذلك نحتاج إلى تغييرها لتحديد قيم مكافئة ل KEDA لمتدرجات Azure لاستخدامها للاتصال بالبنية الأساسية ل Azure. للقيام بذلك، قم بتكوين مقياس AZURE Storage Queue KEDA.

تعرض القصاصات البرمجية التالية أمثلة على بيانات YAML لتطبيقات AWS وAzure.

تنفيذ AWS

    spec:
      serviceAccountName: $SERVICE_ACCOUNT
      containers:
      - name: <sqs app name>
        image: <name of Python app container>
        imagePullPolicy: Always
        env:
        - name: SQS_QUEUE_URL
          value: https://<Url To SQS>/<region>/<QueueName>.fifo
        - name: DYNAMODB_TABLE
          value: <table name>
        - name: AWS_REGION
          value: <region>

تنفيذ Azure

    spec:
      serviceAccountName: $SERVICE_ACCOUNT
      containers:
      - name: keda-queue-reader
        image: ${AZURE_CONTAINER_REGISTRY_NAME}.azurecr.io/aws2azure/aqs-consumer
        imagePullPolicy: Always
        env:
        - name: AZURE_QUEUE_NAME
          value: $AZURE_QUEUE_NAME
        - name: AZURE_STORAGE_ACCOUNT_NAME
          value: $AZURE_STORAGE_ACCOUNT_NAME
        - name: AZURE_TABLE_NAME
          value: $AZURE_TABLE_NAME

تعيين متغيرات البيئة

قبل تنفيذ أي من خطوات النشر، تحتاج إلى تعيين بعض معلومات التكوين باستخدام متغيرات البيئة التالية:

  • K8sversion: إصدار Kubernetes المنشور على نظام مجموعة AKS.
  • KARPENTER_VERSION: إصدار Karpenter المنشور على نظام مجموعة AKS.
  • SERVICE_ACCOUNT: اسم حساب الخدمة المقترن بالهوية المدارة.
  • AQS_TARGET_DEPLOYMENT: اسم نشر حاوية تطبيق المستهلك.
  • AQS_TARGET_NAMESPACE: مساحة الاسم التي يتم نشر تطبيق المستهلك فيها.
  • AZURE_QUEUE_NAME: اسم قائمة انتظار تخزين Azure.
  • AZURE_TABLE_NAME: اسم Azure Storage Table الذي يخزن الرسائل المعالجة.
  • LOCAL_NAME: جذر بسيط لأسماء الموارد التي تم إنشاؤها في البرامج النصية للتوزيع.
  • LOCATION: منطقة Azure حيث يوجد التوزيع.
  • TAGS: أي علامات معرفة من قبل المستخدم جنبا إلى جنب مع القيم المقترنة بها.
  • STORAGE_ACCOUNT_SKU: Azure Storage Account SKU.
  • ACR_SKU: Azure Container Registry SKU.
  • AKS_NODE_COUNT: عدد العقد.

يمكنك مراجعة environmentVariables.sh البرنامج النصي Bash في deployment دليل مستودع GitHub الخاص بنا. تحتوي متغيرات البيئة هذه على تعيين افتراضيات، لذلك لا تحتاج إلى تحديث الملف إلا إذا كنت تريد تغيير الإعدادات الافتراضية. يتم إنشاء أسماء موارد Azure ديناميكيا في deploy.sh البرنامج النصي ويتم حفظها في deploy.state الملف. يمكنك استخدام deploy.state الملف لإنشاء متغيرات البيئة لأسماء موارد Azure.

الخطوات التالية

المساهمون

تحتفظ Microsoft بهذه المقالة. كتبه المساهمون التاليون في الأصل:

  • كين كيلتي | الوحدة النمطية للنظام الأساسي الموثوق به
  • راسل دي بينا | الوحدة النمطية للنظام الأساسي الموثوق به
  • جيني هايز | مطور محتوى أول
  • كارول سميث | مطور محتوى أول
  • إيرين شيفر | مطور المحتوى 2