雲原生實踐帶來的挑戰
阿里云云原生爲企業提供了完善的容器服務、函數計算、微服務體系、中間件體系。每一個服務都有伸縮性、彈性和組合性,經過產品選擇或組合搭建,能輕鬆完成應用與運行環境解耦,和傳統應用研發模式具備較大差別。從傳統研發模式過渡到雲原生時代,抑或傳統應用和雲原生長期並存過程當中,雲原生應用的實現、集成、部署、運維都面臨較大的挑戰。web
1.存量應用與雲原生應用長期並存的整合問題
雖然雲原生能夠覆蓋絕大部分應用場景,甚至以往比較難解決的問題在雲原生下均可迎刃而解,如營銷場景的應用。但有些應用場景在雲原生下並沒有決定性優點,且存在遷移成本,加之傳統應用在系統架構上的約束,這些將致使存量傳統應用將和雲原生應用長期並存。如何整合這兩種應用的研發鏈路,以及基礎設施層面的互聯互通,是雲原生實踐帶來的一個挑戰。spring
2.研發環境的成熟度問題
雲原生新應用的實踐或存量應用的雲化,不只僅是基礎設施和平臺的變化,在架構設計、開發方式、測試聯調、部署維護等各階段和各方面都要基於雲的特色作出相應調整。傳統線下IDE工具鏈將無能爲力,在DevOps這條工具鏈上,須要一個集成度高、操做路徑短的研發環境。數據庫
3.研發模式、組織陣型與雲原生的適配問題
雲原生一般以微服務架構進行服務開發,函數計算更細粒度到函數級別。鬆耦合的架構方式會減輕因需求變動致使的系統迭代成本,並加快交付速度。微服務使得單個服務的開發團隊更小,也更加獨立,這種鬆耦合+獨立小型的團隊使得持續更新和敏捷協做成爲可能。在這種狀況下,雲端出現的問題解決會更突出,在線協做將比線下交流會有更高的效能。編程
與雲原生跨代優點相比,這三點只能算「最後一千米」的問題。今天,阿里雲推出的雲開發平臺正在解決雲原生Serverless集成研發使用的"最後一千米"問題。springboot
雲開發平臺的功能特性
雲開發平臺集成了阿里雲FC、SAE、ASK三種serverless計算服務,在VPC基礎設施之上,把衆多中間件雲產品按帳戶、產品線、應用、函數4個級別進行歸類,設定共享級別,按需編排。經過業務語言的方式傳達,大幅下降了開發者的學習理解成本,提供集成研發環境,進而下降使用集成雲產品的難度,提高研發效能。或者能夠說,雲開發平臺是阿里雲面向開發者的一個研發門面,因爲建立編排的雲服務都在開發者的主帳號下,所以基於雲開發建立的應用和用戶存量系統是互聯互通的,從這點上說雲開發平臺是一套開放的、集成的研發環境。架構
雲開發平臺只集成雲原生Serverless計算服務,而Serverless計算的免運維特性,使資源投入更聚焦在研發上,讓應用從建立到實現運營都能在雲開發平臺上完成。其中FC是函數形態的計算服務,SAE、ASK是服務形態的計算服務。雲開發平臺具備如下特性:app
1.IT架構覆蓋絕大多數應用場景
爲用戶提供開箱即用的基礎設施服務,雲開發平臺聚焦於三種通用的IT架構:1)函數型IT架構;2)服務型IT架構;3)函數、服務混合型IT架構。這三種IT架構基本能涵蓋當前適合雲原生的全部應用場景。框架
1)函數型IT架構
這種架構能支持大部分移動應用,由於按調用次數計費,因此能夠「0」費用啓動項目,適合大部分初創團隊的應用場景、企業靜態站點場景,以及峯谷流量明顯的應用場景,好比營銷活動。Serverless的彈性特性,減小了擴縮容的人力成本和計算成本。less
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,而後就能夠開始進行應用部署,部署成功後,雲開發平臺會生成一個臨時域名出來,點開便可驗證部署效果。
原文連接 本文爲阿里雲原創內容,未經容許不得轉載。