Preface 前 言
Serverless 架構曾被翻譯為無服務器架構,而在中國信息通信研究院(以下簡稱中國信通院)的最新材料中,它被表述為服務器無感知架構,這充分說明 Serverless 架構所強調的核心理念是讓開發(fā)者把更多的精力放到自身的業(yè)務邏輯上,花更少的精力在服務器等底層資源上。隨著時間的推移,Serverless 架構逐漸被更多的開發(fā)者所關注,被更多的業(yè)務團隊所接受。利用Serverless在降本增效方面的價值,用戶可以在享受云計算時代帶來的便利的同時,進一步感受 Serverless 時代帶來的極致彈性、按量付費、低/免運維的技術紅利。時至今日,Serverless 架構已經在技術領域掀起了一股新潮流,阿里云等云廠商更是堅信Serverless 奇點已來。
為何寫作本書
如今,Serverless 架構已經在眾多領域取得了重大突破,尤其是近些年,前端技術與 Serverless 架構的融合,讓前端技術插上了探索的翅膀,快速地演進。有人認為,在過去的數(shù)十年中,前端技術曾有三次重大的革新,分別是 Ajax 的誕生、Node.js 對前端規(guī)范化和工程化的促進,以及 React 的組件化和VDOM理念的出現(xiàn),而如今,前端技術的第四次重大革新已然到來,那就是 Serverless 架構與前端技術的融合。
在過去的幾年中,無論是 Jamstack 技術的飛速發(fā)展、小程序/快應用開發(fā)生態(tài)的日益完善,還是 GraphQL 的逐漸風靡、WebAssembly帶動前端性能的不斷突破,它們的背后總有Serverless 架構的理念或者身影。盡管如此,相比其他生態(tài),Serverless 架構與前端技術結合方面的學習資料依舊是比較匱乏的,在與很多前端工程師交流的過程中,我也可以感受到大家非?释幸槐窘榻BServerless 架構與前端技術的實戰(zhàn)類著作。本書旨在通過簡潔明了的語言、真實的案例以及開放的源代碼介紹Serverless 架構的方方面面,和讀者一同探索前端技術與 Serverless 架構。希望本書可以拋磚引玉,為讀者打開 Serverless 架構與前端領域結合的大門:不僅可以知道什么是 Serverless 架構,更可以通過不同領域的實戰(zhàn)案例去探索Serverless 架構與前端結合后的新世界;不僅可以上手開發(fā) Serverless 應用,更可以通過本書分享的各類經驗,讓應用得以優(yōu)化、性能得以突破,讓技術服務于社會,讓云計算、Serverless 架構推動行業(yè)的發(fā)展。
本書主要內容
本書是一本介紹Serverless 架構與前端技術的實戰(zhàn)類著作,通過對 Serverless 架構發(fā)展史的解讀,帶領讀者縱覽Serverless 架構的誕生、發(fā)展、自我革新、逐漸繁榮。本書共10章,通過多個開源項目(包括Knative、OpenWhisk、Kubeless等)、多個云廠商的多款云產品(包括阿里云函數(shù)計算、AWS Lambda等),闡述Serverless 架構與前端技術的最佳實踐,包括小程序/快應用與 Serverless 架構的結合,Serverless 架構下 RESTful API、GraphQL 的實戰(zhàn),對 WebAssembly、Jamstack 的探索等,并提供真實的實戰(zhàn)案例。希望讀者通過閱讀本書,可以對Serverless架構有更加全面、直觀的了解,進而將Serverless項目真正落地,融入自己所在的領域,充分享受 Serverless 架構帶來的技術紅利。
第1章介紹了Serverless 架構的概念定義、工作原理等,探索了Serverless架構的特性與挑戰(zhàn)、Serverless架構的應用場景等。
第2章通過不同云廠商的 Serverless 產品以及不同的開源項目,帶領讀者初步了解Serverless 架構,真真切切地感受Serverless 應用的創(chuàng)建、開發(fā)、遷移/部署等流程。
第3章從前端視角對 Serverless 架構進行探索,帶領讀者深入了解Serverless架構,包括對Serverless 架構開發(fā)流程,應用開發(fā)、構建與調試,CI/CD,可觀測性,應用優(yōu)化等內容的探索等。
第4章分享了一些前端熱門技術,包括 SSR、WebSocket、RESTful API、GraphQL、前后端一體化、小程序/快應用、WebAssembly等,并對這些熱門技術與 Serverless 架構的結合進行了探索,幫助讀者全面認識Serverless 架構與前端領域的結合。
第5章通過5個 Serverless 架構下的前端生產實戰(zhàn)案例,帶領讀者感受 Serverless 架構下的前端應用開發(fā)流程,以啟發(fā)讀者對 Serverless 架構下的前端應用實戰(zhàn)有更多的感悟。
第6章通過傳統(tǒng)內容管理系統(tǒng)Serverless化實戰(zhàn),向讀者介紹將傳統(tǒng)框架部署到 Serverless 架構的流程和思路,以及將傳統(tǒng)應用遷移到 Serverless 架構的方法和注意事項等。
第7章通過將Serverless 架構與人工智能、小程序開發(fā)相結合,讓讀者深入了解 Serverless 應用從需求明確到技術選型、項目設計、開發(fā)實現(xiàn)全流程的工作內容,助力讀者拓展思路,舉一反三。
第8章通過真實的中長尾企業(yè)需求,用 Serverless 架構賦能企業(yè)快速上線企業(yè)宣傳小程序,為讀者如何使用 Serverless 架構、如何用好 Serverless 架構提供了思路和經驗。
第9章通過分享阿里云企業(yè)級解決方案實戰(zhàn),幫助讀者了解新一代 UI 測試流程與 Serverless 架構的結合,助力開發(fā)者將更多場景內容與 Serverless 架構結合。
第10章通過阿里云函數(shù)計算團隊真實的產品功能建設過程,為開發(fā)者提供基于 Serverless 架構的輕量 WebIDE 建設實戰(zhàn),幫助開發(fā)者快速擁有自己的云上開發(fā)平臺,進一步了解Serverless 應用的開發(fā)流程、優(yōu)化方案、使用技巧等。
如何閱讀本書
在閱讀本書前,讀者應當具有一定的編程基礎(例如了解 JavaScript、Node.js、Python等語言)或具有一定的前端技術基礎,同時需要對云計算有初步的了解。本書采用循序漸進的方式,從什么是 Serverless 架構開始講起,除了介紹基本概念外,重點對Serverless 架構與前端技術的融合進行了深入探索,以幫助讀者快速入門,并通過領域實戰(zhàn)、應用案例幫助讀者拓展思路。建議讀者按以下方式閱讀本書:
第一遍通讀全書,先弄清楚概念,并建立對 Serverless 架構與前端技術結合的基本認識,以及對如何完整地開發(fā)一個前端領域的 Serverless 應用的基本了解。
第二遍通過閱讀領域實戰(zhàn)提供的源代碼,深入了解Serverless架構的運行原理、開發(fā)技巧等。
第三遍深入閱讀本書的最后一章,以加深對Serverless 架構的概念的理解,同時,從零開發(fā)一款 Serverless 應用,并將其部署上線。
只有反復研讀,才能更加深入地理解 Serverless 架構。
致謝
在寫作本書的過程中,我曾遇到過很多困難和挑戰(zhàn),在此特別感謝阿里云云原生團隊的小伙伴們,是他們的支持讓本書得以順利完成。
感謝本書的其他幾位作者王慶、袁坤、羅松、徐小春,有了大家的共同努力,本書才得以保質保量地完成。
感謝楊秋弟(曼紅)、楊浩然(不瞋)等前輩,他們在本書的整個寫作過程中不斷給予鼓勵和支持。感謝國防科技大學的竇勇教授、浙江大學的卜佳俊教授等,他們?yōu)楸緯岢隽藰O
具建設性的意見。感謝姜曦(筱姜)在本書寫作、出版過程中提供的幫助。感謝阿里云 ATA 團隊提供的 ATA 平臺,我們在 ATA 平臺中獲得了巨大的靈感。感謝在 ATA 平臺中分享相關技術文章的工程師們。此外,感謝家人對我的支持和信任。
由于水平有限,書中難免存在不足及錯誤之處,敬請專家和讀者批評指正。
江昱(劉宇)