Serverless架構:從原理、設計到項目實戰
  • 推薦0
  • 收藏0
  • 瀏覽212

Serverless架構:從原理、設計到項目實戰

劉宇 (作者) 

  • 書  號:978-7-121-37628-3
  • 出版日期:2019-11-01
  • 頁  數:
  • 開  本:
  • 出版狀態:圖書立項
  • 維護人:董英
《Serverless架構:從原理、設計到項目實戰》面向有興趣使用或者正在使用Serverless架構部署相關應用與服務的技術人員,通過對Serverless基礎的介紹、對相關規范和標準的描述,對架構、應用的講解與闡述,為讀者提供相對客觀和完整的學習資料及文檔資料;通過網站后端、監控告警、大數據與人工智能、物聯網與高可用服務等不同場景的應用實例,以及簡單博客系統的建設與基于人工智能的相冊小程序系統的建設等完整項目,為讀者提供更多的靈感與啟發?;诒緯峁┑氖鄠€場景實踐及兩個完整項目,讀者不僅可以快速入門Serverless架構,也可以將這些應用場景的代碼直接應用到測試項目中,快速體驗Serverless架構帶來的便利與變化。
《Serverless架構:從原理、設計到項目實戰》不僅包括Serverless架構的相關知識、規范標準、應用實踐,也包括工業化產品和開源產品的相關探究和分析,還包括開源工具的介紹和使用方法,可以讓讀者對目前的Serverless相關產品有更深入的了解,甚至可以自行搭建屬于自己的FaaS平臺。本書的特色是學習與實踐結合,希望通過廣泛的場景拋磚引玉,讓讀者讀完本書之后不僅可以知道什么是Serverless架構,更可以知道Serverless架構為我們帶來了哪些變化、可以做哪些事情,最主要的是,可以知道Serverless架構能為自己做哪些事情,并進行相關實踐。
騰訊一線工程師Serverless實戰經驗總結,包括Serverless基礎知識、各種應用場景實踐、大型綜合案例,適合架構師、開發者及各Serverless流派
劉宇
騰訊云SCF團隊后臺研發,畢業于浙江大學,碩士研究生。讀書期間,先后參加各類創新創業比賽,學科競賽,累計獲得國家級獎勵十余項,省級獎勵三十余項,其他各類獎勵累計六十余項。畢業后,曾在騰訊科技、滴滴出行等公司實習工作,在騰訊云曾參與Tencent Cloud云API Explorer產品設計、Serverless自動擴縮容模塊以及開發者工具等模塊的相關工作,多次參與各類演講分享,例如在中國DevOps社區-深圳等相關活動中分享Serverless相關技術與產品,同時在社區中也非?;钴S,曾多次參加各類Serverless相關技術沙龍、CNCF網絡研討會,Serverlesss架構相關分享會等,是Serverless架構倡導者和先行者,致力于將Serverelss架構推薦到更多行業與領域,并為其提供應用策略以及解決方案等。
推薦序1

Fourteen years ago, in 2005, it was unfathomable to imagine building an internet application without spending millions of dollars in upfront capital and tens of thousands of working hours building one’s own data center and developing the requisite software stack — constraining this domain to a small set of companies and stymying product innovation.
The launch of Amazon Web Services’ Elastic Compute Cloud in 2006 enabled customers to skip the capital intensive process of building data centers and purchasing hardware. This model, known as Infrastructure as a Service(IaaS), allowed customers to rent compute capacity in a pay as you go model — opening up internet application development to a broader audience. However, applications still required building and operating associated backend systems on top of hardware — requiring large engineering teams whose sole focus is on backend infrastructure, not product innovation. Cloud computing remained a product for operators, not for product innovators or individual developers.
Today, we are at a turning point in cloud computing. Serverless computing — the idea that customers only write the required business logic while the cloud provides everything else — represents a quantum leap in cloud computing. Finally, it’s possible for hardware, infrastructure, application platforms, and operations to be abstracted away, freeing developers to focus solely on product innovation. Industry trendsetters such as Netflix have already shifted parts of their core business logic over to serverless — improving product innovation, reducing cost, and enhancing reliability. Application platforms built on serverless are emerging, such as WeChat mini-programs, allowing individual developers to productize and scale them for millions of users quickly.
This book serves as an excellent introduction to readers interested in serverless architectures — striking a balance between theory and application — while also introducing the history and background.
The serverless revolution will bring cloud computing to the masses. I eagerly await the products this revolution will unlock!

Yunong Xiao
騰訊云中間件總經理、首席架構師
2019年10月18日




推薦序1大意如下:

14年前,也就是2005年,那時我們無法想象在不花費數百萬美元和數萬小時構建自己的數據中心的情況下,能夠開發一款軟件或者構建一個網絡應用,當時,這也是阻礙一些小型團隊持續創新與發展的重要原因。
2006年,Amazon Web Services推出彈性計算云服務,該項服務使客戶可以跳過建設數據中心和購買硬件的資本密集型流程,被稱為Infrastructure as a Service,即IaaS。IaaS允許客戶以“即用即付”的模式租用計算能力,從而可以面向更廣泛的客戶開放應用開發所必需的基礎設施。然而,應用程序仍然需要在硬件上構建,同時需要運行相關的后端系統,這同樣需要大型工程團隊全身心投入和關注后端基礎設施,而不是只關注產品創新等。云計算仍然是云廠商的產品,而不是個人開發者的產品。
今天,我們正處于云計算發展的轉折點。Serverless—一個客戶僅編寫所需的業務邏輯代碼而云廠商提供其他所有功能的架構,代表了云計算的一種巨大進步與飛躍。這個架構有可能抽象出硬件、基礎架構、應用程序平臺和操作等,這個架構可以使開發人員將精力完全放在產品創新上。像Netflix這樣的行業引領者已經將其部分核心業務邏輯實現轉移到了Serverless架構上,從而促進了產品創新,降低了成本并增強了可靠性。建立在Serverless架構上的應用平臺正在興起,例如微信小程序,它使個人開發者可以快速為數百萬用戶提供穩定的產品和服務。
該書圍繞Serverless架構,不僅有歷史和背景的相關描述,還有理論基礎的總結和應用實踐的分享,對于對Serverless架構感興趣的讀者來說,是一本不錯的書籍。
Serverless革命將把云計算帶給大眾。我熱切期待這場革命將解鎖的產品!


推薦序2

從簡單的C/S、B/S到云時代,是系統架構的階段性跨越。云是目前所有用戶服務、客戶服務不可忽視的架構基礎,Serverless是云架構發展趨勢中一股強勁的潮流。
Serverless的出現使得單一職責和關注分離的思想有了更進一步的落地。從業務服務及應用開發的角度看,Serverless帶來的優勢非常明顯:高擴展性、低運維成本、低開發成本。讓更合適的“人”做更合適的事,業務方可以將更多的精力放到業務創新上。
Serverless還是較新的概念,Serverless本身及Serverless相關生態還需要我們共同建設。我們相信,在不久的將來Serverless會成為中小企業的首選系統架構,Serverless架構落地應用也會催生更多的業務創新,我們最終服務的用戶及客戶也會從技術發展中獲得更多的收益,包括用戶體驗及經濟收益等。
本書從全局考慮,較為全面地介紹了Serverless知識體系,內容涵蓋Serverless技術入門、架構到復雜應用構建,既有基礎理論,也有方法指導,更包含豐富的實戰案例,是一本Serverless領域必備的技術叢書。

高磊
閱文集團技術部總經理

前言
云計算的不斷發展給社會帶來了諸多便利,云計算與大數據、人工智能的結合,更讓我們的生活悄然發生著翻天覆地的變化。從IaaS到PaaS,再到如今的FaaS,每一個階段都是人類文明前行的一小步,但卻是當前技術發展的一大步。Serverless自概念被提出到現在,搜索熱度與關注度、相關開源項目的增長速度與社區活躍度,都充分顯示了廣大云廠商、開發者對這個架構的支持和期待。甚至有人說Serverless才是真正的云計算,這種說法可能有些夸張,但是不可否認,Serverless技術確實在逐漸融入人們的生活并改變世界,無時無刻不在向我們闡述“云時代”真的要到來了。
本書將通過對Serverless架構的基本描述,介紹其發展歷史、應用場景及未來展望,讓讀者可以更好地了解什么是Serverless及Serverless的過往、未來。本書也對Serverless架構的規范、標準等進行了描述,對開源框架、開源工具、工業化產品進行了相關分析,讓讀者在明白如何使用Serverless或者Serverless有哪些特性的同時,可以真正地使用Serverless相關產品,甚至可以通過開源項目搭建一套自己的Serverless服務。最后,本書通過監控告警、網站后端、人工智能、大數據、物聯網、高可用等多個領域的場景實踐,以及兩個完整的項目實戰,并且與Web應用、微信小程序、快應用等結合,為讀者進行了更加細致的分析和講解,希望通過這種方式使讀者不僅知道Serverless是什么,Serverless能做什么,還可以獲得更多的啟發,并將Serverless架構應用于實戰,通過Serverless架構創造更多的價值,實現自身業務的快速上云。
本書共分為7章,詳細介紹了Serverless的概念、標準規范、場景實踐及項目實戰。
第1章,主要介紹什么是Serverless、Serverless架構的優勢和劣勢、影響和價值、典型應用場景及對未來的展望,這一章是Serverless架構的介紹部分,讀者可以對Serverless架構有一個全面深刻的認識,甚至可以評估出自己目前的產品是否適合接入Serverless架構、如果接入會有哪些好處和變化等。
第2章,主要介紹Serverless相關的標準和規范、開源產品發展情況、工業化產品發展情況及開發工具建設情況等。讀者可以明確地知道Serverless架構的組成及各種相關產品的關系等,同時通過對開源產品的分析和探討,深入了解OpenWhisk、Fission、Kubeless等相關開源項目,甚至可以動手搭建一個屬于自己的Serverless平臺。通過對工業化產品的分析,讀者可以知道AWS、Google、Azure、騰訊云等云廠商在Serverless架構方面的發展情況。通過開發者工具部分,讀者可以明白自己如果使用Serverless架構,應該如何進行開發。
第3、4、5章,結合Web服務、監控告警、大數據、人工智能及物聯網等為讀者帶來十余個場景實踐,通過這些場景實踐希望讀者對Serverless架構的作用及應用場景有更多的思考、獲得更多啟發,并深度認識Serverless架構給開發者、運維者等帶來的變化,進而將Serverless架構與自身的項目和業務結合,并拓展思路探索更多的應有場景,創造更多的價值。
第6章和第7章,是兩個相對完整的實戰項目,從需求分析開始,到功能設計、數據庫設計、接口設計,再到后端功能實現、前端功能實現,最后部署上線,通過將對象存儲、云數據庫及云函數、API網關等產品進行融合,構建出完整的Web項目和微信小程序項目。在這兩個項目中有大量的人工智能技術的應用,包括自然語言處理、推薦系統及計算機視覺等技術,不僅為學習增加了趣味性,也提高了項目的應用價值。
本書在編寫過程中力求深入淺出、重點突出、簡明扼要,盡可能方便不同專業背景和知識層次的讀者閱讀,同時通過基礎知識與實踐項目結合,力求為讀者打造一種可學習、可實踐、可思考、可探索的閱讀體驗。
在本書的編寫過程中,騰訊云Serverless團隊給予了大力支持,包括Yunong、Cliff、Scott、Horace等在內的前輩們都提供了大量幫助。Tina、Liujiang等也對本書的編寫及相關文章的發表等提供了重要幫助和保障。在此特別感謝大家。另外,本書部分內容參考了公開資料和網絡上的資源,在此也對相關作者致以深深的感謝。
最后需要說明的是,Serverless是目前非?;鸬囊环N技術,其底層原理相對復雜,應用領域相對廣泛,因此編寫一本完美的Serverless圖書絕非易事,書中難免存在疏漏或者錯誤,希望廣大讀者不吝賜教。如有任何建議、意見或者疑問,請及時聯系作者,以便在后續版本中改進和完善。

目錄

第1章 初識Serverless 1
1.1 什么是Serverless 2
1.2 優勢與劣勢 6
1.3 影響力和價值 11
1.4 技術難點與挑戰 14
1.5 典型應用場景 18
1.5.1 視頻轉碼服務 18
1.5.2 數據ETL處理服務 19
1.5.3 網站(服務)后端 20
1.5.4 人工智能推理預測 20
1.5.5 物聯網相關應用 21
1.6 發展與展望 21
第2章 Serverless入門 24
2.1 Serverless基礎 25
2.2 Serverless架構規范 28
2.2.1 處理模型 28
2.2.2 函數相關規范 29
2.2.3 函數生命周期 32
2.2.4 工作流程 37
2.3 事件與規范 39
2.3.1 相關術語 39
2.3.2 上下文屬性 40
2.4 開源項目與技術 44
2.4.1 OpenWhisk項目 44
2.4.2 Fission項目 54
2.4.3 Kubeless項目 70
2.5 工業化產品 78
2.5.1 AWS Lambda 78
2.5.2 Google Cloud Function 80
2.5.3 Azure Functions 80
2.5.4 騰訊云SCF 82
2.6 開發運維工具 83
2.6.1 CLI命令行工具 83
2.6.2 插件 91
第3章 Web與監控告警場景實踐 94
3.1 運維、監控與告警 95
3.1.1 網站狀態監控告警 95
3.1.2 服務狀態監控告警 107
3.2 Web后端與應用服務端 114
3.2.1 上傳圖片加水印 114
3.2.2 用IP地址查天氣并在小程序中應用 122
3.2.3 簡易用戶反饋功能與快應用實踐 136
第4章 大數據與人工智能場景實踐 147
4.1 大數據技術之MapReduce的簡單實現 148
4.2 人工智能領域的實踐 158
4.2.1 自然語言處理為你的網站賦能 158
4.2.2 智能客服與微信小程序 163
4.2.3 簡單的車牌識別系統 174
4.2.4 視覺:對象檢測系統 178
第5章 物聯網和其他場景實踐 190
5.1 物聯網相關—定制智能音箱小工具 191
5.2 其他場景實踐 197
5.2.1 OJ判題機/小程序在線編程系統實現 197
5.2.2 Serverless與高可用服務—使用云函數實現雙機存儲 202
5.2.3 Serverless與高可用服務—基于Serverless架構的高可用模型 206
5.2.4 微信公眾號機器人 215
第6章 實戰:Serverless與CMS 224
6.1 項目背景 225
6.2 項目設計 225
6.2.1 功能設計 225
6.2.2 數據庫設計 229
6.2.3 接口設計 231
6.3 數據庫開發 239
6.4 后端開發 241
6.5 前端開發 253
6.6 功能演示 257
6.7 項目總結 260
第7章 實戰:小程序圖片管理系統 261
7.1 項目背景 262
7.2 項目設計 262
7.2.1 功能設計 262
7.2.2 數據庫設計 266
7.2.3 接口設計 268
7.3 數據庫開發 275
7.4 后端開發 277
7.5 前端開發 298
7.6 效果展示 301
7.7 項目總結 304

讀者評論

相關博文

澳洲幸运10现场开奖 北京十一选五走势图一定牛遗漏 福建22选5开奖结果今天晚上 广东快乐十分一定牛分布走势 福建体彩31选7走势图1开奖结果 快乐十分开奖结果一定牛 内蒙古了快三开奖结果 今天新开盘的股票 中国体彩七星彩综合版 上海11选5免费计划网站 11选5之博彩真经