天天看點

阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹

前言

本文主要探讨政務雲下,使用容器方式部署服務時,整體配套的阿裡雲産品,同時介紹主要使用的基礎産品及這些産品使用的一些建議。

下文對于阿裡雲産品的使用介紹基于目前的政務雲版本,與公有雲版本存在一定差異,僅供參考。

部署架構

阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹

由于線上環境穩定要求較高,是以加入了撥測 和 監控報警服務,為項目單獨開發,本文暫不做介紹。

産品介紹

EDAS(企業級分布式應用服務)

使用方式

edas的釋出主要有兩種方式基于ESC叢集部署和基于k8s叢集部署(需要配合阿裡雲的容器服務使用)

同時,edas也提供了微服務的注冊中心和配置中心

tips

  • 使用edas+acs實作無損釋出(釋出期間流量不中斷)

滾動釋出 + Readiness配置,配置健康檢查的接口,隻有通過了Readiness檢測,流量才會打到此pod。

阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹

ACS(容器服務)

容器需要對外暴露服務時,是不可使用pod Ip + 端口的,這隻在k8s叢集内部可識别,正确的做法是使用容器服務配置服務,容器服務本身是提供了slb負載均衡的位址段的。(使用EDAS釋出時,EDAS也可直接配置負載均衡,但需要關聯SLB,較為不便,不推薦)

阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹

SLB (負載均衡)

基于k8s釋出的服務,SLB中無法直接選擇相應的伺服器,需要手動添加服務ip位址(上面容器服務中配置服務的負載均衡位址)

阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹

SLS(日志服務)

叢集部署時,日志分散在各個節點上,檢視日志時,需要切換各個節點檢視,極為不便(容器方式還需要多一步進入容器,更為麻煩)。

sls采集容器服務的日志時,需要把logtail配置到鏡像内,同時采用機器組格式,多台伺服器通過同一個自定義辨別實作機器組彈性伸縮。(容器每次重新開機pod ip會變更,不适合使用固定IP)

# 擷取安裝logtail的腳本
wget http://data.cn-hangzhou-zwynet-d01.sls-pub.internet.cloud.zj.gov.cn/logtail.sh 
# 安裝logtail
sh logtail.sh install 
# 修改機器組辨別
echo dayu-compute-yufa > /etc/ilogtail/user_defined_id       

  • sls的預設全文索引,基于分詞查詢的,可以根據需要配置分詞符 (預設配置中 . 并不是分詞符)
阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹

以預設配置為例,以下日志搜IOException并不能搜到日志, 需要搜java.io.IOException,因為預設 . 并不是分詞符,需要按完整分詞搜尋

阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹
  • 基于格式化字段的搜尋  如 ElapseTime > 1000,需要給該字段加數值索引,否則不生效
阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹
阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹
  • 基于分詞符,索引的修改隻能對後續接入的日志生效,并能不影響之前的資料
  • 同一個檔案,隻能被一個Logtail的配置收集,不支援同時被多個logtail配置收集
  • 不要使用極簡模式(單行) 模式采集日志,異常棧會被認作是多行日志,叢集模式下,會出現錯序,使用極簡-多行 或正則模式比對行首即可

ARMS(應用實時監控服務)

使用jar包方式部署時,不需要額外的配置即可接入arms;使用容器部署時,需要将探針拷貝到鏡像中,同時指定相應的啟動指令。

# 拷貝ARMS探針
COPY ArmsAgent.zip ArmsAgent.zip

# 啟動指令
# 啟動後端服務
java -javaagent:/data/arms/ArmsAgent/arms-bootstrap.jar -Darms.licenseKey=#{licenceKey} -Darms.appName=#{appName} -jar java.jar --spring.profiles.active=${activeProfile}
      

  • 慢SQL巡檢優化 (可以使用接口快照檢視是由哪些接口引起的)
阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹
  • 異常分析,可以輔助測試發現一些隐蔽的問題(可以使用接口快照檢視是由哪些接口引起的)
阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹
  • 調用鍊路,耗時分析優化 & 錯誤排查, 調用棧中會将每一步的耗時列印出來,另外,如果該接口出錯,調用棧也會展示在哪個方法中抛出了異常
阿裡雲 + 容器化 配套産品使用介紹前言部署架構産品介紹