Leo Yeh's Blog

SAS Viya (88)

教學目標

初步了解 SAS Event Stream Processing 的基本概念。

重點概念

首先 SAS Event Stream Processing 已經為雲端大規模分散式服務做好準備,我們幾乎可以在任何地方部署,從資料中心到邊緣設備,從物理機器到雲端環境,我們主要會先建立多個 Docker 映像檔,然後使用這些映像檔在 Kubernetes 中建立 SAS Event Stream Processing 完整部署,所謂完整部署主要包括 ESP server、SAS Event Stream Processing Studio 和 Streamviewer。所謂 Kubernetes 主要是一個在雲原生環境中部署和管理應用程式的開放源始碼系統,當我們在將 SAS Event Stream Processing 完整部署到自安裝的 Kubernetes 叢集平台之前,我們必須滿足以下先決條件:

  1. 確認作業系統支援 Docker 容器。
  2. 確認已安裝且可以開始使用的 Kubernetes 叢集平台。
  3. 確認存取 Docker 註冊表,以利將 Docker 映像檔推送至 Docker 註冊表中。

接著我們主要透過以下部署步驟將 SAS Event Stream Processing 完整部署到自安裝的 Kubernetes 叢集,分別為:

  1. 在作業系統上我們需要從中部署 SAS Event Stream Processing 完整部署的系統上創建一個目錄為工作目錄。
  2. 找到軟體訂單的電子郵件 (SOE) ,並且從中下載「SAS_Viya_deployment_data.zip」檔案,再將檔案複製至工作目錄。
  3. 在工作目錄中透過「git clone git@github.com/sassoftware/sas-container-recipes」指令複製 GitHub 存儲庫。
  4. 在工作目錄中透過「docker login」指令登錄至 Docker 註冊表中。
  5. 在工作目錄中,執行「build.sh」指令碼腳本建立 Docker 映像檔推送至 Docker 註冊表中。
1
2
3
$ ./build.sh --type full --docker-registry-namespace sas-esp
--docker-registry-url docker.sas.com
--zip SAS_Viya_deployment_data.zip

其中 SAS Event Stream Processing 的 Docker 映像檔,主要有幾個重要的元件,分別為:

  1. SAS Data Service
  2. RabbitMQ Message Bus
  3. Postgres Database
  4. Reverse Proxy Server
  5. SAS Data Configuration
  6. SAS ESP Design Studio
  7. SAS ESP Dashboard Tool
  8. SAS ESP Server
  9. SAS Core Microservices
  10. SAS Configuration Database

再來當 Docker 映像檔產生之後,我們就能夠透過 kubectl 指令在 Kubernetes 叢集平台中套用 Namespace、Configmaps、Ingress、Secrets、Services 和 Deployments 相關設定部署多個 Docker 容器,並且進行互動關聯。

1
2
3
4
5
6
$ kubectl apply -f viya-visuals/working/manifests/kubernetes/namespace
$ kubectl -n sas-esp apply -f viya-visuals/working/manifests/kubernetes/configmaps
$ kubectl -n sas-esp apply -f viya-visuals/working/manifests/kubernetes/ingress
$ kubectl -n sas-esp apply -f viya-visuals/working/manifests/kubernetes/secrets
$ kubectl -n sas-esp apply -f viya-visuals/working/manifests/kubernetes/services
$ kubectl -n sas-esp apply -f viya-visuals/working/manifests/kubernetes/deployments

最後雖然 SAS Event Stream Processing 部署至 Kubernetes 叢集平台中,但是管理員仍然執行目前的所有任務,像是資料內容必須進行管理,並且進行授權控管,其中許多任務與我們在 Linux 作業系統平台中的任務完全相同,但是唯獨儲存是建立解決方案時需要更多思考的另一個領域,因為管理員必須處理可能在容器內部或外部建立和存取資源的權限。此外我們也能夠透過「sas-admin」的命令提示介面下載到 Kubernetes 叢集平台之外的位置,以利作為 SAS Event Stream Processing 管理的客戶端,主要用於執行各種管理任務,然而若還是習慣 Linux 作業系統平台的指令操作,則我們也能夠透過以下指令連線至 Kubernetes 叢集平台中的任一容器執行各種管理任務和故障排除。

1
$ kubectl -n sas-esp exec -it $(kubectl -n sas-esp get po | grep consul| awk '{print $1}') -- bash

相關資源

⬅️ Go back