研發(fā)運(yùn)維雙管齊下!Seal AppManager的正確打開(kāi)方式

新一代應(yīng)用統(tǒng)一部署管理平臺(tái) Seal AppManager 采用平臺(tái)工程的理念,通過(guò)降低基礎(chǔ)設(shè)施操作的復(fù)雜度為研發(fā)和運(yùn)維團(tuán)隊(duì)提供易用、一致的應(yīng)用管理和部署體驗(yàn)。Seal AppManager 幫助研發(fā)和運(yùn)維團(tuán)隊(duì)實(shí)現(xiàn)關(guān)注點(diǎn)分離,即運(yùn)維工程師負(fù)責(zé)基礎(chǔ)建設(shè),研發(fā)可以在零基礎(chǔ)設(shè)施知識(shí)的情況下實(shí)現(xiàn)應(yīng)用部署管理。
?
本文以運(yùn)維和研發(fā)兩個(gè)視角,介紹如何通過(guò)Seal AppManager 從源碼構(gòu)建一個(gè) Java Web 服務(wù)并部署到 Kubernetes 中。
?
運(yùn)維視角
李維是 Alpha 公司的 DevOps,他需要搭建一個(gè)自服務(wù)平臺(tái)提供給不了解容器和 Kubernetes 的研發(fā)團(tuán)隊(duì)使用。他做了以下準(zhǔn)備工作:
資源不少于4CPU,8Gi內(nèi)存的 Linux 服務(wù)器。
至少 50GB 的空余磁盤(pán)空間。
安裝 Docker,詳細(xì)指引參Docker官方文檔(https://docs.docker.com/)。
服務(wù)器開(kāi)放80和443端口。
前往官網(wǎng)(https://seal.io/trial)申請(qǐng)產(chǎn)品試用鏡像。
安裝一個(gè) Kubernetes 集群,獲取到 Kubeconfig 文件。
?
部署
執(zhí)行以下命令啟動(dòng) Seal 服務(wù):sudo docker run -d --privileged --restart=always -p 80:80 -p 443:443 <seal-container-image>
?
訪問(wèn)
通過(guò)?https://<server-address>
?訪問(wèn)Seal的UI。
?
第一次登陸時(shí)根據(jù)UI提示,在服務(wù)器上運(yùn)行以下指令獲取初始的管理員密碼。sudo docker logs <your-container-id> 2>&1 | grep "Bootstrap Admin Password"
?
以 admin 用戶名以及初始管理員密碼登陸 Seal,并根據(jù)UI提示設(shè)置新的密碼以及 Seal 的訪問(wèn)地址。
?
配置鏡像倉(cāng)庫(kù)認(rèn)證密鑰
配置提供給研發(fā)使用的鏡像倉(cāng)庫(kù)測(cè)試賬號(hào):
訪問(wèn)【運(yùn)維中心】-【全局密鑰】菜單,點(diǎn)擊【新建密鑰】按鈕。
在【名稱】中填入?
REGISTRY_USERNAME
,在【內(nèi)容】中填入鏡像倉(cāng)庫(kù)認(rèn)證的用戶名,點(diǎn)擊【保存】按鈕。再次點(diǎn)擊【新建密鑰】按鈕。
4 在【名稱】中填入?REGISTRY_PASSWORD
,在【內(nèi)容】中填入鏡像倉(cāng)庫(kù)認(rèn)證的密碼,點(diǎn)擊【保存】按鈕。
?
配置 Kubernetes 與環(huán)境
添加 Kubernetes 集群作為應(yīng)用的部署目標(biāo):
訪問(wèn)【運(yùn)維中心】-【連接器】菜單,點(diǎn)擊【新建連接器】按鈕。
在名稱中填入
test-k8s
,在?Kubeconfig
?中填入準(zhǔn)備的集群?Kubeconfig
?文件,點(diǎn)擊保存按鈕。訪問(wèn)【運(yùn)維中心】-【環(huán)境】菜單,點(diǎn)擊【新建環(huán)境】按鈕。
在【名稱】中填入?
development
。點(diǎn)擊【添加連接器】按鈕,選擇?
test-k8s
?連接器,點(diǎn)擊【保存】按鈕。

注:
連接器是對(duì)接任意基礎(chǔ)設(shè)施和服務(wù)的抽象對(duì)象,例如 Kubernetes,公有/私有云,虛擬機(jī),版本控制系統(tǒng)等等。
環(huán)境是應(yīng)用部署目標(biāo),環(huán)境中可以關(guān)聯(lián)若干連接器。?
李維已經(jīng)完成了基建工作!后續(xù)他可以在 Seal 平臺(tái)接入更多不同的基礎(chǔ)設(shè)施,添加更多沉淀了組織內(nèi) DevOps 最佳實(shí)踐的應(yīng)用模塊,提供給研發(fā)團(tuán)隊(duì)使用。對(duì)于本文的工作,使用 Seal 內(nèi)置的模塊即可完成。
?
研發(fā)視角
張研是 Alpha 公司的研發(fā),他不熟悉 Kubernetes,他想在不需要提工單給運(yùn)維的情況下快速搭建開(kāi)發(fā)測(cè)試環(huán)境(所謂自服務(wù))。
?
項(xiàng)目代碼倉(cāng)庫(kù)放置在:https://github.com/seal-demo/spring-boot-docker-sample
?
創(chuàng)建應(yīng)用
張研登入Seal平臺(tái)執(zhí)行以下操作:
訪問(wèn)【應(yīng)用管理】-【應(yīng)用】菜單,點(diǎn)擊【新建應(yīng)用】按鈕。
在【名稱】中填入?
myapp
,點(diǎn)擊模塊配置中的【+】按鈕。在模塊名稱中填入?
s2i
,模塊列表中選擇?build-container-image
,在Git URL中填入?https://github.com/seal-demo/spring-boot-docker-sample。點(diǎn)擊【Build】標(biāo)簽頁(yè),在?
image
?中填入鏡像名稱?registry.alpha.org/myproject/myimage:latest
(注:這是張研所在Alpha公司的倉(cāng)庫(kù)地址,您需要換成您所用的鏡像倉(cāng)庫(kù)地址)。勾選【Registry Authentication】,在【Username】和【Password】中分別填入?
${secret.REGISTRY_USERNAME}
?和?${secret.REGISTRY_PASSWORD}
。Seal的UI會(huì)引導(dǎo)填寫(xiě)對(duì)已配置密鑰的引用。點(diǎn)擊【確定】保存構(gòu)建鏡像模塊的配置。點(diǎn)擊【模塊配置】中的【+】按鈕。
在模塊名稱中填入?
web
,確認(rèn)模塊列表中選擇?webservice
,在【Image Name】中填入?${module.s2i.image}
,Seal的UI會(huì)引導(dǎo)填寫(xiě)對(duì)其它模塊輸出的引用。修改?
Ports
?為 8888 端口(這是張研所用代碼監(jiān)聽(tīng)的端口)。點(diǎn)擊【確定】保存web服務(wù)模塊的配置。點(diǎn)擊【保存】按鈕保存應(yīng)用配置。
?
部署應(yīng)用
現(xiàn)在張研可以在Seal上一鍵部署測(cè)試環(huán)境了:
進(jìn)入?
myapp
?應(yīng)用詳情頁(yè)。點(diǎn)擊應(yīng)用信息右側(cè)的【+】號(hào)添加實(shí)例按鈕。
在名稱中填入?
dev1
,選擇運(yùn)維團(tuán)隊(duì)(李維)提供的?development
?環(huán)境。點(diǎn)擊【確定】按鈕創(chuàng)建應(yīng)用實(shí)例。等待部署完成,并在UI上出現(xiàn)該應(yīng)用實(shí)例的訪問(wèn)地址。


TADA!張研現(xiàn)在可以訪問(wèn)他的服務(wù)測(cè)試環(huán)境了!后續(xù)他可以將該應(yīng)用共享給其它的開(kāi)發(fā)測(cè)試成員,創(chuàng)建多個(gè)應(yīng)用實(shí)例。
?
總結(jié)
本文通過(guò)兩種角色視角的職責(zé)劃分,展示了 Seal 如何實(shí)現(xiàn)研發(fā)和運(yùn)維關(guān)注點(diǎn)分離;通過(guò)從源碼到 Kubernetes deployment 的部署,展示了Seal 的應(yīng)用模型抽象。當(dāng)然不止于此,一個(gè)應(yīng)用模塊可以是構(gòu)建邏輯、云原生工作負(fù)載,也可以是傳統(tǒng)部署負(fù)載或是其它的資源抽象。
?
歡迎來(lái)探索更多功能!