SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 開發篇


頭圖.png

作者 | 孤弋  阿里雲高級技術專家,負責 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) ,如下圖:

1.jpg

我們通過這個頁面提供了一個生成 Java 應用(不只是 SpringCloud 應用)的白屏化工具,對於一個最簡單的 Spring Cloud 應用,只有一項是您必須要選擇的依賴,就是 Spring Cloud Alibaba 選項卡下的 Nacos Service Discovery 組件。選中之后,點擊按鈕組中橙色的 “生成” ,工具會根據所需的依賴自動生成一份可直接打包運行的 pom.xml 文件,同時將所有內容打成一個標准的 Java 項目工程包供您下載。

在本地跑起來

下載完生成的項目工程之后,對於常規 Spring Cloud 應用開發開發流程,下一步是需要去找一個(或本地搭建一個)注冊中心(如:Nacos),這個過程往往是需要花費一定時間的。去年年底我們在阿里雲的 IDE 插件 Cloud Toolkit 中開發了一個自動拉起/選擇注冊中心, 並將應用自動適配到所選擇的注冊中心的功能。界面如下圖:

2.jpg

可以按照自身以及團隊的需求,選擇合適的注冊中心,如:可以選擇"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 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”


免責聲明!

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



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