免運維、彈性伸縮、按需付費...Serverless還有多少驚喜是我不知道的?
課程概要
雲端計算的出現改變了傳統IT架構和運維方式,容器、微服務為代表的技術在各個層面不斷升級雲服務的技術能力,它們在應用和環境中的很多通用能力變成了一種服務。
在雲原生時代,應用開發的新理念和新技術層出不窮,Serverless 也稱為了熱門選擇,隨著這些技術的不斷髮展,能讓開發者更加心無旁騖聚焦業務開發,無需再去操心雲端計算的基礎底層概念,甚至以近乎無感的方式獲得雲端計算的幫助,提升效率及產出。
據Gartner 報告表明,到2020年,全球20%的企業將採用Serverless 技術部署。同時各大企業都在Serverless領域進行探索。Serverless 從底層進行技術變革計算資源的形態,為企業的軟體架構設計和應用服務部署引入創新的技術設計思路。
4月 28 日,京東雲與AI事業部雲產品研發部架構師張金柱,帶來了 《六週玩轉雲原生》終結篇:Serverless 架構設計與落地應用。從雲原生的定義開始,漸進式詳解了Serverless 對於雲原生的價值、挑戰,深入探討Serverless 的架構設計模式與落地應用。
以下是精華分享內容,我們們一起來看看
六週玩轉雲原生
Serverless 架構設計與落地應用
— 京東雲與AI產品研發部架構師 張金柱 —
1 從雲原生說起
在瞭解 Serverless 之前,張金柱老師先帶大家回顧了什麼是雲原生(Cloud Native)。簡單來說,Cloud Native 是“一系列架構、研發流程、團隊文化的最佳實踐組合。”
也就是說,CloudNative 不是某一種技術或最佳架構方式,而是一種集合,一般情況下,它與雲有強相關,包括公有云、私有云,包括京東、BAT 內部也有一些雲的架構,雲的基礎設施,在此基礎上搭建一整套研發流程和團隊的工作方式。
主要包含以下技術點:
1、彈性,過去單體軟體架構或私有機房時,流行託管或採購物理機,資源有限,隨著業務流量增加,擴充套件性很差。在有云的情況下,利用其規模、基礎設施更容易做到彈性擴容和縮容;
2、多租戶;
3、自服務,大家可以像購買商品一樣去透過 API 便捷地去購買雲上的資源;
4、基於API協作,如今雲上也整合了 AI 等各種基於 API 方式提供的服務,大家可以更便捷地去使用;
5、分散式;
6、反脆弱性,網際網路系統最擔心當機,而透過雲的能力,我們可以引入高可用的架構、進行破壞性測試等;
7、按需申請和計費,雲把 IT 的基礎設施商品化,讓大家能夠根據自己的需求去實時申請和釋放。
透過下圖可以清楚瞭解到,在架構上雲原生上是如何去落地的。雲提供敏捷開發基礎設施與公共服務,配合微服務達到可擴充套件性高、可用性高、效能強、一致性的雲原生架構。
雲原生可以理解為多個階段的進化過程:
第一級:單體軟體架構,一套系統解決了所有的問題,但這時它的優缺點都非常明顯,雖然架構簡單了,但同時也牽一髮則動全身,如只想修改一點東西就導致整個服務停掉。
第二級:是由微服務的架構帶來的升級。主要是讓大家做到關注點分離、減少團隊溝通、提高效率。
第三級:雲結合微服務框架帶來的改變。根據Gartner最新報告,以後會有云資源管理運維的職位,主要將各家的雲的資源和服務透過 API整合起來,提供給上層的業務開發者。
第四級:就是今天的重點,Serverless的幾個主要特色有——1)免運維、甚至結合 AI 能力做運維的提升;2)彈性伸縮;3)按需付費;4)高度自動化和自愈能力等。
2 Serverless是什麼
1、對Serverless的定義與理解
UCBerkley 曾對Serverless做過一個研究,主要強調了 Serverless 不是FaaS。各家公有云上都會有一些函式服務的產品,但這只是一個Serverless在計算層面上的抽象和實現,Serverless還有大量的服務,如 AWS 的 S3、京東的物件儲存、KV儲存等。Serverless 給大家帶來的是便捷的申請,按需付費。
雲從某種程度來說,是將大家的技術集中,由專人負責,並且將資料打通形成平臺。如今雲概念的發展相當於真正地給 Serverless 插上了飛翔的翅膀,主要因為Serverless脫胎於雲時代架構的思想,Serverless是隻屬於雲時代的。雲的基礎設施層(IaaS),它可以為Serverless的彈性提供基礎,讓「彈性」有了真正落地的可能。
不僅如此,回顧雲端計算的歷程,從早期的虛擬化(網路、計算、儲存)、到 PaaS、SaaS,到如今Serverless的出現,這是雲端計算進入深水期的體現。對於應用開發者而言,開發模式是否有變更、效率是否有提高、成本是否有降低、這些需求是一直以來都存在的,而Serverless是符合這個階段的,它直面了這一些問題。
特別強調的一點是,Serverless不等於FaaS,它提供的是彈性的計算服務,FaaS只是一種計算資源的抽象方式。
2、Serverless的常見落地場景
Serverless的常見應用場景,可以分為以下幾類:
1)後端應用
隨著 App 移動開發的興起,大量 Server 端和移動端已經做了很好的解耦,後端本質上是一個 Web 服務,包括 IoT 的後端。比如智慧家電,每時每刻都在產生資料,並將資料上傳到雲端。所以對於海量物聯網裝置產生的海量資料,只有具備彈效能力的系統才能滿足其需求。
2)事件驅動的場景
這類場景包括檔案處理、流資料處理、ETL 等。它產生的事件是可以跟函式服務繫結的,完全可以由佇列服務配合去實現。在Serverless的場景下,只要有一個事件,就可以去驅動任務的調起。
3)AI 應用類
舉個真實的案例,有一家做智慧客服的公司,雖然夜裡諮詢量不高,但也會配備一些運維同事值班,因為智慧客服一旦出現問題,就需要有運維的干預。而使用Serverless架構就可以把運維的事情完全託給雲廠商,完全不用擔心夜裡擴容或故障報警。
值得注意的是,BaaS和PaaS需要區別開。BaaS主要是以API的方式給使用者提供服務,並且這些服務是一個使用者架構裡面通用的功能;而PaaS概念很廣,包括資料庫、中介軟體、Web Server等,都可以囊括進來。因此,可以簡單的理解為BaaS是PaaS的子集。
3 Serverless應用場景
目前,Serverless還是一個藍海領域,相關標準還沒有統一。但各大廠商都在積極推動相關的規範和運營標準的統一化制定。
Serverless的常見三層架構:客戶端、服務端、資料。所有的事情都可以在這裡去處理,包括購買、搜尋、使用者管理等。
下圖展示了電商場景下,Serverless的架構圖:
最後再說一說常見的Serverless的工具,主要包括公有云、私有云,以及對Serverless平臺的包裝工具。開發者可以基於Kubernetes搭建Serverless架構。
4 Serverless的未來
說了那麼多Serverless的優點,其實Serverless的未來,還是有不少挑戰的。主要包括以下幾個方面。
第一,首先它忽略了時效性。過去的 Web服務可能是一個後端,使用者請求處理完了就可以返回;但在Serverless架構下,使用者請求的路徑變長,導致服務響應時間變慢。
第二,它阻礙了分散式系統的開發。在Serverless中,有一些事情,如選舉、資料一致性、事務等,無法很好地解決。導致一些必須透過分散式架構來解決的需求,無法實現。
第三,使用者思想上沒有完全接受。這一點主要體現在對安全的擔憂,將自己的資料全都交出去,還是不能完全放心。
最後,IaaS層的挑戰,在Serverless下,我們希望容器能做到啟動速度越來越快,效能損耗越來越小,這對IaaS層提出了更高的挑戰。
雖然挑戰多多,但隨著雲基礎設施的日臻成熟,Serverless也將應該更好的發展。總結起來一句話:未來,已來!
Serverless本身是一種架構思想,要站在架構的角度去探討。不僅如此,初學者更要主動多實操,真正體驗一下Serverless到底給大家帶來多少便利和開發上的效率提升。
雲原生的時代已來,而你,也將成為這個新時代的構建者之一!
無論是學習哪一種新的技術和理念,最重要的是能「學以致用」,在本次課程中,張金柱老師還為大家佈置了課後作業,許多同學雖然是第一次上手容器,也能交出了令人滿意的作業,並且在學習群裡領取到了超實用的雲資源包+硬核雲原生乾貨資料+往期課程影片PPT/PDF,收穫頗豐!
點選【 閱讀 】獲取更多相關課程影片&實操練習!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2693100/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 多執行緒下載、數學求解器... Edge,你還有多少驚喜是我不知道的?執行緒
- Serverless:基於個性化服務畫像的彈性伸縮實踐Server
- 彈性佈局(伸縮佈局)
- Knative Autoscaler 自定義彈性伸縮
- RDS for MySQL Serverless公測上線:彈性伸縮,最高可降成本超80%MySqlServer
- AutoScaling彈性伸縮配置重大升級
- 彈性伸縮:高可用架構利器(架構+演算法+思維)架構演算法
- 知識付費原始碼市場價是多少?有免費的嗎?原始碼
- Fluid 給資料彈性一雙隱形的翅膀 -- 自定義彈性伸縮UI
- 如何使用 Kubernetes 實現應用程式的彈性伸縮
- EMQX Operator 如何快速建立彈性伸縮的 MQTT 叢集MQQT
- Effective HPA:預測未來的彈性伸縮產品
- 深入淺出 OceanBase 運維之彈性擴縮容運維
- 我們總結了彈性伸縮的五個條件與六個教訓
- AutoScaling彈性伸縮附加與分離RDS例項
- AutoScaling 彈性伸縮附加與分離RDS例項
- Kubernetes彈性伸縮全場景解讀(五) - 定時伸縮元件釋出與開源元件
- Serverless 2.0,雞蛋還是銀彈?Server
- 使用 tke-autoscaling-placeholder 實現秒級彈性伸縮
- SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 高可用(彈性伸縮)SpringGCCloud
- 一文了解,OA辦公系統用免費還是付費
- 一個例子體會Kubernetes內容器的高可用性和彈性伸縮
- AutoScaling彈性伸縮附加與分離負載均衡例項負載
- 雲端乾貨|降本必備—彈性伸縮的基本原理
- Node.js的可伸縮性Node.js
- 如何基於容器網路流量指標進行彈性伸縮指標
- 阿里云云計算ACP認證重點梳理3—彈性伸縮阿里
- KubeVela + KEDA:為應用帶來“與生俱來”的彈性伸縮能力
- 免費OA系統,帶給企業不一樣的驚喜
- 雲原生的彈性 AI 訓練系列之三:藉助彈性伸縮的 Jupyter Notebook,大幅提高 GPU 利用率AIGPU
- 支援自動伸縮的消費者模式模式
- 從運維域看 Serverless 真的就是萬能銀彈嗎?運維Server
- 在騰訊雲容器服務 TKE 中利用 HPA 實現業務的彈性伸縮
- 那些我們不知道的 Python 免費學習資料Python
- Git的使用 -- 用git玩翻github,結尾有驚喜!有驚喜!有驚喜!林妙妙看了說:牛呲呼啦帶閃電 (三)(超詳解)Github
- 透過HPA+CronHPA組合應對業務複雜彈性伸縮場景
- 最新.NET MAUI有什麼驚喜?UI
- 大型網站的可伸縮性架構如何設計?網站架構