簡介
????Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具武契,例如配置管理募判,服務發(fā)現,斷路器咒唆,智能路由届垫,微代理,控制總線等操作全释;使用Spring Cloud開發(fā)人員可以快速地支持實現這些模式的服務和應用程序装处。它們將在任何分布式環(huán)境中運行良好;在Java開發(fā)者中具有廣泛的影響力浸船。
????Spring Cloud專注于提供良好的開箱即用經驗的典型用例和可擴展性機制覆蓋妄迁;基于Spring Boot對大型項目開發(fā)難度的簡化,對開發(fā)微服務所需的組件進行了簡單高效的封裝李命,Spring Cloud已成為Java領域開發(fā)微服務的實際標準登淘。
考慮到用戶會把原有的虛擬機部署的應用遷移至像容器這樣更為原生的技術中會遭遇各種難題,本文將介紹將Spring Cloud云原生遷移到阿里云的解決方案项戴,供開發(fā)者參考或使用形帮。
架構
資源依賴架構圖
架構效果圖
- 注冊發(fā)現中心Eureka為軟件實現槽惫,需要在配置文件里配置所有Eureka server信息周叮,Eureka server間進行信息同步辩撑。因此,架構方案選擇在每個可用區(qū)創(chuàng)建獨立的ECS部署Eureka server仿耽,同時使用獨立的SLB以固定每個Eureka server的訪問地址合冀,及獨立的ESS以保證每個可用區(qū)內Eureka server的正常工作。
- Gateway是微服務架構中另一個重要組件项贺。Gateway本身為無狀態(tài)服務君躺,有了Eureka注冊發(fā)現中心的保障,每個Gateway server都可以自動發(fā)現需要調用的服務开缎。在架構方案中棕叫,使用一個統(tǒng)一的SLB,以暴露對外服務的URL奕删;同時使用一個ESS保證Gateway的高可用及可擴展性俺泣。實際項目中,使用Spring Cloud 中的Zuul/Gateway可作為示例Gateway組件完残。
- 使用阿里云Kubernetes托管版部署實際業(yè)務的應用伏钠,可實現業(yè)務負載的快速擴展、靈活調度谨设,同時降低Kubernetes群集的運維難度熟掂。
- OSS和CR(容器鏡像服務)作為應用部署包以及Docker鏡像的倉庫,可方便地對接微服務架構中CI/CD各種不同方案扎拣。
- 對于系統(tǒng)中各種公共變量赴肚,使用OSS中的參數倉庫進行存儲∨羟铮可實現公共變量的動態(tài)調整尊蚁,和應用部署時進行動態(tài)注入。
優(yōu)勢
Spring Cloud的Eureka侣夷、Gateway等微服務基礎設施需要長久地運行横朋,并且獨占單個計算資源,保障服務的高可靠性百拓。架構中使用ECS部署服務琴锭,而具體業(yè)務功能模塊選擇容器話技術;使用彈性伸縮服務管理Eureka衙传、Gateway兩類服務决帖。
- 使用彈性伸縮可以根據業(yè)務需求和策略設置伸縮規(guī)則,以保證計算能力和節(jié)約成本蓖捶;
- 服務器ECS的啟動時間為分鐘級地回,持續(xù)運行時間為數周至數月;
- 容器化服務的啟動時間為秒級,持續(xù)運行時間為數十分鐘至數周刻像;
前置條件
- 熟悉并開通阿里云資源編排ROS畅买;具備管理ROS資源棧技能,點擊ROS查看產品相關文檔细睡。
- 熟悉并開通阿里云專有網絡VPC谷羞;具備搭建基礎網絡技能,點擊VPC查看產品相關文檔溜徙。
- 了解并開通阿里云彈性伸縮ESS湃缎;點擊ESS查看產品相關文檔。
- 了解并開通阿里云負載均衡SLB蠢壹;點擊SLB查看產品相關文檔嗓违。
- 了解并開通阿里云對象存儲OSS;點擊OSS查看產品相關文檔图贸。
- 了解并開通阿里云訪問控制RAM靠瞎;點擊RAM查看產品相關文檔。
- 了解并開通阿里云運維編排OOS求妹;點擊OOS查看產品相關文檔乏盐。
- 了解并開通阿里云容器服務Kubernetes版ACK;點擊ACK查看產品相關文檔制恍。
資源部署
ROS資源簡介
ALIYUN::VPC::EIPAssociation: 用于綁定彈性公網IP
ALIYUN::ESS::ScalingConfiguration: 用于為伸縮組創(chuàng)建伸縮配置父能。
ALIYUN::VPC::EIP: 用于申請彈性公網IP。
ALIYUN::SLB::LoadBalancer: 用于創(chuàng)建負載均衡净神。
ALIYUN::ESS::ScalingGroupEnable: 用于啟用伸縮組何吝。
ALIYUN::SLB::Listener: 用于創(chuàng)建負載均衡監(jiān)聽(Listener)。
ALIYUN::OOS::Parameter: 用于創(chuàng)建一個普通參數鹃唯。
ALIYUN::RAM::Role: 用于創(chuàng)建RAM角色爱榕。
ALIYUN::CS::ManagedKubernetesCluster: 用于創(chuàng)建Kubernetes托管版集群。
ALIYUN::ESS::ScalingGroup: 用于創(chuàng)建伸縮組坡慌。伸縮組是具有相同應用場景的ECS實例的集合黔酥,創(chuàng)建成功后不會立即生效,需要使用洪橘。
ALIYUN::ESS::ScalingGroupEnable: 啟用伸縮組跪者,才能觸發(fā)伸縮活動,執(zhí)行伸縮規(guī)則熄求。
步驟
登錄資源編排服務控制臺渣玲。
點擊進入解決方案中心。
在案例篩選中篩選容器 & 微服務弟晚,在此類型案例中找到SpringCloud云原生遷移忘衍,點擊創(chuàng)建資源棧逾苫;或先點擊查看詳情查閱案例的詳情介紹再點擊創(chuàng)建資源棧。
在創(chuàng)建資源棧界面填寫必要的參數枚钓,具體如下:
基礎信息配置
Eureka 相關配置
Gateway 相關配置
Kubernetes托管版集群相關配置
- 參數填寫完成隶垮,可進行資源預覽,也可直接進行創(chuàng)建秘噪;資源棧進入創(chuàng)建狀態(tài),創(chuàng)建完成大約需要10分鐘左右勉耀。
- 創(chuàng)建完成指煎,可在輸出界面查詢Eureka url、Gateway url便斥,如下圖:
以上步驟至壤,即可完成Spring Cloud 云原生遷移方案所需要的資源(ECS、SLB枢纠、Kubernetes等統(tǒng)稱為資源)部署像街;查閱相關資源可在對應資源的控制臺進行查閱。
本篇文章由阿里云資源編排服務ROS發(fā)布