- Nuclio實(shí)戰(zhàn)及源碼分析:基于Kubernetes的Serverless FaaS平臺(tái)
- 李彬 詹煜卓 任勝寒 張晨編著
- 1167字
- 2024-08-06 16:59:51
Preface 前言
Serverless因具有按需付費(fèi)且不需要開發(fā)人員配置和管理基礎(chǔ)設(shè)施等優(yōu)點(diǎn),受到人們的極大關(guān)注。隨著云計(jì)算容器化的發(fā)展,Serverless也得到了快速普及和發(fā)展。最近幾年,各大云廠商和開源界都努力將Serverless變得更加通用。例如:通過(guò)預(yù)留資源完全消除冷啟動(dòng)對(duì)延遲的影響,這樣延時(shí)敏感的在線應(yīng)用也能夠使用Serverless;針對(duì)預(yù)留資源空閑的場(chǎng)景,有的云廠商采取凍結(jié)CPU的方式,讓開發(fā)者的費(fèi)用降低;開源界通過(guò)共享內(nèi)存、函數(shù)公共包共享、容器池共享等舉措來(lái)解決冷啟動(dòng)問(wèn)題,使Serverless變得更加通用。同時(shí),隨著Serverless的生態(tài)變得越來(lái)越成熟,安全、監(jiān)控告警、函數(shù)構(gòu)建等領(lǐng)域涌現(xiàn)了很多開源項(xiàng)目。用戶對(duì)Serverless的滿意度越來(lái)越高,每個(gè)人都想使用這項(xiàng)技術(shù)并從中獲益。Serverless將進(jìn)一步釋放開發(fā)人員的潛力,加速應(yīng)用創(chuàng)新,使開源解決方案越來(lái)越完善,開發(fā)工具更快速地發(fā)展。
目前大家普遍接受的Serverless的定義包含F(xiàn)aaS(函數(shù)即服務(wù))和BaaS(后端即服務(wù))兩部分。BaaS是一種云廠商托管、高度可擴(kuò)展的數(shù)據(jù)和邏輯組件,可以處理開發(fā)人員對(duì)數(shù)據(jù)庫(kù)、消息平臺(tái)、用戶管理、推送通知等的需求。FaaS是一種新的云計(jì)算模式,它由用戶編寫的一段特定函數(shù)源碼組成,并通過(guò)事件進(jìn)行觸發(fā)。在相當(dāng)長(zhǎng)的時(shí)間里,人們把FaaS當(dāng)作Serverless,開源軟件大部分也是FaaS平臺(tái),如Nuclio、Kubeless、OpenWhisk、OpenFaaS等。
Nuclio是Serverless FaaS平臺(tái)的先行者,經(jīng)過(guò)近六年的發(fā)展,它已經(jīng)變得越來(lái)越成熟和完善,并且擁有強(qiáng)大的社區(qū)支持。這使得人們能夠以極小的代價(jià)體驗(yàn)到完整的Serverless FaaS服務(wù)。
基于以上原因,我們編寫了本書。本書是一本系統(tǒng)學(xué)習(xí)Nuclio的工具書,從Serverless的概念到Nuclio實(shí)戰(zhàn),并結(jié)合Nuclio源碼分析,以及翻譯和人臉識(shí)別兩個(gè)應(yīng)用示例,將Nuclio的全貌呈現(xiàn)給讀者。希望讀者通過(guò)對(duì)本書的學(xué)習(xí),掌握Nuclio的使用,使Nuclio能夠?yàn)槠髽I(yè)提升效率、降低服務(wù)計(jì)算成本。
全書分為三篇,具體內(nèi)容如下。
● 準(zhǔn)備篇(第1、2章):介紹了Serverless與Nuclio的相關(guān)背景、技術(shù)優(yōu)缺點(diǎn)、架構(gòu)設(shè)計(jì),以及相關(guān)云運(yùn)維平臺(tái)基礎(chǔ)設(shè)施,幫助讀者了解Serverless技術(shù)。通過(guò)學(xué)習(xí)Nuclio的快速搭建及生產(chǎn)版本搭建流程,讀者能更直觀地感受Nuclio是如何運(yùn)行和管理函數(shù)的。
● 基礎(chǔ)篇(第3~10章):詳細(xì)介紹了Nuclio的六大核心組件及其源碼,使讀者對(duì)Nuclio有更深刻的認(rèn)識(shí);隨后對(duì)Nuclio事件源、觸發(fā)器、網(wǎng)關(guān)、配置和管理等知識(shí)進(jìn)行了詳細(xì)說(shuō)明。
● 實(shí)戰(zhàn)篇(第11、12章):通過(guò)翻譯和人臉識(shí)別兩個(gè)應(yīng)用示例,詳細(xì)介紹了Nuclio的使用方式。通過(guò)學(xué)習(xí)這兩個(gè)示例,讀者可進(jìn)一步掌握Nuclio的應(yīng)用。
此外,附錄中介紹了使用Nuclio的其他注意事項(xiàng)和代碼調(diào)試方法。
在本書寫作過(guò)程中,得到了許多同事及朋友的支持和幫助,他們?yōu)闀泻芏嚓P(guān)鍵技術(shù)內(nèi)容提供了寶貴的資料素材,以及中肯的意見和建議,推動(dòng)我們不斷地完善書稿,以更好的形式與廣大讀者分享我們對(duì)Serverless的認(rèn)識(shí)與理解。同時(shí),感謝Nuclio開源社區(qū)的貢獻(xiàn)者們,正是因?yàn)樗麄兊母牛覀儾庞袡C(jī)會(huì)近距離地接觸和體驗(yàn)到Serverless帶來(lái)的優(yōu)質(zhì)服務(wù)。最后,感謝大家的包容,由于表達(dá)能力和水平有限,書中對(duì)于Serverless的描述可能存在不當(dāng)之處,歡迎大家批評(píng)指正!
- Android應(yīng)用程序開發(fā)與典型案例
- OpenCV 3和Qt5計(jì)算機(jī)視覺應(yīng)用開發(fā)
- 深入淺出Android Jetpack
- Implementing Cisco Networking Solutions
- 算法訓(xùn)練營(yíng):提高篇(全彩版)
- C專家編程
- UI設(shè)計(jì)全書(全彩)
- Hands-On Kubernetes on Windows
- Instant Zurb Foundation 4
- Scratch從入門到精通
- 微前端設(shè)計(jì)與實(shí)現(xiàn)
- 人人都能開發(fā)RPA機(jī)器人:UiPath從入門到實(shí)戰(zhàn)
- Visual Basic 程序設(shè)計(jì)實(shí)踐教程
- 深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐
- 計(jì)算機(jī)程序的構(gòu)造和解釋(JavaScript版)