SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(工具部署)


7.23頭圖.png

作者 | 孤弋  阿里雲高級技術專家,負責 EDAS 的開發和用戶體驗優化工作。

導讀:上一篇文章《SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(開發部署)》我們介紹了從 IDE 插件內介紹了如何進行應用部署的方式,除此之外,目前 EDAS 還支持了額外的工具對其他場景進行覆蓋,這一篇內容主要就是介紹 EDAS 上圍繞部署的工具體系。

相關文章推薦:

IDE 插件中進行部署

因為 IDE 是離開發人員的代碼最近的工具,所以 IDE 插件中的部署能力也是專門為開發人員提供的部署工具,他的特點就是速度快、使用簡單,同時也覆蓋了 ECS 集群與 Kubernetes 集群中的 War/Jar 、以及自定義鏡像的部署方式。具體使用方式,我們都已經整理成了官方文檔,請在 EDAS 的官方幫助文檔中,查看《使用 Cloud Toolkit 快速部署應用至 EDAS》章節。

不過對於線上的應用而言,如果隨便一個開發人員都能進行隨意的變更,這是一件很不安全的事情。EDAS 在命名空間設計的時候,也考慮到了這個問題,解決的辦法就是 EDAS 上的命名空間,其用途是用來隔離環境之間的服務與配置用的。可以理解成通常意義上的環境,如:開發、測試、生產等。為避免用戶在 IDE 插件中誤將線上環境進行變更,我們對命名空間加入了一個允許遠程調試的選項,開啟之后才能在 IDE 中進行相應的操作,此開關默認為關閉狀態。如下圖所示:

1.jpeg

Maven 插件中進行部署

Maven 插件的使用場景介於開發人員與運維人員之間,他的設計主要秉承當下比較流行的 DevOps 的理念,可以將部署流程配置化的方式進行發布。即我們可以將部署的配置信息,隨代碼工程放置在一起,進行版本跟蹤,同時也能將應用的配置根據 Spring 中的 Profile 進行區分。按照相應的配置做好之后,只需要執行簡單的  mvn toolkit:deploy  即可完成部署。具體可以參見 EDAS 官方文檔的《使用toolkit-maven-plugin插件部署應用》。

CI/CD 中進行部署

一套標准的 DevOps 流程肯定少不了 CI/CD 的存在,作為市場上使用最廣的 CI/CD 工具 Jenkins ,以其簡單易用和其豐富的插件能力而著稱。EDAS 也補齊了這一平台的插件,這款插件也涵蓋了 EDAS 中所有主流場景的部署,尤其在 Kubernetes 這一塊,同時集成了鏡像構建、推送、部署的能力。具體可以參見 EDAS 官方文檔的《在Jenkins中使用edas-jenkins-plugin構建應用到 EDAS》。

同時,目前還有很多的用戶在使用雲服務雲效,雲效中集成了強大的流水線的能力,EDAS 是其中的一個內置的流水線的任務模版,名稱為部署到 EDAS,詳情請參考 EDAS 官方文檔《使用雲效部署 Java 應用至 EDAS》。

使用 Terraform 進行編排

Terraform 是一種安全有效地構建、更改和版本控制基礎設施的工具(基礎架構自動化的編排工具)。它編寫了描述雲資源拓撲的配置文件中的基礎結構,例如虛擬機、存儲賬戶和網絡接口。Terraform 的命令行接口(Command Line Interface,CLI)提供一種簡單機制,用於將配置文件部署到阿里雲上,並對其進行版本控制。

EDAS 也集成了當下比較流行的 Infrastructure As Code 的理念,擁抱 Terraform 的生態,提供了一個官方插件,讓用戶可以以 Infrastructure As Code 的方式將應用編排到對應的底層 IaaS 層資源與其他 PaaS 資源上,文檔參見:《使用 Terraform 部署應用至 EDAS》。

使用 CLI 工具中進行部署

對於一個資深的運維人員而言,可能最喜歡的操作的方式還是命令行工具。除了使用習慣之外,因為命令行工具同時具備很好的腳本化,和其他的腳本語言進行結合后能具備更豐富的能力。

EDAS 中的 CLI 工具,目前是依托於阿里雲的命令行入口,已 POP API 為命令,API 的參數為命令行的參數進行構建,也就是說其本質還是轉換成為一次 POP API 的調用。官方文檔請參考:《使用 CLI 快速部署 EDAS 應用》。

結語及后續

EDAS 的部署工具基本上圍繞着開發人員、運維人員、DevOps 場景進行構建,不過對於一次部署而言,觸發往往只是提交一個任務,而我們其實更關心任務提交之后的結果,甚至結果對於業務的影響。因為我們每一次任務的觸發,其實都是對線上環境的一次變更,變更則很容易產生故障,對業務產生不連續性,根據阿里巴巴集團的經驗,超過半數嚴重故障是由於變更產生。所以在 2018 年末,提出了線上變更的三條原則:可灰度、可回滾、可監控。EDAS 也是逐步將這一理念中的各種能力在產品中踐行;所以接下來的章節將圍繞着線上變更來進行,下一講將進入第一小節《可灰度》。

點擊直達雲原生架構白皮書詳情頁

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM