本文將在這里介紹如何使用阿里云SAE及其他產(chǎn)品落地Alibaba cloud微服務,搭建一套云原生應用架構,實現(xiàn)Serverless ,CI\CD,Devops,全鏈路監(jiān)控,可回滾系統(tǒng)版本,系統(tǒng)自動擴容以及灰度發(fā)布的一整套架構,適用于有微服務架構落地的需求.
本人在公司設計并維護的一套Alibaba cloud微服務系統(tǒng)已經(jīng)線上生產(chǎn)環(huán)境考驗穩(wěn)定運行半年,線上20個節(jié)點穩(wěn)定運行,日常線上的維護還可做到服務全鏈路監(jiān)控,jvm情況,硬件狀況,服務拓撲圖,日志收集,流量激增時,可實現(xiàn)自動擴容節(jié)點(秒級擴容),且集成了任務調(diào)度.
該運維架構配合了我自研的一套輕量級的內(nèi)部微服務開發(fā)sdk,當有新的服務時候,只需要在新建的微服務模塊引入該sdk,線上和線下環(huán)境即自動構建完成,且集成了swagger(且采用的網(wǎng)關gateway對所有的服務的swagger進行集合),服務降級熔斷,限流處理,防xss注入,分布式鎖注解,冪等性處理,分布式二級緩存等一系列功能,開發(fā)人員無需關心架構問題,能更好的專注于業(yè)務的開發(fā),提高編碼效率.在這里我不并討論我開發(fā)的這個SDK,因為每個公司的技術情況不同,我們公司是走JAVA技術棧的,我會陸續(xù)分享出來一些設計思想 ...后面我會先出一個基于redisson配合caffeine開發(fā)的分布式二級緩存的文章,能同步集群應用緩存(jvm緩存),可防止大流量情況下redis穿透及雪崩的風險.這里涉及的要素太多太多了,后面我會一點點分享...
那么說說該架構下日常開發(fā)時候的運作情況
1.代碼推送到遠程倉庫后,(可先經(jīng)過代碼審查,即人工卡點)經(jīng)靜態(tài)代碼分析后,執(zhí)行單元測試通過后將會自動構建docker鏡像并推送至鏡像倉庫.
2.可手動部署或者控制流水線實現(xiàn)持續(xù)集成部署到線上,在這里的CI\CD,Devops流水線我采用的是阿里云的云效.測試環(huán)境可配合Jenkins實現(xiàn).
開發(fā)人員只需要提交日常編寫的代碼即可,因為有了該架構的支撐,產(chǎn)品能夠快速的迭代(敏捷開發(fā)利器),該架構前期搭建并不吃力,都是阿里云提供好的產(chǎn)品,雖然我踩了很多的坑,Alibaba cloud的,sae的坑(sae是阿里云的serverless產(chǎn)品,前身是edas的一個擴展產(chǎn)品,edas是阿里云的一個企業(yè)級分布式應用服務產(chǎn)品),不過好在隨著產(chǎn)品的不斷完善,很多的問題都得到了官方的回應和改進.因為我是從孵化階段的Alibaba cloud開始學習,以及實驗階段的sae開始的,在這個過程我也經(jīng)常在官方釘釘群交流和反饋.
以下是我的架構圖:
在這里列舉下使用到的阿里云產(chǎn)品
這里有一個很有意思的東西,是我在開發(fā)的時候發(fā)現(xiàn)的,EDAS和SAE產(chǎn)品的服務注冊中心是互通的,可能是因為SAE前身就是EDAS的一個擴展產(chǎn)品,使用了同一個服務注冊中心的原因把,所以SAE與EDAS產(chǎn)品可以混合使用!!!即服務部署到兩個不同的產(chǎn)品都能互相發(fā)現(xiàn),前提是要做好同一交換機的處理,即使用同一個VPC下的網(wǎng)絡
*注意,線上部分產(chǎn)品的使用需要阿里云賬號內(nèi)有余額
SAE
Serverless 應用引擎 SAE(Serverless App Engine)是面向應用的 Serverless PaaS 平臺见转,能夠幫助 PaaS 層用戶免運維 IaaS灯帮、按需使用、按量計費勃教,做到低門檻微服務應用上云。相對于其他 Serverless 產(chǎn)品肮之,它抽象了應用的概念趾访,并提供了一整套微服務解決方案,支持 Spring Cloud啡莉、Dubbo、HSF 等主流的微服務開發(fā)框架旨剥,實現(xiàn)了 Serverless 架構和微服務架構的完美結合咧欣。
*對于HTTPS的處理,SAE是直接支持HTTPS的,前提是需要配置好對應的域名證書,配置好轉(zhuǎn)發(fā)策略即可
EDAS
企業(yè)級分布式應用服務 EDAS(Enterprise Distributed Application Service)是一個應用托管和微服務管理的 PaaS 平臺,提供應用開發(fā)轨帜、部署魄咕、監(jiān)控、運維等全棧式解決方案蚌父,同時支持 Spring Cloud哮兰、Apache Dubbo(以下簡稱 Dubbo )等微服務運行環(huán)境,助力您的各類應用輕松上云苟弛。
專有網(wǎng)絡 VPC
專有網(wǎng)絡是您自己獨有的云上私有網(wǎng)絡喝滞。您可以完全掌控自己的專有網(wǎng)絡,例如選擇IP地址范圍膏秫、配置路由表和網(wǎng)關等右遭,您可以在自己定義的專有網(wǎng)絡中使用阿里云資源如云服務器、云數(shù)據(jù)庫RDS版和負載均衡等。
容器鏡像服務
容器鏡像服務(Container Registry)提供安全的應用鏡像托管能力窘哈,精確的鏡像安全掃描功能吹榴,穩(wěn)定的國內(nèi)外鏡像構建服務,便捷的鏡像授權功能滚婉,方便用戶進行鏡像全生命周期管理图筹。容器鏡像服務簡化了Registry的搭建運維工作,支持多地域的鏡像托管让腹,并聯(lián)合容器服務等云產(chǎn)品远剩,打造云上使用Docker的一體化體驗。
云效
云效骇窍,一站式企業(yè)協(xié)同研發(fā)云民宿,源于阿里巴巴多年先進的管理理念和工程實踐,提供從“需求->開發(fā)->測試->發(fā)布->運維->運營”端到端的協(xié)同服務和研發(fā)工具支撐像鸡。云效將戰(zhàn)略規(guī)劃、敏捷研發(fā)哈恰、持續(xù)集成只估、持續(xù)交付、DevOps等理念引入銀行着绷、保險蛔钙、民航等大型企業(yè)和互聯(lián)網(wǎng)初創(chuàng)企業(yè),支持公有云荠医、專有云和混合云的協(xié)同研發(fā)吁脱,助力企業(yè)產(chǎn)品快速創(chuàng)新迭代和研發(fā)效能升級。
由于篇幅過長,我將分成幾個部分,一步步實操
1.通過官方demo了解并使用SAE