Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20230913_採用 Azure OpenAI 和 Azure Kubernetes Service 來建構您自己的 AI 應用程式

Phil Huang
September 13, 2023

20230913_採用 Azure OpenAI 和 Azure Kubernetes Service 來建構您自己的 AI 應用程式

#DevDaysAsia2023 #Kubernetes #AOAI

Phil Huang

September 13, 2023
Tweet

More Decks by Phil Huang

Other Decks in Technology

Transcript

  1. Phil Huang <[email protected]> Sr. Cloud Solution Architect CNCF Ambassador 2023/09/13

    採用 Azure OpenAI 和 Azure Kubernetes Service 來建構您自己的 AI 應用程式
  2. Phil Huang 黃秉鈞 • Microsoft 資深雲端解決方案架構師 1. Azure Networking 2.

    Azure Red Hat OpenShift 3. Azure VMware Solution 4. Azure Kubernetes Service • 現任 CNCF Ambassador 雲端原生基金會大使 • blog.pichuang.com.tw 客戶成功事業群 Customer Success Unit Ref: https://www.linkedin.com/in/pichuang-tw/
  3. pichuang/devdaysasia2023-aks 閱讀重點 1. GitHub Workflow 針對 Azure Resource 獲取採用 OIDC

    獲取授權 2. 靜態程式碼資安工具使用分析 3. GitHub Workflow 線上修復 Terraform State 狀態 4. Terraform 內的參數列舉
  4. 你應該選擇哪個 Azure Kubernetes Service 版本作為基礎? a. 1.25 b. 1.26 c.

    1.27 d. 1.28 單選題 Ref: https://learn.microsoft.com/en-us/azure/ai-services/openai/quickstart?tabs=command-line&pivots=rest-api Kubernetes 版本 Upstream OSS GA AKS GA 1.25 2022/08 2022/12 1.26 2022/12 2023/04 1.27 2023/04 2023/07 1.28 2023/08 2023/10
  5. AKS v1.27 開始提供長期支援版本,支援長達 2 年至 2025/07 Ref: Azure Kubernetes Service

    (AKS) 中支援的 Kubernetes 版本 AKS v1.27 可使用至 2025/07 • 降低升版成本: 無須做大版本更新 (1.27 -> 1.2x) • 持續安全修補: Azure 持續提供長期支援版本安全修補 (1.27.z -> 1.27.z+n) • 平滑升級: 可配合單位,排程自動(或手動)排程例行修補 一般 AKS 僅提供 1 年的支援長度
  6. 試問要考慮採用下列何者 Service Mesh 技術? a. Open Service Mesh (OSM) AKS

    add-on b. Istio service mesh AKS add-on 單選題 Ref: https://learn.microsoft.com/en-us/azure/aks/istio-about Control plane Data plane Pod Service proxy Service A Pod Service proxy Service B
  7. Istio service mesh AKS add-on • Istio 版本經過 Azure 測試和驗證,與

    AKS 版本兼容 • Microsoft 負責 Istio 控制平面 • Auto Scaling • Lifecycle Management • Configuration • 支援 Internal / External Istio Ingress Gateway • 可與 Azure Monitor 託管服務整合,如 Prometheus、Grafana • Roadmap • 強化生命週期管理 / Multi-cluster Mesh / 強化既有 o11y 整合 / mTLS 整合 Microsoft 憑證 列於 AKS add-on 能力之一 Ref: https://techcommunity.microsoft.com/t5/apps-on-azure-blog/istio-based-service-mesh-add-on-for-azure-kubernetes-service/ba-p/3800229
  8. Istio service mesh AKS add-on 現行相符 Istio v1.17 版本 Ref:

    https://learn.microsoft.com/en-us/azure/aks/istio-about Azure Managed Grafana Service mesh control plane (istiod) Data plane Ingress Gateway Sidecar proxy Instance A Tracing integration (coming soon) Application Insights Azure Managed Prometheus Sidecar proxy Sidecar proxy Instance B Instance C Metrics Public preview Azure Kubernetes Service
  9. 基於 Azure OpenAI 和 AKS 建置的私有 ChatGPT High Level Design

    Azure App Configuration Azure Managed Grafana Azure Monitor Managed Service for Prometheus Azure Kubernetes Service App (ASP.NET MVC) Vue.js ChatGPT Semantic Kernel Istio KEDA Azure SQL Public LB Azure OpenAI Azure Load Testing
  10. 如何保護 Azure OpenAI Key 和 Endpoint? a. 用 Kubernetes Secret

    存放 b. 放到 Environment 用 Dockerfile 或 指令手動匯入 c. 使用 Azure Key Vault Provider for Secrets Store CSI Driver d. 寫在應用程式裡面 單選題 Ref: https://learn.microsoft.com/en-us/azure/ai-services/openai/quickstart?tabs=command-line&pivots=rest-api
  11. 如何保護 Azure OpenAI Key 和 Endpoint? a. 用 Kubernetes Secret

    存放 b. 放到 Environment 用 Dockerfile 或 指令手動匯入 c. 使用 Azure Key Vault Provider for Secrets Store CSI Driver d. 寫在應用程式裡面 單選題 Ref: https://learn.microsoft.com/en-us/azure/ai-services/openai/quickstart?tabs=command-line&pivots=rest-api#retrieve-key-and-endpoint Key Value ENDPOINT https://xxx.openai.azure.com API-KEY 1234567890 DEPLOYMENT-NAME AOAI Deployment Model Name
  12. AOAI 敏感資料掛載進 Pod 內 使用 Azure AD Workload Identity 存取

    使用 Secret Store CSI 用 volumeMounts 掛載資訊進去 使用 AD Workload Identity 獲得存取 Key Vault 權限
  13. 使用 Federated Identity Provider 來建立信任關係 GitHub Action / Azure DevOps

    / AKS 都有內建提供 OIDC Issuer URL Service Principle Federated Identity 有密碼? 有 無 前提 絕大部分場景都可用 需有支援 OIDC Provider 才能用 適用場景 次選,有需要定期更換密碼或者 是設定過期時間的應用服務 優選,對於權限控管希望有明確單一身分可控服務者
  14. Subnet Subnet Subnet Application gateways Virtual network Virtual network Azure

    OpenAI Key Vault 如何保護 Azure OpenAI 網路傳輸安全? a. 允許全部連線 b. 使用 Azure Private Endpoint c. 限定連入 IP Range d. 使用 Azure API Management 限流及防護 多選題 Ref: https://learn.microsoft.com/en-us/azure/architecture/ai-ml/openai/architecture/log-monitor-azure-openai
  15. 如何保護 Azure OpenAI 網路傳輸安全? a. 允許全部連線 b. 使用 Azure Private

    Endpoint c. 限定連入 IP Range d. 使用 Azure API Management 限流及防 護 多選題 Ref: https://learn.microsoft.com/en-us/azure/architecture/ai-ml/openai/architecture/log-monitor-azure-openai Subnet Subnet Subnet Azure API Management Application gateways Virtual network Virtual network Private Endpoint Azure OpenAI Key Vault
  16. 採用 Azure Private Endpoint Azure OpenAI 資料傳輸最佳實踐 • 可使用 Private

    IP 訪 問 Azure OpenAI 資 源 • 傳輸到 Azure OpenAI 流量是通過 Microsoft Backbone, 非 Internet • 可跨租戶或區域建立 私有端點服務 Private Endpoint 位於 Japan East (東京) AOAI 實際服務位於 South Central US
  17. Grafana Dashboard 是哪一個 CNCF 基金會階段的專案? a. CNCF Graduated Projects (CNCF

    畢業專案) b. CNCF Incubating Projects (CNCF 孵化專案) c. CNCF Sandbox Projects (CNCF 沙箱專案) d. 以上皆非 單選題 Ref: https://learn.microsoft.com/en-us/azure/managed-grafana/
  18. Grafana Dashboard 是哪一個 CNCF 基金會階段的專案? a. CNCF Graduated Projects (CNCF

    畢業專案) b. CNCF Incubating Projects (CNCF 孵化專案) c. CNCF Sandbox Projects (CNCF 沙箱專案) 單選題 Ref: https://www.cncf.io/projects/
  19. 增強資料視覺效果,提供更準確的商務判斷 • 可用 Azure AD 集中管理權限, 可分為 3 個 Grafana

    Admin / Editor / Viewer • 預設提供 Kubernetes 常見的 Grafana 儀錶板,也可匯入 Grafana ID • 若有需要,可原地升級成 Grafana Enterprise Azure Managed Grafana v9.5.6 Ref: https://learn.microsoft.com/en-us/azure/managed-grafana/
  20. AKS add-on 發展方向越來越貼合 CNCF 基金會方向 • 2023/08/15 以後,不能設定自訂 Metric Alerts,需改用

    Prometheus Alert • Azure 提供 2 個建議的 Alert Rule 供參考,包含 Azure 建議和社群建 議的規則集 • Alert Manager 的功能被整合到 Azure 平台上,並不是單獨拉出來 的服務 Azure Monitor managed service for Prometheus Ref: https://learn.microsoft.com/zh-tw/azure/azure-monitor/containers/container-insights-metric-alerts?tabs=arm-template%2Cazure-portal#migrate-from-metric-rules-to-prometheus-rules-preview
  21. 面向不同,工具不同 愛用 SARIF (Static Analysis Results Interchange Format) 規格 Ref:

    https://learn.microsoft.com/zh-tw/azure/defender-for-cloud/defender-for-devops-introduction tfsec 掃 Terraform 問題 kube-linter 掃 Kubernetes 問題 Microsoft Defender for DevOps 掃 IaC 相關聯問題