天天看點

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

前言

近年來,雲原生、Kubernetes、微服務、SpringCloud 這些名詞在技術圈内不絕于耳,資料顯示,使用 SpringCloud 做為微服務的架構,同時選擇 Kubernetes 作為應用與基礎設施運維底座的團隊越來越多,這二者的搭檔基本上成為了業界的主流配搭。

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

本篇進入我們的第一章節:開發。

初始化項目

阿裡巴巴從 2018 年開始開源了以原阿裡集團中間件為主要能力,全方位對标 SpringCloud Netflix 的全家桶服務,也就是目前的 Spring Cloud Alibaba 項目(

https://github.com/alibaba/spring-cloud-alibaba)

, 經過兩年多的發展,這個項目受到了越來越多開發者的喜愛,目前的 star 數也達到了 14K。

不過對于開發者而言,選擇變多的同時,往往也會伴随一些煩惱,比如:我們到底需要使用什麼版本?如何選擇依賴的服務?如何解決公共元件的沖突問題?為了解決這些問題,阿裡雲去年上線了一款項目初始化工具(

http://start.aliyun.com)

,如下圖:

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

我們通過這個頁面提供了一個生成 Java 應用(不隻是 SpringCloud 應用)的白屏化工具,對于一個最簡單的 Spring Cloud 應用,隻有一項是您必須要選擇的依賴,就是 Spring Cloud Alibaba 頁籤下的 Nacos Service Discovery 元件。選中之後,點選按鈕組中橙色的 “生成” ,工具會根據所需的依賴自動生成一份可直接打包運作的 pom.xml 檔案,同時将所有内容打成一個标準的 Java 項目工程包供您下載下傳。

在本地跑起來

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

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

可以按照自身以及團隊的需求,選擇合适的注冊中心,如:可以選擇"Use Local Registry"(适合個人開發)、或選擇"Join Custom Registry"(适合團隊開發)、也選擇雲上的 Nacos 叢集(和雲上服務聯調);選擇好之後,按照正常流程再在 IDE 中啟動您的應用程式,此時應用就會自動适配到所選擇的注冊中心中,無需再去搭建一個,完全免維護。

提前做一個預告,關于開發者聯調這一塊的能力我們将會有專門的章節來講解 EDAS 中的端雲互聯的能力,您也可以點選這裡

《端雲互聯簡介》

進行前期的了解。

結語及其後續

在本篇中,我們站在開發者的視角對于項目初始化和本地啟動兩個開發過程中的基本環節,分别推薦了兩個工具,它們的功能并不限于文章中提到的部分,還有更多和更強大的能力等待着我們自己去挖掘,EDAS 團隊也将會在開發者體驗上持續深耕,如果您有什麼建議歡迎在文章下邊進行留言分享。

另外,此次分享的内容并沒有關于 Kubernetes 有關的話題,因為這個分享是一個系列文章,本篇僅介紹上述兩個場景,Kubernetes 等相關内容将在後續分享中逐漸介紹,下一篇的内容是:部署到雲端,敬請期待。

本文作者:孤弋,阿裡雲進階技術專家,負責 EDAS的開發和使用者體驗優化工作。