云原生应用架构转型不好做?阿里云让你一步到位!
云原生實(shí)踐帶來(lái)的挑戰(zhàn)
阿里云云原生為企業(yè)提供了完善的容器服務(wù)、函數(shù)計(jì)算、微服務(wù)體系、中間件體系。每個(gè)服務(wù)都有伸縮性、彈性和組合性,通過(guò)產(chǎn)品選擇或組合搭建,能輕松完成應(yīng)用與運(yùn)行環(huán)境解耦,和傳統(tǒng)應(yīng)用研發(fā)模式具有較大差異。從傳統(tǒng)研發(fā)模式過(guò)渡到云原生時(shí)代,抑或傳統(tǒng)應(yīng)用和云原生長(zhǎng)期并存過(guò)程中,云原生應(yīng)用的實(shí)現(xiàn)、集成、部署、運(yùn)維都面臨較大的挑戰(zhàn)。
1. 存量應(yīng)用與云原生應(yīng)用長(zhǎng)期并存的整合問(wèn)題
雖然云原生可以覆蓋絕大部分應(yīng)用場(chǎng)景,甚至以往比較難解決的問(wèn)題在云原生下都可迎刃而解,如營(yíng)銷場(chǎng)景的應(yīng)用。但有些應(yīng)用場(chǎng)景在云原生下并無(wú)決定性優(yōu)勢(shì),且存在遷移成本,加之傳統(tǒng)應(yīng)用在系統(tǒng)架構(gòu)上的約束,這些將導(dǎo)致存量傳統(tǒng)應(yīng)用將和云原生應(yīng)用長(zhǎng)期并存。如何整合這兩種應(yīng)用的研發(fā)鏈路,以及基礎(chǔ)設(shè)施層面的互聯(lián)互通,是云原生實(shí)踐帶來(lái)的一個(gè)挑戰(zhàn)。
2. 研發(fā)環(huán)境的成熟度問(wèn)題
云原生新應(yīng)用的實(shí)踐或存量應(yīng)用的云化,不僅僅是基礎(chǔ)設(shè)施和平臺(tái)的變化,在架構(gòu)設(shè)計(jì)、開(kāi)發(fā)方式、測(cè)試聯(lián)調(diào)、部署維護(hù)等各階段和各方面都要基于云的特點(diǎn)做出相應(yīng)調(diào)整。傳統(tǒng)線下 IDE 工具鏈將無(wú)能為力,在 DevOps 這條工具鏈上,需要一個(gè)集成度高、操作路徑短的研發(fā)環(huán)境。
3. 研發(fā)模式、組織陣型與云原生的適配問(wèn)題
云原生通常以微服務(wù)架構(gòu)進(jìn)行服務(wù)開(kāi)發(fā),函數(shù)計(jì)算更細(xì)粒度到函數(shù)級(jí)別。松耦合的架構(gòu)方式會(huì)減輕因需求變更導(dǎo)致的系統(tǒng)迭代成本,并加快交付速度。微服務(wù)使得單個(gè)服務(wù)的開(kāi)發(fā)團(tuán)隊(duì)更小,也更加獨(dú)立,這種松耦合+獨(dú)立小型的團(tuán)隊(duì)使得持續(xù)更新和敏捷協(xié)作成為可能。在這種情況下,云端出現(xiàn)的問(wèn)題解決會(huì)更突出,在線協(xié)作將比線下交流會(huì)有更高的效能。
與云原生跨代優(yōu)勢(shì)相比,這三點(diǎn)只能算“最后一公里”的問(wèn)題。今天,阿里云推出的云開(kāi)發(fā)平臺(tái)正在解決云原生 Serverless 集成研發(fā)使用的"最后一公里"問(wèn)題。
云開(kāi)發(fā)平臺(tái)的功能特性
云開(kāi)發(fā)平臺(tái)集成了阿里云 FC、SAE、ASK 三種 serverless 計(jì)算服務(wù),在 VPC 基礎(chǔ)設(shè)施之上,把眾多中間件云產(chǎn)品按賬戶、產(chǎn)品線、應(yīng)用、函數(shù)4個(gè)級(jí)別進(jìn)行歸類,設(shè)定共享級(jí)別,按需編排。通過(guò)業(yè)務(wù)語(yǔ)言的方式傳達(dá),大幅降低了開(kāi)發(fā)者的學(xué)習(xí)理解成本,提供集成研發(fā)環(huán)境,進(jìn)而降低使用集成云產(chǎn)品的難度,提升研發(fā)效能。
或者可以說(shuō),云開(kāi)發(fā)平臺(tái)是阿里云面向開(kāi)發(fā)者的一個(gè)研發(fā)門面,由于創(chuàng)建編排的云服務(wù)都在開(kāi)發(fā)者的主賬號(hào)下,因此基于云開(kāi)發(fā)創(chuàng)建的應(yīng)用和用戶存量系統(tǒng)是互聯(lián)互通的,從這點(diǎn)上說(shuō)云開(kāi)發(fā)平臺(tái)是一套開(kāi)放的、集成的研發(fā)環(huán)境。
云開(kāi)發(fā)平臺(tái)只集成云原生 Serverless 計(jì)算服務(wù),而 Serverless 計(jì)算的免運(yùn)維特性,使資源投入更聚焦在研發(fā)上,讓?xiě)?yīng)用從創(chuàng)建到實(shí)現(xiàn)運(yùn)營(yíng)都能在云開(kāi)發(fā)平臺(tái)上完成。其中 FC 是函數(shù)形態(tài)的計(jì)算服務(wù),SAE、ASK 是服務(wù)形態(tài)的計(jì)算服務(wù)。云開(kāi)發(fā)平臺(tái)具有以下特性:
1. IT架構(gòu)覆蓋絕大多數(shù)應(yīng)用場(chǎng)景
為用戶提供開(kāi)箱即用的基礎(chǔ)設(shè)施服務(wù),云開(kāi)發(fā)平臺(tái)聚焦于三種通用的 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)用場(chǎng)景。
(1)函數(shù)型 IT 架構(gòu)
這種架構(gòu)能支持大部分移動(dòng)應(yīng)用,因?yàn)榘凑{(diào)用次數(shù)計(jì)費(fèi),所以可以“0”費(fèi)用啟動(dòng)項(xiàng)目,適合大部分初創(chuàng)團(tuán)隊(duì)的應(yīng)用場(chǎng)景、企業(yè)靜態(tài)站點(diǎn)場(chǎng)景,以及峰谷流量明顯的應(yīng)用場(chǎng)景,比如營(yíng)銷活動(dòng)。Serverless 的彈性特性,減少了擴(kuò)縮容的人力成本和計(jì)算成本。
(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í)計(jì)費(fèi)的模式,即開(kāi)即用,相對(duì)于函數(shù)型IT架構(gòu),更適合穩(wěn)定的大流量業(yè)務(wù)場(chǎng)景。
(3)函數(shù)、服務(wù)混合型 IT 架構(gòu)
混合型 IT 架構(gòu),充分利用函數(shù)型 Serverless 、服務(wù)型 Serverless 各自的優(yōu)勢(shì),端側(cè)接入采用函數(shù)計(jì)算,按調(diào)用次數(shù)計(jì)費(fèi),以及快速敏捷的彈性伸縮能力輕松支持各種峰谷流量。而服務(wù)型 Serverless ,可以組合各種中間件服務(wù),形成高性能、彈性靈活的微服務(wù)中臺(tái)系統(tǒng),可以支持當(dāng)前主流復(fù)雜的應(yīng)用場(chǎng)景。
2. 支持與存量系統(tǒng)的互聯(lián)互通
當(dāng)前云原生還處在商業(yè)導(dǎo)入期。企業(yè)用戶一般會(huì)先用一些適合 Serverless 的場(chǎng)景小試牛刀,這時(shí)創(chuàng)建的 Serverless 一定不是孤立的應(yīng)用,它需要訪問(wèn)存量的數(shù)據(jù)庫(kù)、中間件服務(wù)以及 BPaaS 中臺(tái)功能。因此與存量系統(tǒng)的互聯(lián)互通是 Serverless 推廣應(yīng)用的首要條件。云開(kāi)發(fā)平臺(tái)項(xiàng)目一開(kāi)始就考慮到這個(gè)特性,把自己定位為工具,不自建容器。由用戶授權(quán),云開(kāi)發(fā)平臺(tái)支持 Serverless 應(yīng)用在用戶的賬戶空間中完成 CICD ,用戶可以選擇部署在存量應(yīng)用所在的 VPC、VSwitch 上,因此,Serverless 應(yīng)用和存量系統(tǒng)、存量數(shù)據(jù)庫(kù)、中間件服務(wù)的交互暢通無(wú)阻。
3. 支持被集成 Serverless 的 CICD 能力
基于傳統(tǒng)應(yīng)用研發(fā)和 Serverless 應(yīng)用研發(fā)長(zhǎng)期并存的考慮, Serverless 研發(fā)需要和 ISV 本地研發(fā)模式相兼容,只有切入到 ISV 當(dāng)前的場(chǎng)景中,才有機(jī)會(huì)引導(dǎo) ISV 、開(kāi)發(fā)者到云開(kāi)發(fā)模式當(dāng)中。云開(kāi)發(fā)平臺(tái)當(dāng)前提供了三個(gè)層級(jí)的使用方案:
- 對(duì)于新手開(kāi)發(fā)者,云開(kāi)發(fā)平臺(tái)提供了一個(gè)包括創(chuàng)建、實(shí)現(xiàn)、測(cè)試、構(gòu)建、部署全部環(huán)節(jié)的集成研發(fā)環(huán)境,支持一站式實(shí)現(xiàn) Serverless 應(yīng)用;
- 對(duì)于有研發(fā)體系的 ISV ,研發(fā)、測(cè)試在本地完成。云開(kāi)發(fā)平臺(tái)和 ISV 的分工界面在代碼倉(cāng)庫(kù) Codeup 上,云開(kāi)發(fā)平臺(tái)提供全套 CICD 功能,開(kāi)發(fā)者提交代碼到 Codeup 上后, CICD 功能、資源編排都交給云開(kāi)發(fā)平臺(tái);
- 對(duì)于有研發(fā)體系并且有 CI 體系的 ISV ,提供基礎(chǔ)設(shè)施的編排以及 CD 功能。
- 對(duì)于有研發(fā)體系的后兩者,通過(guò)提供 POP 接口,支持 ISV 進(jìn)行集成,和 ISV 現(xiàn)有研發(fā)體系無(wú)縫融合。
4. 團(tuán)隊(duì)在線協(xié)同特性
受疫情影響,上半年大家都體驗(yàn)了遠(yuǎn)程辦公的模式,更有報(bào)道稱,美國(guó)的公司員工將有 50% 永久遠(yuǎn)程辦公。可以預(yù)見(jiàn),在未來(lái)以云原生應(yīng)用為主的研發(fā)模式下,遠(yuǎn)程辦公將是常態(tài),在線編程、在線測(cè)試聯(lián)調(diào)、在線集成部署都在 CloudIDE 中完成,團(tuán)隊(duì)在線協(xié)同功能是云開(kāi)發(fā)平臺(tái)的重要特征之一。
企業(yè)、團(tuán)隊(duì)、開(kāi)發(fā)者角色的權(quán)限控制體系,加上 Cloud-Native 的集成研發(fā)環(huán)境,組成了云開(kāi)發(fā)平臺(tái)在線協(xié)同功能特性。Serverless 的編程流暢性,測(cè)試聯(lián)調(diào)、構(gòu)建部署一站式體驗(yàn)將在 CloudIDE 中持續(xù)打磨。
5. 基礎(chǔ)架構(gòu)平臺(tái)能力
云原生一個(gè)重要的特征是微服務(wù)化,繼而開(kāi)發(fā)團(tuán)隊(duì)更小、更獨(dú)立。但前提是要有一套統(tǒng)一框架和統(tǒng)一標(biāo)準(zhǔn),小團(tuán)隊(duì)才能獨(dú)立去迭代業(yè)務(wù)邏輯。這套框架、標(biāo)準(zhǔn),以及基礎(chǔ)類庫(kù)需要體現(xiàn)在微服務(wù)的整個(gè)研發(fā)過(guò)程當(dāng)中。
另外微服務(wù)化后,可以抽象出更多的通用能力。傳統(tǒng)上這些通用功能會(huì)通過(guò) SDK 提供出來(lái),但在云原生環(huán)境下,這些通用能力可以直接部署為服務(wù),函數(shù)級(jí)能力可以部署于函數(shù)計(jì)算,提供函數(shù)級(jí)通用服務(wù);模塊級(jí)能力可以通過(guò)容器方式部署,向外提供模塊級(jí)通用服務(wù)。
云開(kāi)發(fā)平臺(tái)充分考慮到這一云原生研發(fā)模式的特征,提供了應(yīng)用級(jí)解決方案,當(dāng)前支持靜態(tài)定義。后期將支持動(dòng)態(tài)生成,基于一系列基礎(chǔ)框架、基礎(chǔ)類庫(kù),像活字印刷一樣組合成為某一場(chǎng)景的應(yīng)用模板,開(kāi)發(fā)者將在其上專注實(shí)現(xiàn)業(yè)務(wù)邏輯。函數(shù)級(jí)通用服務(wù)、模塊級(jí)通用服務(wù)的生產(chǎn)、安裝正在實(shí)現(xiàn)當(dāng)中,將很快發(fā)布上線。
集成案例介紹
說(shuō)不如練,云開(kāi)發(fā)平臺(tái)就在你眼前:https://workbench.aliyun.com 。以下將簡(jiǎn)單介紹 SpringBoot 應(yīng)用、 PHP 應(yīng)用如何遷移到 Serverless 計(jì)算服務(wù)當(dāng)中。
1. SpringBoot 應(yīng)用遷移
對(duì)于存量系統(tǒng)的遷移,云開(kāi)發(fā)平臺(tái)已經(jīng)上架 了 FC、SAE、ASK 的各種架構(gòu)形式的遷移解決方案,且還在不斷豐富當(dāng)中。Springboot 遷移方案步驟:
- 在云開(kāi)發(fā)平臺(tái)上創(chuàng)建一個(gè)“ SpringBoot 應(yīng)用遷移方案(ASK)”應(yīng)用。
- 打開(kāi)這個(gè)應(yīng)用的 CloudIDE 環(huán)境,點(diǎn)擊“開(kāi)發(fā)部署”。
- 在 CloudIDE 中,把存量系統(tǒng)的 src 目錄和 pom.xml 拖到 CloudIDE 工程目錄中。
- 調(diào)整 pom.xml ,增加兩個(gè)約定配置:
- 提交修改的代碼,然后構(gòu)建部署進(jìn)行驗(yàn)證,完成遷移工作。
完成 Springboot 應(yīng)用到 Serverless 的遷移,讓存量應(yīng)用快速具備云開(kāi)發(fā) CICD 的特性,以及 Serverless 應(yīng)用的所有優(yōu)勢(shì)。
2. PHP 應(yīng)用遷移
PHP 應(yīng)用遷移方案步驟:
- 在云開(kāi)發(fā)平臺(tái)上創(chuàng)建一個(gè)“PHP 應(yīng)用遷移方案(SAE)”或者 “PHP 應(yīng)用遷移方案(ASK)”應(yīng)用;
- 打開(kāi)這個(gè)應(yīng)用的 CloudIDE 環(huán)境,點(diǎn)擊“開(kāi)發(fā)部署”;
- 然后,把存量的 PHP 項(xiàng)目文件拖放到 CloudIDE 工程目錄下,就能完成遷移工作;
- 提交代碼并 Push ,然后就可以開(kāi)始進(jìn)行應(yīng)用部署,部署成功后,云開(kāi)發(fā)平臺(tái)會(huì)生成一個(gè)臨時(shí)域名出來(lái),點(diǎn)開(kāi)即可驗(yàn)證部署效果。
WordPress 是社區(qū)比較熱門的由PHP實(shí)現(xiàn)的建站平臺(tái),提供所見(jiàn)即所得的頁(yè)面編輯發(fā)布功能。云開(kāi)發(fā)平臺(tái)支持一站式部署 WordPress ,開(kāi)發(fā)者可以依據(jù)https://workbench.aliyun.com/activities/k8s 中的描述部署,充分體驗(yàn)一下 WordPress 部署過(guò)程,感受 PHP 應(yīng)用的遷移過(guò)程,還能機(jī)會(huì)獲得限量版精美禮品哦!
原文鏈接:https://developer.aliyun.com/article/780039?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開(kāi)發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開(kāi)發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開(kāi)發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫(xiě)侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的云原生应用架构转型不好做?阿里云让你一步到位!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2021云数据库RDS重磅升级发布会
- 下一篇: 2020年阿里云边缘计算和CDN的关键词