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

頭圖.png

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

前言

近年來,雲原生、Kubernetes、微服務、SpringCloud 這些名詞在技術圈內不絕於耳,數據顯示,使用 SpringCloud 做爲微服務的框架,同時選擇 Kubernetes 做爲應用與基礎設施運維底座的團隊愈來愈多,這兩者的搭檔基本上成爲了業界的主流配搭。github

爲了順應這一趨勢,EDAS 也牢牢圍繞這一典型場景,對它的開發、測試、部署、聯調、線上運維等諸多環節中的開發者體驗進行深度打磨,發佈了全新的 3.0 版本。同時,針對如何在採用了 SpringCloud + Kubernetes 架構的應用上使用 EDAS,咱們團隊提供各個環節的最佳實踐,供開發者參考。spring

本篇進入咱們的第一章節:開發。架構

初始化項目

阿里巴巴從 2018 年開始開源了以原阿里集團中間件爲主要能力、全方位對標 SpringCloud Netflix 的全家桶服務,也就是目前的 Spring Cloud Alibaba 項目(https://github.com/alibaba/spring-cloud-alibaba),通過兩年多的發展,這個項目受到了愈來愈多開發者的喜好,目前的 star 數也達到了 14K。框架

不過對於開發者而言,選擇變多的同時,每每也會伴隨一些煩惱,好比:咱們到底須要使用什麼版本?如何選擇依賴的服務?如何解決公共組件的衝突問題?爲了解決這些問題,阿里雲去年上線了一款項目初始化工具(http://start.aliyun.com) ,以下圖:less

1.jpg

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

在本地跑起來

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

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 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的公衆號。」

相關文章
相關標籤/搜索