SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 開發篇
作者 | 孤弋 阿里雲高階技術專家,負責 EDAS 的開發和使用者體驗優化工作。
前言
近年來,雲原生、Kubernetes、微服務、SpringCloud 這些名詞在技術圈內不絕於耳,資料顯示,使用 SpringCloud 作為微服務的框架,同時選擇 Kubernetes 作為應用與基礎設施運維底座的團隊越來越多,這二者的搭檔基本上成為了業界的主流配搭。
為了順應這一趨勢,EDAS 也緊緊圍繞這一典型場景,對它的開發、測試、部署、聯調、線上運維等諸多環節中的開發者體驗進行深度打磨,釋出了全新的 3.0 版本。同時,針對如何在採用了 SpringCloud + Kubernetes 架構的應用上使用 EDAS,我們團隊提供各個環節的最佳實踐,供開發者參考。
本篇進入我們的第一章節:開發。
初始化專案
阿里巴巴從 2018 年開始開源了以原阿里集團中介軟體為主要能力、全方位對標 SpringCloud Netflix 的全家桶服務,也就是目前的 Spring Cloud Alibaba 專案( https://github.com/alibaba/spring-cloud-alibaba),經過兩年多的發展,這個專案受到了越來越多開發者的喜愛,目前的 star 數也達到了 14K。
不過對於開發者而言,選擇變多的同時,往往也會伴隨一些煩惱,比如:我們到底需要使用什麼版本?如何選擇依賴的服務?如何解決公共元件的衝突問題?為了解決這些問題,阿里雲去年上線了一款專案初始化工具( http://start.aliyun.com) ,如下圖:
我們通過這個頁面提供了一個生成 Java 應用(不只是 SpringCloud 應用)的白屏化工具,對於一個最簡單的 Spring Cloud 應用,只有一項是您必須要選擇的依賴,就是 Spring Cloud Alibaba 選項卡下的 Nacos Service Discovery 元件。選中之後,點選按鈕組中橙色的 “生成” ,工具會根據所需的依賴自動生成一份可直接打包執行的 pom.xml 檔案,同時將所有內容打成一個標準的 Java 專案工程包供您下載。
在本地跑起來
下載完生成的專案工程之後,對於常規 Spring Cloud 應用開發開發流程,下一步是需要去找一個(或本地搭建一個)註冊中心(如:Nacos),這個過程往往是需要花費一定時間的。去年年底我們在阿里雲的 IDE 外掛 Cloud Toolkit 中開發了一個自動拉起/選擇註冊中心, 並將應用自動適配到所選擇的註冊中心的功能。介面如下圖:
可以按照自身以及團隊的需求,選擇合適的註冊中心,如:可以選擇”Use Local Registry”(適合個人開發)、或選擇”Join Custom Registry”(適合團隊開發)、也選擇雲上的 Nacos 叢集(和雲上服務聯調);選擇好之後,按照正常流程再在 IDE 中啟動您的應用程式,此時應用就會自動適配到所選擇的註冊中心中,無需再去搭建一個,完全免維護。
提前做一個預告,關於開發者聯調這一塊的能力我們將會有專門的章節來講解 EDAS 中的端雲互聯的能力,您也可以去阿里雲官方文件中搜尋《端雲互聯簡介》進行前期的瞭解。
結語及其後續
在本篇中,我們站在開發者的視角對於 專案初始化和 本地啟動兩個開發過程中的基本環節,分別推薦了兩個工具,它們的功能並不限於文章中提到的部分,還有更多和更強大的能力等待著我們自己去挖掘,EDAS 團隊也將會在開發者體驗上持續深耕,如果您有什麼建議歡迎在文章下邊進行留言分享。
另外,此次分享的內容並沒有關於 Kubernetes 有關的話題,因為這個分享是一個系列文章,本篇僅介紹上述兩個場景,Kubernetes 等相關內容將在後續分享中逐步介紹,下一篇的內容是: 部署到雲端,敬請期待。
課程推薦
為了更多開發者能夠享受到 Serverless 帶來的紅利,這一次,我們集結了 10+ 位阿里巴巴 Serverless 領域技術專家,打造出最適合開發者入門的 Serverless 公開課,讓你即學即用,輕鬆擁抱雲端計算的新正規化——Serverless。
點選即可免費觀看課程: https://developer.aliyun.com/learning/roadmap/serverless
“ 阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69953029/viewspace-2701982/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(開發部署)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(工具部署)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 高可用(熔斷)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上釋出(可灰度)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 高可用(容量評估)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上釋出(可監控)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上釋出(可回滾)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 高可用(彈性伸縮)SpringGCCloud
- SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上釋出(優雅上下線)SpringGCCloud
- Spring Cloud 應用在 Kubernetes 上的最佳實踐 — 高可用(混沌工程)SpringCloud
- SpringCloud 微服務最佳開發實踐SpringGCCloud微服務
- Kubernetes 部署 Laravel 應用的最佳實踐Laravel
- Kubernetes Deployment 最佳實踐
- Kubernetes 微服務最佳實踐微服務
- 2023年Kubernetes最佳實踐
- Kubernetes 最佳安全實踐指南
- Spring Boot應用在kubernetes的sidecar設計與實戰Spring BootIDE
- DevOps最佳實踐之應用開發和部署dev
- Laravel 開發最佳實踐Laravel
- Kubernetes YAML最佳實踐和策略YAML
- Jenkins 在 Kubernetes 上的實踐Jenkins
- Kubernetes日誌的6個最佳實踐
- 驗證Kubernetes YAML的最佳實踐和策略YAML
- 雲擴研習社 | RPA流程開發最佳實踐(上)
- 《SpringBoot實戰開發》——基於Gradle+Kotlin的企業級應用開發最佳實踐Spring BootGradleKotlin
- Android開發中API層的最佳實踐AndroidAPI
- 京東雲Kubernetes叢集最佳實踐
- Kubernetes叢集健康檢查最佳實踐
- 三艾雲 Kubernetes 叢集最佳實踐
- Kubernetes最佳實踐生產檢查清單
- iOS 開發者的 Weex 偽最佳實踐指北iOS
- 寫給自己的git多人開發最佳實踐Git
- iOS原生混合RN開發最佳實踐iOS
- wsl 下的 docker 開發實踐(上)Docker
- Active Network實踐:構建Kubernetes平臺的最佳工具
- Kubernetes Ingress 日誌分析與監控的最佳實踐
- 確保 Kubernetes 安全合規的 6 個最佳實踐