首頁>科技>

雲原生實踐帶來的挑戰

阿里云云原生為企業提供了完善的容器服務、函式計算、微服務體系、中介軟體體系。每個服務都有伸縮性、彈性和組合性,透過產品選擇或組合搭建,能輕鬆完成應用與執行環境解耦,和傳統應用研發模式具有較大差異。從傳統研發模式過渡到雲原生時代,抑或傳統應用和雲原生長期並存過程中,雲原生應用的實現、整合、部署、運維都面臨較大的挑戰。

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 遷移方案步驟:

2. PHP 應用遷移

PHP 應用遷移方案步驟:

在雲開發平臺上建立一個“PHP 應用遷移方案(SAE)”或者 “PHP 應用遷移方案(ASK)”應用;開啟這個應用的 CloudIDE 環境,點選“開發部署”;然後,把存量的 PHP 專案檔案拖放到 CloudIDE 工程目錄下,就能完成遷移工作;提交程式碼並 Push ,然後就可以開始進行應用部署,部署成功後,雲開發平臺會生成一個臨時域名出來,點開即可驗證部署效果。

WordPress 是社群比較熱門的由PHP實現的建站平臺,提供所見即所得的頁面編輯釋出功能。雲開發平臺支援一站式部署 WordPress ,開發者可以依據https://workbench.aliyun.com/activities/k8s 中的描述部署,充分體驗一下 WordPress 部署過程,感受 PHP 應用的遷移過程,還能機會獲得限量版精美禮品哦!

10
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 跨平臺應用即將消亡