應(yīng)用編排原理
本文主要介紹如何使用云效 AppStack 應(yīng)用編排能力進(jìn)行部署環(huán)境。
應(yīng)用編排原理
云效 AppStack 應(yīng)用編排用于定義應(yīng)用部署架構(gòu),支持 Kubernetes 和主機(jī)部署場景。編排生效邏輯如下:
云效 AppStack 以面向終態(tài)的方式定義應(yīng)用環(huán)境部署配置。環(huán)境部署時(shí),讀取相應(yīng)類型的編排文件,并使用部署參數(shù)替換占位符,渲染成最終生效的 YAML 文件(K8s 部署)或腳本(主機(jī)部署),下發(fā)到環(huán)境關(guān)聯(lián)的集群或主機(jī)上執(zhí)行部署操作。
應(yīng)用編排:定義應(yīng)用的部署架構(gòu),支持 K8s YAML 和主機(jī)腳本部署架構(gòu)。
編排組件:K8s 場景是一個可獨(dú)立部署的資源,對應(yīng)一個 K8s YAML 文件;主機(jī)場景是一個可獨(dú)立部署的服務(wù),對應(yīng)一個或一組軟件包部署和相關(guān)依賴信息的配置。。
占位符:應(yīng)用編排文件中用于動態(tài)替換內(nèi)容的固定位置。
變量:一個 key/value 鍵值對。
變量組:一組變量的集合。
應(yīng)用編排版本:每次修改編排文件都會生成一個版本,方便查閱和回滾。
云效 AppStack 提供占位符和變量組機(jī)制,您可以使用占位符替換編排文件中的部分關(guān)鍵字,以實(shí)現(xiàn)多環(huán)境差異化部署。AppStack 預(yù)置了一些常用的占位符,您也可以根據(jù)需要添加自定義占位符。
場景示例
使用多個 K8s Namespace 隔離多個環(huán)境
Kubernetes 部署場景下,線下環(huán)境可能使用同一個 K8s 集群。通常會使用多個命名空間(Namespace)來隔離多套環(huán)境,如開發(fā)環(huán)境使用 dev,測試環(huán)境使用 test(生產(chǎn)環(huán)境通常是單獨(dú)的集群)。在 YAML 文件中將 namespace 關(guān)鍵字的值替換為占位符
{{ .Values.namespace }}
,占位符賦值為變量${namespace}
,在開發(fā)、測試環(huán)境分別使用值 dev、test,提交部署時(shí)進(jìn)行變量替換,應(yīng)用環(huán)境將部署到指定的 Kubernetes 命名空間。為線下環(huán)境與生產(chǎn)環(huán)境在不同的端口啟動服務(wù)
主機(jī)部署場景下,線下環(huán)境與生產(chǎn)環(huán)境可能需要在不同的端口啟動服務(wù)。在主機(jī)啟動腳本中將啟動端口號定義成
{{ .Values.port }}
,占位符賦值為變量${port}
,在開發(fā)、測試環(huán)境分別使用值 8080、8081,提交部署時(shí)進(jìn)行變量替換,應(yīng)用環(huán)境將在指定的端口啟動服務(wù)。
部署方式
云效 AppStack 應(yīng)用編排支持三種部署方式:
Kubernetes 部署(適用于云原生場景),具體使用說明可參考 Kubernetes 部署編排。
主機(jī)部署(適用于傳統(tǒng)主機(jī)場景),具體使用說明可參考 主機(jī)部署編排。
Kubernetes 和主機(jī)混合部署(適用于轉(zhuǎn)型場景)。
在應(yīng)用架構(gòu)轉(zhuǎn)型時(shí),您可以新增或刪除某種編排方式,實(shí)現(xiàn)平滑遷移。
編排配置變更與環(huán)境部署
應(yīng)用部署配置變更需要逐環(huán)境驗(yàn)證后發(fā)布到生產(chǎn)環(huán)境。云效AppStack支持在編排更新時(shí)增加環(huán)境標(biāo)簽,標(biāo)識修改版本。環(huán)境部署時(shí)可選編排版本,不影響生產(chǎn)發(fā)布。
以下以 myapp 應(yīng)用為例,描述編排配置變更流程。myapp 使用 Kubernetes YAML 文件編排,有測試、預(yù)發(fā)、生產(chǎn)三套環(huán)境。初始版本為 V1,需修改為 V2(如 containerPort 從 80 改為 8080)。
進(jìn)入應(yīng)用編排,修改 YAML 文件生成 V2 版本,確認(rèn)無誤后標(biāo)識為測試環(huán)境。
部署測試環(huán)境,選擇 V2 版本進(jìn)行測試驗(yàn)證。
部署預(yù)發(fā)環(huán)境,選擇 V2 版本進(jìn)行預(yù)發(fā)驗(yàn)證。
測試驗(yàn)證通過后,標(biāo)識為預(yù)發(fā)環(huán)境。
預(yù)發(fā)驗(yàn)證通過后,標(biāo)識為生產(chǎn)環(huán)境。
生產(chǎn)發(fā)布時(shí),提示有新版本,手動創(chuàng)建部署單,選擇 V2 版本發(fā)布到生產(chǎn)。
至此,完成了一次編排配置變更,從測試驗(yàn)證、預(yù)發(fā)部署到最終發(fā)布生產(chǎn)的全部過程。