云原生应用架构转型不好做?阿里云这个平台让你一步到位!
云原生實踐帶來的挑戰(zhàn)?
阿里云云原生為企業(yè)提供了完善的容器服務(wù)、函數(shù)計算、微服務(wù)體系、中間件體系。每個服務(wù)都有伸縮性、彈性和組合性,通過產(chǎn)品選擇或組合搭建,能輕松完成應(yīng)用與運行環(huán)境解耦,和傳統(tǒng)應(yīng)用研發(fā)模式具有較大差異。從傳統(tǒng)研發(fā)模式過渡到云原生時代,抑或傳統(tǒng)應(yīng)用和云原生長期并存過程中,云原生應(yīng)用的實現(xiàn)、集成、部署、運維都面臨較大的挑戰(zhàn)。
1.存量應(yīng)用與云原生應(yīng)用長期并存的整合問題
雖然云原生可以覆蓋絕大部分應(yīng)用場景,甚至以往比較難解決的問題在云原生下都可迎刃而解,如營銷場景的應(yīng)用。但有些應(yīng)用場景在云原生下并無決定性優(yōu)勢,且存在遷移成本,加之傳統(tǒng)應(yīng)用在系統(tǒng)架構(gòu)上的約束,這些將導(dǎo)致存量傳統(tǒng)應(yīng)用將和云原生應(yīng)用長期并存。如何整合這兩種應(yīng)用的研發(fā)鏈路,以及基礎(chǔ)設(shè)施層面的互聯(lián)互通,是云原生實踐帶來的一個挑戰(zhàn)。
2.研發(fā)環(huán)境的成熟度問題
云原生新應(yīng)用的實踐或存量應(yīng)用的云化,不僅僅是基礎(chǔ)設(shè)施和平臺的變化,在架構(gòu)設(shè)計、開發(fā)方式、測試聯(lián)調(diào)、部署維護(hù)等各階段和各方面都要基于云的特點做出相應(yīng)調(diào)整。傳統(tǒng)線下IDE工具鏈將無能為力,在DevOps這條工具鏈上,需要一個集成度高、操作路徑短的研發(fā)環(huán)境。
3.研發(fā)模式、組織陣型與云原生的適配問題
云原生通常以微服務(wù)架構(gòu)進(jìn)行服務(wù)開發(fā),函數(shù)計算更細(xì)粒度到函數(shù)級別。松耦合的架構(gòu)方式會減輕因需求變更導(dǎo)致的系統(tǒng)迭代成本,并加快交付速度。微服務(wù)使得單個服務(wù)的開發(fā)團(tuán)隊更小,也更加獨立,這種松耦合+獨立小型的團(tuán)隊使得持續(xù)更新和敏捷協(xié)作成為可能。在這種情況下,云端出現(xiàn)的問題解決會更突出,在線協(xié)作將比線下交流會有更高的效能。
與云原生跨代優(yōu)勢相比,這三點只能算“最后一公里”的問題。今天,阿里云推出的云開發(fā)平臺正在解決云原生Serverless集成研發(fā)使用的"最后一公里"問題。
云開發(fā)平臺的功能特性
云開發(fā)平臺集成了阿里云FC、SAE、ASK三種serverless計算服務(wù),在VPC基礎(chǔ)設(shè)施之上,把眾多中間件云產(chǎn)品按賬戶、產(chǎn)品線、應(yīng)用、函數(shù)4個級別進(jìn)行歸類,設(shè)定共享級別,按需編排。通過業(yè)務(wù)語言的方式傳達(dá),大幅降低了開發(fā)者的學(xué)習(xí)理解成本,提供集成研發(fā)環(huán)境,進(jìn)而降低使用集成云產(chǎn)品的難度,提升研發(fā)效能。或者可以說,云開發(fā)平臺是阿里云面向開發(fā)者的一個研發(fā)門面,由于創(chuàng)建編排的云服務(wù)都在開發(fā)者的主賬號下,因此基于云開發(fā)創(chuàng)建的應(yīng)用和用戶存量系統(tǒng)是互聯(lián)互通的,從這點上說云開發(fā)平臺是一套開放的、集成的研發(fā)環(huán)境。
云開發(fā)平臺只集成云原生Serverless計算服務(wù),而Serverless計算的免運維特性,使資源投入更聚焦在研發(fā)上,讓應(yīng)用從創(chuàng)建到實現(xiàn)運營都能在云開發(fā)平臺上完成。其中FC是函數(shù)形態(tài)的計算服務(wù),SAE、ASK是服務(wù)形態(tài)的計算服務(wù)。云開發(fā)平臺具有以下特性:
1.IT架構(gòu)覆蓋絕大多數(shù)應(yīng)用場景
為用戶提供開箱即用的基礎(chǔ)設(shè)施服務(wù),云開發(fā)平臺聚焦于三種通用的IT架構(gòu):1)函數(shù)型IT架構(gòu);2)服務(wù)型IT架構(gòu);3)函數(shù)、服務(wù)混合型IT架構(gòu)。這三種IT架構(gòu)基本能涵蓋當(dāng)前適合云原生的所有應(yīng)用場景。
1)函數(shù)型IT架構(gòu)
這種架構(gòu)能支持大部分移動應(yīng)用,因為按調(diào)用次數(shù)計費,所以可以“0”費用啟動項目,適合大部分初創(chuàng)團(tuán)隊的應(yīng)用場景、企業(yè)靜態(tài)站點場景,以及峰谷流量明顯的應(yīng)用場景,比如營銷活動。Serverless的彈性特性,減少了擴(kuò)縮容的人力成本和計算成本。
?
2)服務(wù)型IT架構(gòu)
當(dāng)前大部分應(yīng)用都是服務(wù)型IT架構(gòu),如SpringBoot應(yīng)用、PHP應(yīng)用,這種架構(gòu)模式可以很好的承接當(dāng)前存量應(yīng)用的云化遷移。基于阿里云MSE(微服務(wù)引擎),也適合微服務(wù)化架構(gòu)的應(yīng)用。這種架構(gòu)支持按小時計費的模式,即開即用,相對于函數(shù)型IT架構(gòu),更適合穩(wěn)定的大流量業(yè)務(wù)場景。
3)函數(shù)、服務(wù)混合型IT架構(gòu)
混合型IT架構(gòu),充分利用函數(shù)型Serverless、服務(wù)型Serverless各自的優(yōu)勢,端側(cè)接入采用函數(shù)計算,按調(diào)用次數(shù)計費,以及快速敏捷的彈性伸縮能力輕松支持各種峰谷流量。而服務(wù)型Serverless,可以組合各種中間件服務(wù),形成高性能、彈性靈活的微服務(wù)中臺系統(tǒng),可以支持當(dāng)前主流復(fù)雜的應(yīng)用場景。
2.支持與存量系統(tǒng)的互聯(lián)互通
當(dāng)前云原生還處在商業(yè)導(dǎo)入期。企業(yè)用戶一般會先用一些適合Serverless的場景小試牛刀,這時創(chuàng)建的Serverless一定不是孤立的應(yīng)用,它需要訪問存量的數(shù)據(jù)庫、中間件服務(wù)以及BPaaS中臺功能。因此與存量系統(tǒng)的互聯(lián)互通是Serverless推廣應(yīng)用的首要條件。云開發(fā)平臺項目一開始就考慮到這個特性,把自己定位為工具,不自建容器。由用戶授權(quán),云開發(fā)平臺支持Serverless應(yīng)用在用戶的賬戶空間中完成CICD,用戶可以選擇部署在存量應(yīng)用所在的VPC、VSwitch上,因此,Serverless應(yīng)用和存量系統(tǒng)、存量數(shù)據(jù)庫、中間件服務(wù)的交互暢通無阻。 ? ? ?
3.支持被集成Serverless的CICD能力
基于傳統(tǒng)應(yīng)用研發(fā)和Serverless應(yīng)用研發(fā)長期并存的考慮,Serverless研發(fā)需要和ISV本地研發(fā)模式相兼容,只有切入到ISV當(dāng)前的場景中,才有機(jī)會引導(dǎo)ISV、開發(fā)者到云開發(fā)模式當(dāng)中。云開發(fā)平臺當(dāng)前提供了三個層級的使用方案:
對于新手開發(fā)者,云開發(fā)平臺提供了一個包括創(chuàng)建、實現(xiàn)、測試、構(gòu)建、部署全部環(huán)節(jié)的集成研發(fā)環(huán)境,支持一站式實現(xiàn)Serverless應(yīng)用;
對于有研發(fā)體系的ISV,研發(fā)、測試在本地完成。云開發(fā)平臺和ISV的分工界面在代碼倉庫Codeup上,云開發(fā)平臺提供全套CICD功能,開發(fā)者提交代碼到Codeup上后,CICD功能、資源編排都交給云開發(fā)平臺;
對于有研發(fā)體系并且有CI體系的ISV,提供基礎(chǔ)設(shè)施的編排以及CD功能。
對于有研發(fā)體系的后兩者,通過提供POP接口,支持ISV進(jìn)行集成,和ISV現(xiàn)有研發(fā)體系無縫融合。
4.團(tuán)隊在線協(xié)同特性
受疫情影響,上半年大家都體驗了遠(yuǎn)程辦公的模式,更有報道稱,美國的公司員工將有50%永久遠(yuǎn)程辦公。可以預(yù)見,在未來以云原生應(yīng)用為主的研發(fā)模式下,遠(yuǎn)程辦公將是常態(tài),在線編程、在線測試聯(lián)調(diào)、在線集成部署都在CloudIDE中完成,團(tuán)隊在線協(xié)同功能是云開發(fā)平臺的重要特征之一。
企業(yè)、團(tuán)隊、開發(fā)者角色的權(quán)限控制體系,加上Cloud-Native的集成研發(fā)環(huán)境,組成了云開發(fā)平臺在線協(xié)同功能特性。Serverless的編程流暢性,測試聯(lián)調(diào)、構(gòu)建部署一站式體驗將在CloudIDE中持續(xù)打磨。
5.基礎(chǔ)架構(gòu)平臺能力
云原生一個重要的特征是微服務(wù)化,繼而開發(fā)團(tuán)隊更小更獨立。但前提是要有一套統(tǒng)一框架和統(tǒng)一標(biāo)準(zhǔn),小團(tuán)隊才能獨立去迭代業(yè)務(wù)邏輯。這套框架、標(biāo)準(zhǔn),以及基礎(chǔ)類庫需要體現(xiàn)在微服務(wù)的整個研發(fā)過程當(dāng)中。
另外微服務(wù)化后,可以抽象出更多的通用能力。傳統(tǒng)上這些通用功能會通過SDK提供出來,但在云原生環(huán)境下,這些通用能力可以直接部署為服務(wù),函數(shù)級能力可以部署于函數(shù)計算,提供函數(shù)級通用服務(wù);模塊級能力可以通過容器方式部署,向外提供模塊級通用服務(wù)。
云開發(fā)平臺充分考慮到這一云原生研發(fā)模式的特征,提供了應(yīng)用級解決方案,當(dāng)前支持靜態(tài)定義。后期將支持動態(tài)生成,基于一系列基礎(chǔ)框架、基礎(chǔ)類庫,像活字印刷一樣組合成為某一場景的應(yīng)用模板,開發(fā)者將在其上專注實現(xiàn)業(yè)務(wù)邏輯。函數(shù)級通用服務(wù)、模塊級通用服務(wù)的生產(chǎn)、安裝正在實現(xiàn)當(dāng)中,將很快發(fā)布上線。
集成案例介紹
說不如練,云開發(fā)平臺就在你眼前:https://workbench.aliyun.com,以下將簡單介紹SpringBoot應(yīng)用、PHP應(yīng)用如何遷移到Serverless計算服務(wù)當(dāng)中。
1.SpringBoot應(yīng)用遷移
對于存量系統(tǒng)的遷移,云開發(fā)平臺已經(jīng)上架了FC、SAE、ASK的各種架構(gòu)形式的遷移解決方案,且還在不斷豐富當(dāng)中。Springboot遷移方案步驟:
? 1)在云開發(fā)平臺上創(chuàng)建一個“SpringBoot應(yīng)用遷移方案(ASK)”應(yīng)用;
? 2)打開這個應(yīng)用的CloudIDE環(huán)境,點擊“開發(fā)部署”;
? 3)在CloudIDE中,把存量系統(tǒng)的src目錄和pom.xml拖到CloudIDE工程目錄中;
? 4)調(diào)整pom.xml, 增加兩個約定配置:
?<properties><applicationName>${project.artifactId}</applicationName><spring-boot.version>2.2.6.RELEASE</spring-boot.version></properties>...<build><finalName>${applicationName}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><!--需要替換您的springboot啟動類--><mainClass>com.alibaba.sca.temp.web.Application</mainClass><layout>ZIP</layout></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>...</build>? 5)提交修改的代碼,然后構(gòu)建部署進(jìn)行驗證,完成遷移工作。
完成Springboot應(yīng)用到Serverless的遷移,讓存量應(yīng)用快速具備云開發(fā)CICD的特性,以及Serverless應(yīng)用的所有優(yōu)勢。
2. PHP應(yīng)用遷移
PHP應(yīng)用遷移方案步驟:
? ?1)在云開發(fā)平臺上創(chuàng)建一個“PHP 應(yīng)用遷移方案(SAE)”或者 “PHP 應(yīng)用遷移方案(ASK)”應(yīng)用;
? ?2)打開這個應(yīng)用的CloudIDE環(huán)境,點擊“開發(fā)部署”;
? ?3)然后,把存量的PHP項目文件拖放到CloudIDE工程目錄下,就能完成遷移工作;
? ?4)提交代碼并Push,然后就可以開始進(jìn)行應(yīng)用部署,部署成功后,云開發(fā)平臺會生成一個臨時域名出來,點開即可驗證部署效果。
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的云原生应用架构转型不好做?阿里云这个平台让你一步到位!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAE助力「海底小纵队学英语」全面拥抱S
- 下一篇: 阿里云机器学习怎么玩?这本新手入门指南揭