Olay odaklı iş akışı (EDW) iş yükünü Azure'a dağıtmaya hazırlanma

AWS iş yükü örneği Bash, CloudFormation ve AWS CLI kullanılarak dağıtılır. Tüketici Python uygulaması kapsayıcı olarak dağıtılır. Aşağıdaki bölümlerde Azure iş akışının nasıl farklı olduğu açıklanmaktadır. Azure Kubernetes Service (AKS) kümesini ve destekleyici altyapıyı dağıtmak için kullanılan Bash betiklerinde değişiklikler vardır. Ayrıca Kubernetes dağıtım bildirimleri, KEDA'yı Amazon Simple Queue Service (SQS) ölçeklendiricisi yerine Azure Depolama Kuyruğu ölçeklendiricisi kullanacak şekilde yapılandıracak şekilde değiştirilir.

Azure iş akışı, Karpenter'ı temel alan AKS Düğümü Otomatik Sağlama (NAP) özelliğini kullanır. Bu özellik, Karpenter'ı açıkça dağıtmak için Helm kullanma gereksinimini ortadan kaldırarak AKS üzerinde Karpenter dağıtımını ve kullanımını büyük ölçüde basitleştirir. Ancak Karpenter'ı doğrudan dağıtmanız gerekiyorsa bunu GitHub'da AKS Karpenter sağlayıcısını kullanarak yapabilirsiniz.

Kubernetes dağıtım bildirimini yapılandırma

AWS, iş yükünü EKS'ye dağıtmak için bir Kubernetes dağıtım YAML bildirimi kullanır. AWS dağıtımı YAML,KEDA ölçeklendiricileri için SQS ve DynamoDB'ye başvurular içerir, bu nedenle bunları Azure altyapısına bağlanmak için kullanılacak Azure ölçekleyicileri için KEDA eşdeğeri değerleri belirtecek şekilde değiştirmemiz gerekir. Bunu yapmak için Azure Depolama Kuyruğu KEDA ölçeklendiricisini yapılandırın.

Aşağıdaki kod parçacıkları, AWS ve Azure uygulamaları için örnek YAML bildirimlerini gösterir.

AWS uygulaması

    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 uygulaması

    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

Ortam değişkenlerini belirleme

Dağıtım adımlarından herhangi birini yürütmeden önce, aşağıdaki ortam değişkenlerini kullanarak bazı yapılandırma bilgilerini ayarlamanız gerekir:

  • K8sversion: AKS kümesinde dağıtılan Kubernetes sürümü.
  • KARPENTER_VERSION: AKS kümesinde dağıtılan Karpenter sürümü.
  • SERVICE_ACCOUNT: Yönetilen kimlikle ilişkili hizmet hesabının adı.
  • AQS_TARGET_DEPLOYMENT: Tüketici uygulaması kapsayıcı dağıtımının adı.
  • AQS_TARGET_NAMESPACE: Tüketici uygulamasının dağıtıldığı ad alanı.
  • AZURE_QUEUE_NAME: Azure Depolama Kuyruğunun adı.
  • AZURE_TABLE_NAME: İşlenen iletileri depolayan Azure Depolama Tablosunun adı.
  • LOCAL_NAME: Dağıtım betiklerinde oluşturulan kaynak adları için basit bir kök.
  • LOCATION: Dağıtımın bulunduğu Azure bölgesi.
  • TAGS: İlişkili değerleriyle birlikte kullanıcı tanımlı etiketler.
  • STORAGE_ACCOUNT_SKU: Azure Depolama Hesabı SKU'su.
  • ACR_SKU: Azure Container Registry SKU'su.
  • AKS_NODE_COUNT: Düğüm sayısı.

Bash betiğini GitHub depomuzun environmentVariables.shdeploymentdizininde gözden geçirebilirsiniz. Bu ortam değişkenlerinin varsayılanları ayarlanmıştır, bu nedenle varsayılanları değiştirmek istemediğiniz sürece dosyayı güncelleştirmeniz gerekmez. Azure kaynaklarının adları, deploy.sh betiğinde dinamik olarak oluşturulur ve deploy.state dosyasına kaydedilir. Azure kaynak adları için ortam değişkenleri oluşturmak için dosyasını kullanabilirsiniz deploy.state .

Sonraki adımlar

Katkıda Bulunanlar

Microsoft bu makaleyi korur. Başlangıçta aşağıdaki katkıda bulunanlar yazdı:

  • Ken Kilty | Baş TPM
  • Russell de Pina | Asıl TPM
  • Jenny Hayes | Kıdemli İçerik Geliştirici
  • Carol Smith | Kıdemli İçerik Geliştirici
  • Erin Schaffer | İçerik Geliştirici 2