從“預見”到“遇見”SAE 引領應用步入 Serverless 全託管新時代

Serverless發表於2022-06-06

——黛忻 阿里雲SAE產品經理


近年來,企業的數字化隨著網際網路的普及發展越來越快,技術架構也是幾經更迭,尤其是線上業務部分。從最初的單體應用到分散式應用再到雲原生應用,出現了進階式的變化。

帶來便利的同時,也給企業帶來了一定的複雜度:新技術上手門檻高,容器和微服務就是兩個典型的攔路虎。即便微服務化和容器化後,企業依然需要關注伺服器配置和運維、容量評估,還要面臨高效能和穩定性的挑戰,無法享受雲帶來的最大價值。


Serverless 的出現,帶來了跨越式的變革。為企業數字化轉型帶來了更多機遇。在此模式下,伺服器和作業系統的管理部署、運維、資源分配和擴縮容等全部由雲廠商提供,計算能力真正像水電煤一樣被提供。它能夠將原先在傳統應用環境中的通用能力轉化成雲服務,客戶可以低成本、高效率地觸達。

Serverless 最重要的價值可以歸納為三點:

  1. 通過基礎設施解耦、極致彈性和故障自動處理等,提供永遠線上的服務,無須擔心當機。
  2. 通過高效的研發框架以及 DevOps 新形態,做到秒級市場響應。
  3. 抹平了頭部網際網路公司與傳統企業之間技術競爭力的代差,讓傳統企業面臨大量技術升級和重構時,能夠從容不迫,不會出現人才缺口,甚至能夠彎道超車。


阿里雲 Serverless 應用引擎(簡稱 SAE)初衷是讓客戶不改任何程式碼,不改變應用部署方式,就可以享受到微服務 + K8s + Serverless 的完整體驗,開箱即用免運維。

作為業界首款面向應用的 Serverlss PaaS,自 2018 年推出以來,受到了廣大使用者的一致好評,各行各業企業客戶的生產環境都在 SAE 上穩定執行。

SAE 產品定位:全託管、免運維、高彈性的通用 PaaS 平臺。支援開源微服務 / 開源定時任務框架 / Web 應用的全託管,提供開源增強 & 企業級特性。可以說 SAE 覆蓋了應用上雲的完整場景,是應用上雲的最佳選擇。

Serverless 微服務作為當今業界非常火熱的名詞,較為廣泛的定義為:CI/CD 流水線,加上內建的高效能研發框架,再加上遮蔽基礎 IaaS 層或 K8s 底座,並且提供了端到端的可觀測能力,以及一些自動彈性和流量治理服務。

而阿里雲的 SAE + MSE 可以稱作 Serverless 服務的最佳實踐。基於 SAE ,以應用為中心,在 SAE 的應用啟動過程中內建 MSE 的 agent ,即提供了一整套微服務的能力。加之其底層天然遮蔽了 K8s 底座,提供了一套無伺服器的架構,因此可以將 SAE + MSE 看作 Serverless 的最佳實踐。

同時能夠做到 100%擁抱開源並回饋開源,因為 MSE 團隊做了大量開源佈道以及在開源基礎上做了非常多增強。基於這套 Serverless 微服務的最佳實踐,能夠使開發效率提升 70%,成本降低 60%。

SAE 的彈效能力相對於 ECS 或 K8s 來說,彈性指標更豐富,彈性策略更靈活,主要提供了三種彈性策略。

  1. 監控指標彈性:在開源 K8s 基礎上增加了面向業務側的彈性指標,如 QPS、RT、TCP 的連線數等,基於這些業務指標來精準地實現彈性,整體彈性容量的預估會更加精確。一般適用於有突發流量或典型脈衝的場景。
  2. 定時彈性:定時設定擴/縮容時間,擴/縮容到多少個例項。同時,SAE 提供了白屏化的操作,相比於開源的 K8S 需自實現 HPA Controller 更簡單。
  3. 混合彈性(業界首款):基於定時彈性和指標彈性混用的彈性策略。很多客戶的業務都有潮汐特性,且會伴隨流量突發,比如視訊直播等場景。因此,基於監控指標彈性做兜底,再針對固定時間段的流量峰值疊加定時彈性作為增強的方案,僅一條策略就實現不同時間段內定時彈性或監控指標彈性的精細化彈性需求。


電商類、新零售、互娛行業等往往會出現一些不可預期的突發流量。以往一般通過提前預估峰值,按照峰值保有固定的 ECS 資源來應對,但時常會出現容量預估不準,導致資源浪費或不足的情況,更重要的是會影響系統的 SLA 。

而採用壓測工具加 SAE 的方案之後,可以根據壓測結果精準地設定彈性閾值,與 ARMS 的實時監控指標做對比,系統會自動進行擴縮容操作,無須再做容量規劃,極大節省了硬體成本,實現了秒級的彈性效率,可以輕鬆應對峰值大考。在緊急情況下,還能夠通過限流降級的殺手鐗來避免應用雪崩。

SAE 提供了高效閉環的 DevOps 體系,它完整地覆蓋了從開發態到部署態到運維態整個閉環過程。

它提供了三種企業級 CI/CD 持續整合解決方案:

  1. 無縫對接開源 CI/CD 工具 Jenkins:通過內建的 Maven 外掛,可以完成從 source code 到構建到整個部署的完整過程。它能夠支援 war 包、jar 包和映象部署等幾種模式。
  2. 雲上功能最全的 CI/CD 方案:它與 Jenkins 的區別在於,可以將程式碼直接託管到雲上,由雲效來完成程式碼託管。還能夠做到程式碼側的安全管理,可以定製流水線,提供完整一致的構建執行的環境。它的功能比較齊全,一般適用於中型規模的企業。
  3. 最輕量、最易用的 CI/CD 方案:通過容器映象服務來完成 SAE 的部署。它的輕量在於通過 webhook 將程式碼倉庫打通,在容器映象服務上定製一些構建映象和觸發器的規則,在程式碼提交時能自動構建和部署。如果使用企業級的容器映象服務,還能實現映象的安全掃描、防漏洞、全球多域分發等能力。

SAE 和 ECS 混部方案主要適用於兩種場景:

場景1:從 ECS 陸續遷移到 SAE 的中間過渡方案,能夠提升遷移過程的穩定性。

場景2:將 SAE 完全作為彈性資源池作備用。

此方案需要保證同個應用的 ECS 例項和 SAE 例項都能掛載到同一 SLB 的後端,設定好權重比例。如果是微服務應用,還需註冊到同一個註冊中心。另外,客戶側也需要做一些適配:複用客戶自建的釋出系統,需要保證每次發版時 SAE 的例項和 ECS 的例項版本一致;複用客戶自建的監控系統,需要將 SAE 的監控資料和 ECS 的監控資料整合在一起。流量高峰到達時,彈性模組會將彈性例項彈到 SAE 上,極大提升了彈性擴容效率,也降低了成本。

四個新特性,延展 Serverless 新邊界

01.支援 Terraform


作為國內外大客戶首選的雲上工具,Terraform 的價值在於基礎設施即程式碼,能夠自動配置基礎設施,幫助企業更高速、更低風險、更低成本實現雲應用程式的開發、部署與擴充套件。極大提高自動化運維效率。

SAE 接入 Terraform 之後,開發人員無需理解每個 API,提供宣告式 IaC,操作 SAE 的資源更加安全,對接 CICD / GitOps 也更加簡單。更重要的是提供了資源編排能力,能夠一鍵式的部署 SAE 以及依賴的雲資源,從 0 到 1 建站效率大幅提升。目前多個網際網路客戶已經在生產環境中使用。

02.提供了 PHP 的一站式應用託管

提到 PHP 運維,大家熟知的是各種商業版的伺服器運維皮膚。但這些皮膚只支援單機運維、缺少監控和秒級自動彈效能力,不支援靜態檔案增量更新,對體量稍大一點的 PHP 應用並不友好。

針對以上痛點,SAE 提供了一個免運維、高彈性、無縫整合 APM 監控的 PHP 應用全託管服務。

在框架上,支援 laravel,ThinkPHP,Swoole、wordpress 等流行框架。

在執行環境方面,支援線上應用架構 LNMP,預設提供 PHP-FPM + Nginx。支援 Docker 映象和 PHP zip 包部署,大大降低了使用者使用門檻。

PHP 應用託管的功能矩陣相當豐富,有開發除錯類的上傳下載、內建 Xdebug 等,也有執行時類的彈性伸縮,還能通過 NAS 和 OSS 獨立管理靜態檔案和目錄。

基於這些能力,非常好地支撐了 PHP 的幾個典型使用場景:如靜態站點部署,遠端除錯,多站點部署,存量 ECS/伺服器運維皮膚的應用遷移等。

03.SAE Job 正式邀測


SAE 新增支援了任務型別的負載,開源 XXL job 等任務框架能 0 改造遷移。根據業務資料處理需求,能夠在短時間內快速建立大量計算任務,任務完成後快速釋放計算資源。具備單機、廣播、平行計算、分片執行的特性、定時、失敗自動重試、監控報警特性,提供了全託管免運維的使用者體驗。

區別於傳統任務框架,SAE job 使用起來更方便(對程式碼無侵入)、更節省(任務執行完立即釋放資源)、更穩定(和線上業務獨立、且任務失敗能自動重試)、更透明(視覺化監控報警)、更省心(無需關注底層資源)。更重要的是 SAE job 能深度融合微服務生態,相容開源 K8s。

SAE job 可以廣泛使用在定時任務、批量資料處理、離線計算、非同步任務解耦、微服務生態整合等場景,歡迎大家第一時間體驗試用。

04.SAE 支援事件中心


SAE 提供了非常多的企業級增強能力:比如一鍵啟停開發測試環境、許可權隔離/管控,方便客戶直接使用。近期還新增了事件中心能力:可通過釘釘、簡訊和郵件定向給訂閱規則的使用者傳送應用執行時和變更的異常事件,為客戶及時響應和自動化運維奠定堅實基礎,也是我們區別於開源自建 K8s 的一些使用體驗上的差異,真正做到了想客戶之所想,急客戶之所急。

SAE-雲原生先進技術地完美融合

SAE 是雲原生先進技術的完美融合:容器化 + 微服務 + Serverless 最佳實踐。它的出現幫助 Serverless從專用到通用,打破了 Serverless 的落地實施邊界,使得 Serverless 不再是前端全棧、小程式的專寵,後臺微服務、批處理任務、SaaS 服務、物聯網應用等一樣也可以構建在 Serverless 之上,天然適合企業核心業務的大規模落地。真正做到了 “來了就用,功能齊全、用完即停” 的極致體驗,幫助企業輕鬆進入雲原生實踐的快車道。

更多內容關注 Serverless 微信公眾號(ID:serverlessdevs),彙集 Serverless 技術最全內容,定期舉辦 Serverless 活動、直播,使用者最佳實踐。

相關文章