研發運維雙管齊下!Seal AppManager的正確開啟方式

Seal數澈發表於2023-04-14

新一代應用統一部署管理平臺 Seal AppManager 採用平臺工程的理念,透過降低基礎設施操作的複雜度為研發和運維團隊提供易用、一致的應用管理和部署體驗。Seal AppManager 幫助研發和運維團隊實現關注點分離,即運維工程師負責基礎建設,研發可以在零基礎設施知識的情況下實現應用部署管理。
 

本文以運維和研發兩個視角,介紹如何透過Seal AppManager 從原始碼構建一個 Java Web 服務並部署到 Kubernetes 中。
 

運維視角

李維是 Alpha 公司的 DevOps,他需要搭建一個自服務平臺提供給不瞭解容器和 Kubernetes 的研發團隊使用。他做了以下準備工作:
 

  • 資源不少於4CPU,8Gi記憶體的 Linux 伺服器。
  • 至少 50GB 的空餘磁碟空間。
  • 安裝 Docker,詳細指引參Docker官方文件  

  • 伺服器開放80和443埠。

  • 前往官網申請請產品試用映象。

  • 安裝一個 Kubernetes 叢集,獲取到 Kubeconfig 檔案。
     

部署

執行以下命令啟動 Seal 服務:
sudo docker run -d --privileged --restart=always -p 80:80 -p 443:443 <seal-container-image>
 

訪問

透過以下 訪問Seal的UI。

 

第一次登陸時根據UI提示,在伺服器上執行以下指令獲取初始的管理員密碼。
sudo docker logs <your-container-id> 2>&1 | grep "Bootstrap Admin Password"
 

以 admin 使用者名稱以及初始管理員密碼登陸 Seal,並根據UI提示設定新的密碼以及 Seal 的訪問地址。
 

配置映象倉庫認證金鑰

配置提供給研發使用的映象倉庫測試賬號:

  1. 訪問【運維中心】-【全域性金鑰】選單,點選【新建金鑰】按鈕。
  2. 在【名稱】中填入  REGISTRY_USERNAME ,在【內容】中填入映象倉庫認證的使用者名稱,點選【儲存】按鈕。
  3. 再次點選【新建金鑰】按鈕。
    4 在【名稱】中填入 
    REGISTRY_PASSWORD ,在【內容】中填入映象倉庫認證的密碼,點選【儲存】按鈕。
     

配置 Kubernetes 與環境

新增 Kubernetes 叢集作為應用的部署目標:

  1. 訪問 【運維中心】-【聯結器】選單,點選【新建聯結器】按鈕。
  2. 在名稱中填入 test-k8s ,在  Kubeconfig  中填入準備的叢集  Kubeconfig  檔案,點選儲存按鈕。
  3. 訪問【運維中心】-【環境】選單,點選【新建環境】按鈕。
  4. 在【名稱】中填入  development
  5. 點選【新增聯結器】按鈕,選擇  test-k8s  聯結器,點選【儲存】按鈕。
     


 

注:

  • 聯結器是對接任意基礎設施和服務的抽象物件,例如 Kubernetes,公有/私有云,虛擬機器,版本控制系統等等。
  • 環境是應用部署目標,環境中可以關聯若干聯結器。

 
李維已經完成了基建工作!後續他可以在 Seal 平臺接入更多不同的基礎設施,新增更多沉澱了組織內 DevOps 最佳化實踐的應用模組,提供給研發團隊使用。對於本文的工作,使用 Seal 內建的模組即可完成。
 

研發視角

張研是 Alpha 公司的研發,他不熟悉 Kubernetes,他想在不需要提工單給運維的情況下快速搭建開發測試環境(所謂自服務)。
 

專案程式碼倉庫放置在

 


建立應用

張研登入Seal平臺執行以下操作:

  1. 問【應用管理】-【應用】選單,點選【新建應用】按鈕。
  2. 在【名稱】中填入  myapp ,點選模組配置中的【+】按鈕。
  3. 在模組名稱中填入  s2i ,模組列表中選擇  build-container-image ,在Git URL中填入 入 

  4. 點選【Build】標籤頁,在  image  中填入映象名稱  registry.alpha.org/myproject/myimage:latest (注:這是張研所在Alpha公司的倉庫地址,您需要換成您所用的映象倉庫地址)。
  5. 勾選【Registry Authentication】,在【Username】和【Password】中分別填入  ${secret.REGISTRY_USERNAME}  和  ${secret.REGISTRY_PASSWORD} 。Seal的UI會引導填寫對已配置金鑰的引用。點選【確定】儲存構建映象模組的配置。
  6. 點選【模組配置】中的【+】按鈕。
  7. 在模組名稱中填入  web ,確認模組列表中選擇  webservice ,在【Image Name】中填入  ${module.s2i.image} ,Seal的UI會引導填寫對其它模組輸出的引用。
  8. 修改  Ports  為 8888 埠(這是張研所用程式碼監聽的埠)。點選【確定】儲存web服務模組的配置。
  9. 點選【儲存】按鈕儲存應用配置。
     

部署應用

現在張研可 以在Seal上一鍵部署測試環境了:

  1. 進入  myapp  應用詳情頁。
  2. 點選應用資訊右側的【+】號新增例項按鈕。
  3. 在名稱中填入  dev1 ,選擇運維團隊(李維)提供的  development  環境。點選【確定】按鈕建立應用例項。
    4 等待部署完成,並在UI上出現該應用例項的訪問地址。

     



TADA!張研現在可以訪問他的服務測試環境了!後續他可以將該應用共享給其它的開發測試成員,建立多個應用例項。
 

總結

本文透過兩種角色視角的職責劃分,展示了 Seal 如何實現研發和運維關注點分離;透過從原始碼到 Kubernetes deployment 的部署,展示了Seal 的應用模型抽象。當然不止於此,一個應用模組可以是構建邏輯、雲原生工作負載,也可以是傳統部署負載或是其它的資源抽象。
 
歡迎來探索更多功能!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026925/viewspace-2945880/,如需轉載,請註明出處,否則將追究法律責任。

相關文章