- Serverless從入門到進(jìn)階:架構(gòu)、原理與實(shí)踐
- 方坤丁 孫遠(yuǎn)高
- 2287字
- 2021-06-24 11:19:05
前言
為什么要寫這本書
2009年,加州大學(xué)伯克利分校發(fā)表了一篇論文,預(yù)言云計(jì)算將是未來重要的技術(shù)趨勢(shì)。十年后的2019年,該校對(duì)Serverless技術(shù)再次進(jìn)行預(yù)測(cè),認(rèn)為Serverless技術(shù)是未來十年的技術(shù)趨勢(shì)。Serverless計(jì)算被認(rèn)為是云主機(jī)、容器之后的第三代計(jì)算形態(tài),而Serverless和云平臺(tái)的結(jié)合,也讓該技術(shù)得到了前所未有的延伸和迅速發(fā)展。那么,為什么業(yè)界對(duì)這項(xiàng)技術(shù)如此看好?Serverless究竟有什么魔力,能同時(shí)獲得工業(yè)界和學(xué)術(shù)界的青睞呢?
筆者身為云計(jì)算行業(yè)的從業(yè)者,初識(shí)Serverless是由于工作原因。Serverless相關(guān)產(chǎn)品是云平臺(tái)服務(wù)的一部分,能夠以解決方案的形式供客戶使用,筆者也因此很榮幸地接觸到了不同行業(yè)、不同需求的客戶。在深入了解Serverless的過程中,筆者進(jìn)一步感受到了Serverless概念之宏大,覆蓋范圍之廣泛,便對(duì)這項(xiàng)技術(shù)產(chǎn)生了熱情,并真正愛上了它。就如同所有改變世界的技術(shù)一樣,這項(xiàng)技術(shù)在一定程度上實(shí)現(xiàn)了范式轉(zhuǎn)變(paradigm shift)。就像在200年前,人們暢想出行未來的時(shí)候只能想到一匹跑得更快的馬,而汽車橫空出世,徹底改變了人們的出行方式。Serverless技術(shù)在一定程度上通過彈性伸縮、按需付費(fèi)等特性,賦能開發(fā)者和企業(yè),通過降低成本、提升效率的方式,實(shí)現(xiàn)了云計(jì)算的革命和企業(yè)數(shù)字化的范式轉(zhuǎn)變。
在2019年10月,全球最受歡迎的開源框架Serverless在國內(nèi)率先支持了騰訊云的部署。作為第一批測(cè)試驗(yàn)收該能力的人之一,筆者猶記得使用Serverless命令行工具幾秒鐘就部署完了一個(gè)對(duì)象存儲(chǔ)桶時(shí)那種奇妙的心情。通過用戶友好的交互式頁面和大量的默認(rèn)配置,Serverless框架結(jié)合云基礎(chǔ)服務(wù),真正實(shí)現(xiàn)了自頂向下的服務(wù)構(gòu)建,改變了傳統(tǒng)自底向上的思路,讓開發(fā)者和企業(yè)可以更關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn),無須管理、配置和運(yùn)維底層資源。這正是Serverless的迷人之處。
當(dāng)然,Serverless技術(shù)也并不是“銀彈”,在上下游生態(tài)中,在開發(fā)到發(fā)布的整個(gè)生命周期中還有許多能力需要補(bǔ)齊,因此企業(yè)在技術(shù)選型的過程中往往要考慮優(yōu)劣,選擇適合自身場(chǎng)景的方案。但在技術(shù)選型時(shí),選擇一個(gè)面向未來、持續(xù)受到關(guān)注和發(fā)展的技術(shù)則是對(duì)企業(yè)非常有利的。筆者可以自信地說,長期來看,Serverless技術(shù)絕對(duì)值得企業(yè)擁抱,值得開發(fā)者學(xué)習(xí)。
國內(nèi)目前關(guān)于Serverless技術(shù)的參考材料和實(shí)戰(zhàn)案例依然有限,因此,本書將結(jié)合云計(jì)算及Serverless,通過闡述Serverless的技術(shù)原理、優(yōu)勢(shì)和特點(diǎn),和讀者一起探索為什么說Serverless技術(shù)是未來的趨勢(shì)。此外,通過介紹Serverless架構(gòu)包含的內(nèi)容,讓讀者對(duì)該架構(gòu)及上下游依賴有更加清晰的認(rèn)識(shí),并全面了解構(gòu)建一個(gè)企業(yè)級(jí)完整Serverless架構(gòu)所需的能力。最后,本書結(jié)合Serverless典型場(chǎng)景,帶領(lǐng)讀者基于Serverless架構(gòu)實(shí)現(xiàn)具體的應(yīng)用案例,從而在實(shí)踐中感受這項(xiàng)技術(shù)的強(qiáng)大、便捷和易用。
讀者對(duì)象
根據(jù)不同的場(chǎng)景和需求,推薦以下人群閱讀此書。
- 大公司的開發(fā)、運(yùn)維人員,ToB方向產(chǎn)品經(jīng)理和運(yùn)營人員等。
- 前端工程師、全棧工程師。
- 云計(jì)算、SaaS行業(yè)從業(yè)人員,如架構(gòu)師、商務(wù)經(jīng)理、售后支持人員等。
- 相關(guān)專業(yè)的高校學(xué)生和教師。
- IT行業(yè)咨詢師、分析師。
- 對(duì)Serverless感興趣,希望獨(dú)立開發(fā)應(yīng)用的愛好者。
本書特色
- 完整介紹Serverless架構(gòu),內(nèi)容涵蓋騰訊、阿里巴巴、亞馬遜等多個(gè)云廠商的產(chǎn)品,并對(duì)它們進(jìn)行橫向?qū)Ρ群头治觥?/li>
- 知名云平臺(tái)提供商騰訊云Serverless高級(jí)產(chǎn)品經(jīng)理和高級(jí)研發(fā)工程師聯(lián)合撰寫,包含豐富的客戶場(chǎng)景和最佳實(shí)踐,可以為有相似需求的企業(yè)提供實(shí)戰(zhàn)參考。
- 深入淺出地講解Serverless技術(shù)的發(fā)展、原理和特性,針對(duì)Serverless中的FaaS和BaaS概念進(jìn)行分析和介紹。
- 提供豐富的實(shí)戰(zhàn)案例,覆蓋Serverless典型應(yīng)用場(chǎng)景,包括SSR、AI、物聯(lián)網(wǎng)等。
- 結(jié)合Serverless開源工具、上下游生態(tài),打造完整的Serverless開發(fā)流程。不僅介紹了最受歡迎的開發(fā)平臺(tái)Serverless框架,還提供了多種CI/CD解決方案,包含Travis CI、GitHub Actions、Jenkins、Coding DevOps等。
如何閱讀本書
本書內(nèi)容從邏輯上分為四個(gè)部分。
第一部分(第1章)Serverless基礎(chǔ),主要介紹了Serverless的概念、發(fā)展歷程、基本特點(diǎn)、應(yīng)用場(chǎng)景、框架和生態(tài),以及它為開發(fā)者、企業(yè)和云計(jì)算帶來的作用和優(yōu)勢(shì)。
第二部分(第2~4章)Serverless架構(gòu)和原理,首先介紹了Serverless的整體架構(gòu),然后深入分析了FaaS層和BaaS層的底層原理。
第三部分(第5~9章)Serverless開發(fā)流程,從上下游生態(tài)的視角講解了如何開發(fā)和部署一個(gè)完整的Serverless應(yīng)用,包括開發(fā)、調(diào)試、測(cè)試、部署、CI/CD、運(yùn)維等,全生命周期的各個(gè)環(huán)節(jié)。
第四部分(第10~15章)Serverless實(shí)戰(zhàn)案例,涵蓋了Serverless的典型應(yīng)用場(chǎng)景并提供豐富的實(shí)戰(zhàn)案例和最佳實(shí)踐,包括如何將傳統(tǒng)的Web服務(wù)遷移到Serverless架構(gòu)、Serverless SSR應(yīng)用場(chǎng)景、全棧后臺(tái)管理系統(tǒng)和基于熱門語言TypeScript開發(fā)的短鏈接服務(wù)等。
第五部分(第15章)Serverless趨勢(shì)預(yù)測(cè),首先介紹了當(dāng)前學(xué)術(shù)界在Serverless領(lǐng)域的研究方向、重點(diǎn)以及取得的成果,然后介紹了伯克利大學(xué)對(duì)Serverless未來10年發(fā)展趨勢(shì)的預(yù)測(cè)。
勘誤和支持
由于作者的水平有限,編寫時(shí)間倉促,書中難免會(huì)有一些錯(cuò)誤或者表述不準(zhǔn)確的地方,懇請(qǐng)讀者批評(píng)指正。為此,我們創(chuàng)建了一個(gè)GitHub項(xiàng)目https://github.com/yugasun/serverless-book/issues,讀者可以將書中的錯(cuò)誤或者遇到的任何問題創(chuàng)建為GitHub issue,我們將在線上為讀者提供解答。書中的全部源文件除可以從華章網(wǎng)站(hzbook.com)下載外,還可以從GitHub下載。本書涉及的所有源碼均在GitHub開源組織Serverless Plus中(https://github.com/serverless-plus),我們也會(huì)將對(duì)應(yīng)的功能更新及時(shí)發(fā)布到GitHub上。如果你希望和作者進(jìn)一步交流,可以發(fā)送郵件到郵箱tinafangkd@qq.com以及yuga_sun@163.com。期待能夠得到讀者的真摯反饋,并在交流中與大家共同進(jìn)步。
致謝
感謝肖雨濃、羅茂政、張浩、黃文俊、盧萌凱、李嘯川、王俊杰、劉傳、蔡衛(wèi)峰等騰訊云的同事對(duì)我們提供的支持和指導(dǎo),本書的內(nèi)容和許多案例都源自騰訊云團(tuán)隊(duì)的經(jīng)驗(yàn)積累。作為直面客戶的平臺(tái)提供方和一線開發(fā)者,騰訊云團(tuán)隊(duì)更能深切感受到行業(yè)發(fā)展之快,需求之強(qiáng)烈,騰訊云的存在也讓Serverless行業(yè)更加繁榮,未來可期。
感謝機(jī)械工業(yè)出版社華章公司的編輯楊福川和韓蕊在這段時(shí)間對(duì)我們的支持,他們的幫助和指導(dǎo)讓我們能夠順利完成書稿。
最后感謝所有在我們創(chuàng)作過程中提供支持和鼓勵(lì)的親人和朋友。
謹(jǐn)以此書獻(xiàn)給廣大Serverless的開發(fā)者和愛好者。相信我們每個(gè)人貢獻(xiàn)出的微小力量,能夠照亮Serverless的前路。
- 程序設(shè)計(jì)與實(shí)踐(VB.NET)
- Rust實(shí)戰(zhàn)
- PyTorch自動(dòng)駕駛視覺感知算法實(shí)戰(zhàn)
- JS全書:JavaScript Web前端開發(fā)指南
- Mastering Python Networking
- Mastering ServiceNow(Second Edition)
- 信息技術(shù)應(yīng)用基礎(chǔ)
- Java編程技術(shù)與項(xiàng)目實(shí)戰(zhàn)(第2版)
- 微服務(wù)從小白到專家:Spring Cloud和Kubernetes實(shí)戰(zhàn)
- Lighttpd源碼分析
- iPhone應(yīng)用開發(fā)從入門到精通
- Visualforce Developer’s guide
- 零基礎(chǔ)學(xué)C++(升級(jí)版)
- 超簡(jiǎn)單:Photoshop+JavaScript+Python智能修圖與圖像自動(dòng)化處理
- 實(shí)戰(zhàn)Python網(wǎng)絡(luò)爬蟲