編輯

共用方式為


Azure 中的 SMA OpCon

Azure Kubernetes Service (AKS)
Azure Private Link
Azure SQL Database
Azure 儲存體
Azure VPN 閘道

解決方案構想

本文說明解決方案概念。 您的雲端架構設計人員可以使用本指南,協助可視化此架構的一般實作的主要元件。 使用本文作為起點,設計符合您工作負載特定需求的架構良好解決方案。

本文提供一個解決方案,可自動化在整個企業中各種伺服器和系統上執行的工作負載。 解決方案會在 Azure 中的 Kubernetes 組態中使用來自 SMA Technologies 的 OpCon。 從單一自動化控制點,OpCon 可促進整個企業的工作流程,無論是內部部署還是 Azure。

架構

顯示如何在 Azure 或混合式環境中部署 OpCon 的架構圖表。除了 OpCon,元件還包括 SQL 資料庫 和 VPN 閘道。

下載此架構的 Visio 檔案

工作流程

  1. OpCon 容器提供核心服務,這些服務部署在 Azure Kubernetes Service (AKS) 內。 這些核心服務包括解決方案管理員,這是 Web 型使用者介面。 用戶可以使用方案管理員與整個 OpCon 環境互動。 除了其他元件之外,環境還包括:

    • 儲存記錄和設定資訊的永續性磁碟區,並在容器重新啟動時提供數據持續性。 針對這些磁碟區,解決方案會使用 Azure 檔案儲存體,該值中StorageClass設定。
    • OpCon 資料庫。
    • 執行工作負載的虛擬機(VM)。
  2. 解決方案會使用 Azure SQL 資料庫 作為 OpCon 資料庫。 核心服務可透過 Azure Private Link 私人端點存取此資料庫。

  3. OpCon 核心服務會使用 OpCon 連接器技術與 Azure 儲存體 互動,並管理 Azure Blob 儲存體 中的數據。 OpCon 受控檔傳輸也支援記憶體。

  4. 應用程式子網包含 OpCon 受控檔案傳輸伺服器,可提供完整的檔案傳輸功能。 功能包括壓縮、加密、解密、解壓縮、檔案監看,以及企業級自動化檔案路由。

  5. Azure VM 組成應用程式基礎結構。 這些 VM 在子網和虛擬網路中的位置具有彈性。 如需詳細資訊,請參閱 元件放置

    • 若要管理這些 VM 和內部部署舊版系統上的工作負載,OpCon 核心服務會與安裝在 VM 上的 OpCon 代理程式通訊。 核心服務會透過虛擬網路閘道上的站對站連線,與內部部署系統通訊。
    • OpCon 核心服務會直接與提供 REST API 端點的應用程式通訊。 這些應用程式不需要額外的軟體來連線到核心服務。 透過內部部署系統,通訊會使用 REST API 連線選項,並透過虛擬網路閘道移動。
  6. 在混合式環境中,閘道網會使用站對站 VPN 通道,協助保護內部部署環境與 Azure 雲端環境之間的連線。

  7. 網關包含 Azure VPN 閘道 與內部部署 VPN 裝置之間的跨單位 IPsec/IKE VPN 通道連線。 在 Azure 雲端與內部部署環境之間傳遞的所有數據,都會在跨因特網時,在此站對站私人通道中加密。

  8. 內部部署環境中的局域網路網關代表通道內部部署端的閘道。 局域網路網關會保存建置 VPN 通道及路由傳送流量至內部部署子網所需的組態資訊。

  9. 所有使用者要求都會透過網關聯機路由傳送至 OpCon 核心服務環境。 透過該存取權,使用者與解決方案管理員互動以進行:

    • OpCon 管理。
    • OpCon 受控檔傳輸管理。
    • OpCon 工作流程開發、執行和監視。
    • 自助,用於執行工作的OpCon介面。
    • 視覺,OpCon 工作儀錶板。
    • OpCon 受控檔傳輸中央應用程式,儀錶板和查詢應用程式。
  10. OpCon 代理程式和應用程式 REST API 端點會安裝在內部部署環境中的舊版系統上。 OpCon 核心服務會使用虛擬網路閘道上的站對站連線,與這些代理程式和端點通訊。

在整個解決方案中,您可以使用網路安全組來限制子網之間的流量流量。

元件

  • Azure 虛擬機器 是 Azure 所提供的數種隨選、可調整運算資源之一。 Azure VM 提供虛擬化的彈性,但可消除實體硬體的維護需求。 透過 Azure,您可以選擇 Windows 或 Linux VM。

  • Azure 虛擬網路 是私人網路在 Azure 中的基本建置組塊。 透過 虛擬網絡,VM 等 Azure 資源可以安全地彼此通訊、因特網和內部部署網路。 Azure 虛擬網路就像是在數據中心運作的傳統網路。 但 Azure 虛擬網路也提供 Azure 基礎結構的延展性、可用性、隔離和其他優點。

  • Private Link 提供虛擬網路中的私人端點。 您可以使用私人端點來連線到 Azure 平臺即服務(PaaS)服務,例如記憶體和 SQL 資料庫 或客戶或合作夥伴服務。

  • 記憶體針對數據、應用程式和工作負載提供高可用性、可調整、安全的雲端記憶體。

  • Azure 檔案儲存體 是屬於記憶體一部分的服務。 Azure 檔案儲存體提供雲端中完全受控的檔案共用,可透過業界標準伺服器訊息區 (SMB) 通訊協定來存取。 Azure 檔案共用可以透過 Windows、Linux 和 macOS 用戶端的雲端或內部部署部署同時掛接。

  • Blob 記憶體 是屬於記憶體一部分的服務。 Blob 記憶體針對大量的非結構化數據,提供優化的雲端物件記憶體。 此服務非常適合高效能運算、機器學習和雲端原生工作負載。

  • VPN 閘道 是特定類型的虛擬網路閘道。 您可以使用 VPN 閘道 來傳輸加密的流量。 該流量可以透過公用因特網在 Azure 虛擬網路與內部部署位置之間流動。 它也可以透過 Azure 骨幹網路在 Azure 虛擬網路之間流動。

  • Azure ExpressRoute 會透過連線提供者促進的私人連線,將您的內部部署網路延伸至Microsoft雲端。 透過 ExpressRoute,您可以建立與雲端服務的連線,例如Microsoft Azure 和 Microsoft 365。

  • Azure Site Recovery 使商務應用程式和工作負載在中斷期間持續運作,有助於確保商務持續性。 Site Recovery 可以將在實體機器和 VM 上執行的工作負載從主要月臺復寫到次要位置。 當您的主要月台發生中斷時,您可以故障轉移至次要位置,並從該處存取應用程式。 在主要位置再次執行之後,您就可以容錯回復。

  • Azure SQL 是 SQL Server 引擎所提供的一系列 Azure 資料庫。 Azure SQL 包含 Azure 虛擬機器、Azure SQL 受控執行個體 和 SQL 資料庫 上的 SQL Server。

  • SQL 資料庫 是完全受控的 PaaS 資料庫引擎,具有 AI 支援的自動化功能。 OpCon 後端可以使用 SQL 資料庫 來管理 OpCon 專案。

  • SQL 受管理執行個體 是智慧型手機且可調整的雲端資料庫服務,結合了最廣泛的 SQL Server 引擎相容性,以及完全受控且常青的 PaaS 的所有優點。 OpCon 後端可以使用 SQL 受管理執行個體 來管理 OpCon 專案。

  • OpCon 核心服務會在 Kubernetes 複本集內的Linux容器中執行。 此解決方案會針對 OpCon 資料庫使用 SQL 資料庫。

  • OpCon 自助 是 Web 型實作,可讓使用者在 OpCon 環境中執行隨選工作,並選擇性地輸入自變數。

  • OpCon Vision 提供監視 OpCon 工作的儀錶板。 儀錶板會顯示所有流程中工作的邏輯表示法。 視覺會使用標記將相關聯的工作分組在一起。 發生問題時,您可以從儀錶板向下切入到失敗的工作。 視覺也提供一種方式來設定每個群組的 SLA 值。 當可能不符合定義的 SLA 值時,儀錶板會提供早期警告。

  • OpCon 受控檔傳輸 會在 OpCon 環境中提供受控檔傳輸服務。 OpCon 受控檔傳輸解決方案使用整合式受控檔傳輸代理程式和檔傳輸伺服器,跨企業提供檔傳輸和監視功能。

替代項目

下列各節說明實作解決方案時要考慮的替代方案。

元件放置

VM 和 OpCon 資料庫的位置具有彈性。

  • 應用程式子網可以包含應用程式 VM。 您也可以在多個子網或虛擬網路中安裝應用程式伺服器。 當您想要為不同類型的伺服器建立不同的環境,例如 Web 和應用程式伺服器時,請使用此方法。
  • 您可以將資料庫放在 OpCon 子網內部或外部。

SQL 受控執行個體

您可以使用 SQL 受管理執行個體 作為 OpCon 資料庫,而不是使用 SQL 資料庫。 您可以在 OpCon 子網中安裝 SQL 受控實例。 或者,您可以將受控實例安裝在您專用於現有虛擬網路中 SQL 受控實例的個別子網中。

ExpressRoute

您可以使用 ExpressRoute,而不是使用 VPN 閘道 和站對站 VPN 通道,而使用連線提供者來建立與Microsoft全域網路的私人連線。 ExpressRoute 連線不會經過公用網際網路。

我們建議針對執行需要高度延展性和復原能力之大規模業務關鍵工作負載的混合式應用程式使用 ExpressRoute。

案例詳細資料

協助工作負載的核心 OpCon 模組是排程活動監視器 (SAM)。 本課程模組會與目標系統上的代理程序通訊,以排程和監視工作。 SAM 也會接收外部事件。 您可以在下列平台上安裝 OpCon 代理程式:

  • Windows
  • Linux 或 Unix
  • Unisys ClearPath Forward 大型主機 (MCP 和 2200)
  • IBM z/OS
  • IBM AIX

SAM 在一個自動化保護傘下將各種平臺一起繪製在一起。

您可以在 Azure 雲端環境中安裝 OpCon。 OpCon 支援僅限雲端的基礎結構,以及包含雲端和內部部署系統的混合式基礎結構。

OpCon 軟體可從 Docker Hub 取得,作為您可以在雲端環境中部署的 Docker 映射。 針對 Azure 雲端,此解決方案會使用 AKS 在 Kubernetes 叢集中部署 OpCon 環境。 SQL 資料庫 會當做資料庫使用。

針對混合式環境,VPN 閘道 提供雲端基礎結構與內部部署基礎結構之間的安全連結。

實作會使用單一虛擬網路和多個子網來支持各種功能。 您可以使用網路安全組來篩選虛擬網路中 Azure 資源之間的網路流量。

AKS 組態

部署的 OpCon 環境包含單一複本集內的兩個 Pod,以及一個 SQL 資料庫 的實例。 負載平衡器可控制 Pod 的存取權。 負載平衡器會將外部位址和埠對應至內部 REST API 伺服器位址和埠。

下圖顯示具有兩個 Pod 的環境組態需求:OpCon 和 Impex2。 此圖也會顯示 Kubernetes 組態 YAML 檔案中各種定義之間的關聯性。

顯示解決方案所使用 Kubernetes 組態值的架構圖表。

下載此架構的 Visio 檔案

下表提供每個定義的詳細資訊。

種類 Description
Secret dbpasswords 包含連線到 OpCon 資料庫所需的資料庫密碼。
ConfigMap opcon 包含 OpCon REST API 資訊、時區和語言資訊。 也包含 OpCon 資料庫資訊,例如地址、資料庫名稱和資料庫使用者。
ConfigMap impex 包含 Impex2 REST API 資訊。 也包含 OpCon 資料庫資訊,例如地址、資料庫名稱和資料庫使用者。
PersistentVolumeClaim opconconfig 包含各種.ini檔案和 OpCon 授權檔案。
PersistentVolumeClaim opconlog 包含與 OpCon 環境相關聯的記錄檔。
PersistentVolumeClaim impexlog 包含與 Impex2 環境相關聯的記錄檔。
ReplicaSet opcon 指定參考先前定義 SecretConfigMapPersistentVolumeClaim 定義的 OpCon 和 Impex2 容器定義。
Service loadbalancer 定義 OpCon 和 Impex2 REST 伺服器與外部位址和埠的內部 REST API 埠對應。

潛在使用案例

許多案例都可以受益於此解決方案:

  • 整個IT企業的工作負載自動化和協調流程
  • 災害復原自動化
  • 跨平臺檔案傳輸
  • IT 環境作業
  • 批次排程
  • 執行自助自動化工作流程
  • 伺服器更新自動化和部署
  • 修補程式管理自動化和部署
  • Azure 資源的布建和解除委任自動化
  • 從單一介面監視整個IT環境
  • 編纂可重複或隨選程式

部署此案例

您可以使用下列範本在 AKS 叢集內部署 OpCon 環境。

# 
# Full OpCon deployment for Kubernetes
#
# This deployment uses Azure SQL Database.
#
apiVersion: v1
kind: Secret
metadata:
  name: dbpasswords
stringData:
  saPassword: ""
  dbPassword: ""
  sqlAdminPassword: ""
  dbPasswordEncrypted: ""
 
---
# OpCon environment values
apiVersion: v1
kind: ConfigMap
metadata:
  name: opconenv
data:
  DB_SERVER_NAME: "sqlopcon.database.windows.net"
  DATABASE_NAME: "opcon"
  DB_USER_NAME: "opconadmin"
  SQL_ADMIN_USER: "opconadmin"
  API_USES_TLS: "true" 
  CREATE_API_CERTIFICATE: "true"
  DB_SETUP: "true"
  TZ: "America/Chicago"
  LANG: "en_US.utf-8"
  LICENSE: ""
---
# Impex environment values
apiVersion: v1
kind: ConfigMap
metadata:
  name: impexenv
data:
  opcon.server.name: "sqlopcon.database.windows.net"
  opcon.db.name: "opcon"
  opcon.db.user: "opconadmin"
  web.port: "9011"
  web.ssl: "true" 
  system.debug: "false"
  TZ: "America/Chicago"
  LANG: "en_US.utf-8"
---
# OpCon persistent storage for configuration information
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: opconconfig
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
---
# OpCon persistent storage for log information
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: opconlog
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
---
# Impex persistent storage for log information
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: impexlog
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
---
# OpCon and deploy pods in a single replica set
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: opcon
spec:
  replicas: 1
  selector:
    matchExpressions:
      - key: app
        operator: In
        values:
          - opconservices
  template:
    metadata:
      labels:
        app: opconservices
    spec:
      containers:
      - env:
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: dbpasswords
              key: dbPassword
        - name: SQL_ADMIN_PASSWORD
          valueFrom:
            secretKeyRef:
              name: dbpasswords
              key: sqlAdminPassword
        envFrom:
          - configMapRef:
              name: opconenv
        image: smatechnologies/opcon-server:22.0-latest
        name: opcon
        ports:
        - containerPort: 443
          protocol: TCP
        volumeMounts:
        - name: opconconfig
          mountPath: /app/config
        - name: uat-opconlog
          mountPath: /app/log
      - env:
        - name: opcon.db.password
          valueFrom:
            secretKeyRef:
              name: dbpasswords
              key: dbPasswordEncrypted
        envFrom:
          - configMapRef:
              name: impexenv
        image: smatechnologies/deploy-impex2:22.0-latest
        name: impex
        volumeMounts:
        - name: impexlog
          mountPath: /app/log
      hostname: opcon
      volumes:
      - name: opconconfig
        persistentVolumeClaim:
          claimName: opconconfig
      - name: opconlog
        persistentVolumeClaim:
          claimName: opconlog
      - name: impexlog
        persistentVolumeClaim:
          claimName: impexlog
---
# OpCon service
apiVersion: v1
kind: Service
metadata:
  name: lbopcon
spec:
  type: LoadBalancer
  ports:
  - name: apiport
    port: 9010
    targetPort: 443
  - name: impexport
    port: 9011
    targetPort: 9011
  selector:
    app: opconservices

參與者

本文由 Microsoft 維護。 原始投稿人如下。

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

下一步

如需此解決方案的詳細資訊: