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