91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

從單體邁向 Serverless 的避坑指南

發布時間:2020-08-16 13:41:52 來源:ITPUB博客 閱讀:168 作者:阿里巴巴云原生 欄目:云計算

從單體邁向 Serverless 的避坑指南

作者 | 不瞋 阿里云高級技術專家

導讀:用戶需求和云的發展兩條線推動了云原生技術的興起、發展和大規模應用。本文將主要討論什么是云原生應用,構成云原生應用的要素是什么,什么是 Serverless 計算,以及 Serverless 如何簡化技術復雜度,幫助用戶應對快速變化的需求,實現彈性、高可用的服務,并通過具體的案例和場景進行說明。

如今,各行各業都在談數字化轉型,尤其是新零售、傳媒、交通等行業。數字化的商業形態已經成為主流,逐漸替代了傳統的商業形態。在另外一些行業里(如工業制造),雖然企業的商業形態并非以數字化的形式表現,但是在數字孿生理念下,充分利用數據科技進行生產運營優化也正在成為研究熱點和行業共識。

企業進行數字化轉型,從生產資料、生產關系、戰略規劃、增長曲線四個層面來看:

  • 生產資料:數據成為最重要的生產資料,需求/風險隨時變化,企業面臨巨大的不確定性;
  • 生產關系:數據為中心,非基于流程和規則的固定生產關系,網絡效應令生產關系跨越時空限制,多連接方式催生新的業務和物種;
  • 戰略規劃:基于數據決策,快速應對不確定的商業環境;
  • 增長曲線:數字化技術帶來觸達海量用戶的能力,可帶來突破性的增長。

從云服務商的角度來看云的演進趨勢,在 Cloud 1.0 時代,基礎設施的云化是其主題,采用云托管模式,云上云下的應用保持兼容,傳統的應用可以直接遷移到云上,這種方式的核心價值在于資源的彈性和成本的低廉;在基礎設施提供了海量算力之后,怎么幫助用戶更好地利用算力,加速企業創新的速度,就成為云的核心能力。

如果仍在服務器上構建基礎應用,那么研發成本就會很高,管理難度也很大,因此有了 Cloud 2.0,也就是云原生時代。在云原生時代,云服務商提供了豐富的托管服務,助力企業數字化轉型和創新,用戶可以像搭積木一樣基于各種云服務來構建應用,大大降低了研發成本。

云原生應用要素

云原生應用有三個非常關鍵的要素:微服務架構,應用容器化和 Serverless 化,敏捷的軟件交付流程。

1. 微服務架構

單體架構和微服務架構各有各的特點,其主要特點對比如下圖所示。總的來說,單體架構上手快,但是維護難,微服務架構部署較難,但是獨立性和敏捷性更好,更適合云原生應用。

從單體邁向 Serverless 的避坑指南
單體架構 VS 微服務架構

2. 應用容器化和 Serverless 化

容器是當前最流行的代碼封裝方式,借助 K8s 及其生態的能力,大大降低了整個基礎設施的管理難度,而且容器在程序的支撐性方面提供非常出色的靈活性和可移植性,越來越多的用戶開始使用容器來封裝整個應用。 Serverless 計算是另外一種形態,做了大量的端到端整合和云服務的集成,大大提高了研發效率,但是對傳統應用的兼容性沒有容器那么靈活,但是也帶來了很大的整潔性,用戶只需要專注于業務邏輯的編碼,聚焦于業務邏輯的創新即可。

3. 敏捷的應用交付流程

敏捷的應用交付流程是非常重要的一個要素,主要包括流程自動化,專注于功能開發,快速發現問題,快速發布上線。

Serverless 計算

1. 阿里云函數計算

Serverless 是一個新的概念,但是其內涵早就已經存在。阿里云或者 AWS 的第一個云服務都是對象存儲,對象儲存實際上就是一個存儲領域的 Serverless 服務;另外,Serverless 指的是一個產品體系,而不是單個產品。當前業界云服務商推出的新功能或者新產品絕大多數都是 Serverless 形態的。阿里云 Serverless 產品體系包括計算、存儲、API、分析和中間件等,目前云的產品體系正在 Serverless 化。

阿里云 Serverless 計算平臺函數計算,有 4 個特點:

  • 和云端無縫集成:通過事件驅動的方式將云端的各種服務與函數計算無縫集成,用戶只需要關注函數的開發,事件的觸發等均由服務商來完成;
  • 實時彈性伸縮:由系統自動完成函數計算的彈性伸縮,且速度非常快,用戶可以將這種能力用在在線應用上;
  • 次秒級計量:次秒級的計量方式提供了一種完全的按需計量方式,資源利用率能達到百分之百;
  • 高可用:函數計算平臺做了大量工作幫助用戶構建高可用的應用。

那么,阿里云函數計算是如何做到以上 4 點呢?阿里云函數計算的產品能力大圖如下圖所示,首先函數計算產品是建立在阿里巴巴的基礎設施服務之上的產品,對在其之上的計算層進行了大量優化。接著在應用層開發了大量能力和工具,基于以上產品能力,為用戶提供多種場景下完整的解決方案,才有了整個優秀的函數計算產品。函數計算是阿里云的一個非常基礎的云產品,阿里云的許多產品和功能均是建立在函數計算的基礎上。目前阿里云函數計算已經在全球 19 個區域提供服務。

從單體邁向 Serverless 的避坑指南
阿里云函數計算產品能力大圖

2. Serverless 幫助用戶簡化云原生應用高可用設計、實施的復雜度

云原生應用的高可用是一個系統的工程,包括眾多方面,完整的高可用體系構建需要很多時間和精力。那么 Serverless 計算是如何幫助用戶簡化云原生應用高可用設計、實施的復雜度呢? 如下圖所示,高可用體系建設要考慮的點包括基礎設施層、運行時層、數據層以及應用層,且每一層都有大量的工作要做才可以實現高可用。函數計算主要是從容錯、彈性、流控、監控四方面做了大量工作來實現高可用,下圖中藍色虛線框所對應的功能均由平臺來實現,用戶是不需要考慮的。藍色實線框雖然平臺做了一些工作來簡化用戶的工作難度,但是仍需要用戶來進行關注,而橘紅色的實線框代表需要用戶去負責的部分功能。結合平臺提供的功能和用戶的部分精力投入,可以極大地減輕用戶進行高可用體系建設的難度。

從單體邁向 Serverless 的避坑指南
函數計算高可用

函數計算在很多方面做了優化來幫助用戶建設高可用體系。下圖展示了函數計算在可用區容災方面的能力。從圖中可知,函數計算做了相應的負載均衡,使得容災能力大大提升。

從單體邁向 Serverless 的避坑指南
函數計算多可用區容災

下圖展示的是函數計算對事件的異步處理,其處理流水線主要包括事件隊列、事件分發、事件消費三個環節,在每一個環節上都可以進行水平伸縮,其中一個比較關鍵的點是事件的分發需要匹配下游的消費能力。另外,通過為不同函數指定不同數量的計算資源,用戶能方便地動態調整不同類型事件的消費速度。此外,還可以自定義錯誤重試邏輯,并且有背壓反饋和流控,不會在短時間內產生大量請求時壓垮下一個服務。

從單體邁向 Serverless 的避坑指南
函數計算事件異步處理

在函數計算的可觀測性上面,提供了日志收集和查詢功能,除了默認的簡單日志查詢功能外,還提供了高級日志查詢,用戶可以更方便地進行日志分析。在指標收集和可視化方面,函數計算提供了豐富的指標收集能力,并且提供了標準指標、概覽信息等視圖,可以更方便用戶進行運維工作。 下圖是應用交付的一個示意圖,在整個應用的交付過程中,只有每個環節都做好,才能夠建設一個敏捷的應用交付流程,其核心是自動化,只有做到了自動化,才能提升整個流水線的效率和敏捷度。

從單體邁向 Serverless 的避坑指南
▲ 敏捷的應用交付流程

下圖展示了自動化應用交付流水線在每個環節的具體任務。其中需要注意的是做到基礎設施即代碼,才能進行模板定義和自動化設置應用運行環境,進而實現自動化的持續集成等。

從單體邁向 Serverless 的避坑指南
自動化應用交付流水線

做到了應用的自動化交付之后,對整個研發效率的幫助是非常大的。在 Serverless 應用上,阿里云提供了多種工具來幫助用戶實現基礎設施即代碼。Serverless 的模型有一個很好的能力,就是同一份模板可以傳入不同的參數,進而生成不同環境的定義,然后通過自動化地管理這些環境。

對于應用本身不同服務版本的交付和灰度發布,函數計算提供了服務版本和服務別名來提供相應的服務,整個應用的灰度發布流程可以簡化成一些 API 的操作,大大提升業務的效率。通過 Serverless 計算平臺提供的這些能力,整個軟件應用的交付流水線自動化程度得到了大幅度的提高。

函數計算還有一個很有用的功能——對存量應用的兼容性。通過 Custom runtime,能夠適配很多的流行框架,兼容傳統應用,使其能夠很容易地適配到 Serverless 平臺上面,由控制臺提供應用的創建、部署、關聯資源管理、監控等一系列服務。

除了函數計算,還可以用 Serverless 工作流對不同的應用環節、不同的函數進行編排,通過描述性的語言去定義工作流,由其可靠地執行每一個步驟,這就大幅度降低用戶對于復雜任務的編排難度。

應用場景案例

函數計算有幾個典型的應用場景,一個就是 Web/API 后端服務,阿里云已經有包括石墨文檔、微博、世紀華聯在內的多個成功應用案例。

函數計算的另外一個應用場景就是大規模的數據并行處理,比如往 OSS 上面上傳大量的圖片、音頻、文本等數據,可以觸發函數做自定義的處理,比如轉碼、截幀等。這方面的成功案例包括虎撲、分眾傳媒、百家互聯等。

函數計算還有一個應用場景就是數據實時流式處理,比如不同的設備產生的消息、日志發送到消息隊列等管道類似的服務中,就可以觸發函數來進行流式處理。

最后一個應用場景就是運維的自動化,通過定時觸發、云監控事件觸發、流程編排等方式調用函數完成運維任務,大大降低運維成本和難度,典型的成功案例有圖森未來等。

圖森未來是一家專注于 L4 級別無人駕駛卡車技術研發與應用的人工智能企業,面向全球提供可大規模商業化運營的無人駕駛卡車技術,為全球物流運輸行業賦能。在路測過程中會有大量數據產生,而對這些數據的處理流程復雜多變,即使對于同一批數據,不同的業務小組也會有不同的使用及處理方式。如何有效管理不同的數據處理流程、降低人為介入頻率能夠大幅的提高生產效率。

路測不定時運行的特點使得流程編排任務運行時間點、運行時長具有極大的不確定性,本地機房獨自建立流程管理系統難以最大優化機器利用率,造成資源浪費。而圖森未來本地已有許多單元化業務處理腳本及應用程序,但因為各種限制而無法全量的遷移上云,這也對如何合理化使用云上服務帶來了挑戰。

針對上述情況,圖森未來開始探索數據處理平臺的自動化。阿里云 Serverless 工作流按執行調度的次數計費,具有易用易集成、運維簡單等諸多優點,能夠很好地解決上述場景中所遇到的問題,非常適合這類不定時運行的離線任務場景。

Serverless 工作流還支持編排本地或自建機房的任務,圖森未來通過使用 Serverless 工作流原生支持的消息服務 MNS 解決了云上云下的數據打通問題,使得本地的原有任務得到很好的編排及管理。

除了調度外,Serverless 工作流也支持對任務的狀態及執行過程中所產生的數據進行維護。圖森未來通過使用任務的輸入輸出映射及狀態匯報機制,高效地管理了流程中各任務的生命周期及相互間的數據傳遞。

在未來,隨著業務規模的擴大,圖森未來將持續優化離線大數據處理流程的運行效率及自動化水平。通過各種探索,圖森未來將進一步提升工程團隊的效率,將更多的精力和資金投入到業務創新中去。

總結

Serverless 工作流是阿里云 Serverless 產品體系中的關鍵一環。通過 Serverless 工作流,用戶能夠將函數計算、視覺智能平臺等多個阿里云服務,或者自建的服務,以簡單直觀的方式編排為工作流,迅速構建彈性高可用的云原生應用。

自 2017 年推出函數計算起,該服務根據應用負載變化實時智能地彈性擴縮容,1 分鐘完成上萬實例的伸縮并保證穩定的延時。目前已經支撐微博、芒果 TV、華大基因、圖森未來、石墨科技等用戶的關鍵應用,輕松應對業務洪峰。

課程推薦

為了更多開發者能夠享受到 Serverless 帶來的紅利,這一次,我們集結了 10+ 位阿里巴巴 Serverless 領域技術專家,打造出最適合開發者入門的 Serverless 公開課,讓你即學即用,輕松擁抱云計算的新范式——Serverless。

點擊即可免費觀看課程: https://developer.aliyun.com/learning/roadmap/serverless

“ 阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的公眾號。”

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巩义市| 轮台县| 茶陵县| 永清县| 庆元县| 高尔夫| 澄城县| 咸丰县| 辉县市| 凤城市| 山丹县| 安陆市| 平定县| 郧西县| 巴里| 浦县| 开封市| 沾益县| 托克逊县| 西充县| 金山区| 靖西县| 宁明县| 克拉玛依市| 浏阳市| 攀枝花市| 玉门市| 温宿县| 安康市| 新闻| 襄垣县| 昭觉县| 东阳市| 澄城县| 晋宁县| 梁山县| 阿荣旗| 仁布县| 泌阳县| 广河县| 定陶县|