Serverless架構 [Building Serverless Architectures]

Serverless架構 [Building Serverless Architectures] pdf epub mobi txt 電子書 下載 2025

卡格特·古爾圖剋(Cagatay Gurturk) 著,周翀 欒雲傑 薑明魁 譯
圖書標籤:
  • Serverless
  • 雲計算
  • 微服務
  • 架構設計
  • AWS
  • Azure
  • GCP
  • 函數計算
  • 事件驅動
  • DevOps
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111593904
版次:1
商品編碼:12332731
品牌:機工齣版
包裝:平裝
叢書名: 雲計算與虛擬化技術叢書
外文名稱:Building Serverless Architectures
開本:16
齣版時間:2018-04-01
用紙:膠版紙
頁數:199

具體描述

編輯推薦

  (1)eBay資深軟件工程師撰寫,全麵闡述無服務器架構設計的基礎知識、實用技術及實踐,是快速掌握無服務器架構的入門指南
  (2)注重實踐,以開發一個真正的雲計算應用程序為綫索,循序漸進講解基於“無服務器計算”架構的軟件開發
  在過去的幾年裏,從初創企業到大型企業的所有公司都開始使用公共雲,以節約成本,減少公司正常運營所需的運維工作量。現在甚至有可能創建一個由許多獨立的微功能組成的復雜的軟件係統,這些微功能隻有在需要時纔運行,而不需要維護單個服務器。
  本書的重點是設計無服務器架構,並權衡這種方法的優缺點以及需要考慮的決策因素。你將學習如何設計無服務器應用程序,瞭解無服務器應用程序所基於的服務要點以及已知問題和解決方案。
  本書解決瞭關鍵的挑戰,比如,如何分配軟件的核心功能,將之分布在不同的雲服務和雲功能中。它涵蓋瞭這些服務的基本和高級用法、無服務器軟件的測試和安全、自動部署等。
  在本書的最後,你將會掌握新的工具和技術的知識,以跟上IT行業的發展。
  通過閱讀本書,你將學到:
  l如何從大型軟件構建雲的功能
  l協調和擴展雲的功能
  l設計和設置雲服務和定製業務邏輯之間的數據流
  l雲提供商的API、限製和已知問題
  l將現有的Java應用程序遷移到無服務器架構的方法
  l如何獲取部署策略
  l如何構建高度可用且可伸縮的數據持久層
  l成本優化技術

內容簡介

  本書由eBay資深軟件工程師撰寫,全麵、係統闡述無服務器架構設計的基礎知識、實用技術及實踐,是快速掌握無服務器架構的入門指南。通過本書,你不僅可以學到AWSLambda功能,還可以看到如何通過Lambda函數將其他AWS服務粘閤在一起。你將通過CRUD應用的例子,學到如何輕鬆構建可擴展的軟件係統。
  全書共8章,第1章介紹無服務器計算和Lambda函數,設置AWS賬戶和環境,並構建基礎庫;第2章介紹雲資源自動化管理工具CloudFormation及其JSON模闆;第3章講解如何基於AWSLambda函數創建一個基於Serverless架構的RESTAPI,並將其作為後端服務;第4章講述如何實現和配置Lambda函數的依賴注入模式;第5章介紹使用DynamoDB保存應用程序數據;第6章介紹如何用較少的自定義代碼構造無服務應用的相關服務;第7章介紹CloudSearch服務;第8章介紹如何監視無服務器應用程序並確保其安全性。

作者簡介

  卡卡格特·古爾圖剋(CagatayGurturk)軟件工程師、互聯網企業傢和雲愛好者。他目前在eBay擔任軟件開發經理,並且獲得瞭AWS解決方案架構師的認證。2004年,在大學一年級期間,他與人共同創立的Instela迅速成為土耳其著名的互聯網平颱,每月有數百萬的訪問者。作為Instela的技術聯閤創始人,他積纍瞭運行大規模網絡平颱的經驗,並步入雲計算領域。他還曾在多傢公司任職,發布瞭運行在雲架構上的軟件,尤其是在AWS上運行的軟件。他還編寫瞭一些與AWS相關的開源項目。

目錄

Contents?目錄
作者簡介
審校者簡介
譯者序
前言
第1章Serverless起步1
1.1準備開發環境8
1.2Gradle11
1.2.1創建項目11
1.2.2實現Lambda依賴14
1.2.3你好Lambda19
1.2.4部署到雲端22
1.3總結24
1.4參考文獻25
第2章基礎架構即代碼27
2.1嚮雲端上傳程序包28
2.2用CloudFormation實現基礎架構即代碼32
2.3用CloudFormation部署第一個AWSLambda函數34
2.4總結44
第3章你好,互聯網45
3.1設置API網關46
3.1.1創建API48
3.1.2創建資源49
3.1.3創建方法50
3.1.4配置Lambda權限53
3.1.5部署API54
3.2設置CloudFront的CDN分布58
3.2.1設置自定義域62
3.2.2創建SSL安全證書64
3.2.3為API調用授權66
3.2.4實現簡單授權程序67
3.3總結75
第4章企業模式實踐77
4.1創建用戶管理服務79
4.2配置Guice框架81
4.3使用依賴注入編寫Lambda處理程序類82
4.4增加日誌功能84
4.5服務的依賴關係86
4.6總結89
第5章數據持久化91
5.1DynamoDB介紹91
5.2創建第一張錶93
5.2.1創建第二張訪問令牌的錶95
5.2.2配置DynamoDB數據映射器97
5.2.3配置Lambda環境變量98
5.2.4用戶注冊105
5.2.5創建用戶注冊Lambda114
5.2.6為用戶注冊創建Lambda和API網關117
5.3總結120
第6章創建配套服務123
6.1構建Lambda函數的架構124
6.2讓用戶上傳頭像圖片到S3雲存儲桶中127
6.2.1修改Lambda函數響應S3事件132
6.2.2配置CloudFront以調整圖片大小133
6.2.3練習135
6.3通過SES發送電子郵件135
6.3.1配置SES136
6.3.2用戶注冊時發送SNS通知137
6.4使用SNS消息和發送電子郵件141
6.5總結147
第7章數據搜索149
7.1創建搜索域150
7.2上傳測試數據154
7.3創建suggester156
7.4為建議創建API端點157
7.5更新搜索數據的Lambda函數160
7.5.1修改歡迎郵件發送者Lambda161
7.5.2創建Lambda函數更新CloudSearch163
7.5.3使用CloudFormation創建及配置Lambda函數166
7.6總結167
第8章監測、日誌與安全169
8.1建立一個Route53健康檢查170
8.1.1開始創建170
8.1.2配置電子郵件通知的健康檢查172
8.1.3為健康檢查開通短信通知173
8.1.4使健康檢查進入健康狀態174
8.1.5掌握CloudWatch警報174
8.1.6配置高級CloudWatch警報176
8.2使用CloudFormation完成178
8.3根據應用程序日誌創建CloudWatch監控指標180
8.4在VPC中運行Lambda函數183
8.4.1創建VPC184
8.4.2添加私有子網185
8.4.3處理齣入流量191
8.4.4創建安全組195
8.5總結197
附錄Lambda框架199

前言/序言

  前言Preface
  近幾年,無論是初創企業還是超大企業,為瞭節省成本、減少正常營業所需的運營工作,都開始把業務嚮公有雲平颱遷移。企業可以根據需要采取不同的遷移策略。有的企業僅藉用公有雲平颱宿主機,而保留瞭之前部署的軟件架構。而另一些企業則做瞭根本性的變革,不限於僅使用公有雲的虛擬機,而是藉用瞭公有雲上提供的雲服務,進而改變瞭原有的部門結構,引入瞭DevOps最佳實踐。這種改變打開瞭軟件産業的變革之門,可以確定地說,引入瞭雲計算,這個世界和以往不一樣瞭。
  自AWSLambda於2014年推齣以來,引入瞭一種新的軟件開發方法。在不需要預先設置基礎架構基礎上,Lambda可以運行響應外部或者內部雲事件的代碼段。它帶來瞭真正的、可管控的和按使用次數付費的基礎架構模型。在短時間內,“無服務器計算”術語被創造齣來,微軟、榖歌,甚至IBM以開源的方式采用瞭同樣的模式。使用Lambda函數,現在甚至可以製作一個復雜的軟件係統,它由許多獨立的微函數組成這些函數隻在需要的時候纔運行,並且不用維護單獨的服務器。Lambda函數現在可以支持大量本地雲服務,這樣就不再需要為常見需求構建定製解決方案,而且還降低瞭基礎架構的運行和維護成本,同時也降低瞭軟件開發成本。
  本書的重點是設計無服務器架構,權衡這種方法的優缺點,以及需要考慮的幾個決策因素。你將通過本書學習到如何設計無服務器應用程序,瞭解無服務器應用程序所依賴的服務的關鍵點,以及應用無服務器架構的已知問題和解決方案。在本書中,你不僅可以學習AWSLambda函數,還可以看到如何通過Lambda函數將其他AWS服務黏閤在一起。你將通過CRUD應用的例子,學到如何輕鬆構建可擴展的軟件係統。
  本書解決瞭關鍵難題,例如如何分解軟件的核心功能,並把不同功能分散在不同的雲服務和雲函數中。它涵蓋瞭這些服務的基本和高級用法,測試和保護無服務器軟件,自動部署等。
  在本書中,我們將隻使用Java編程語言,並將構建一個自主開發的部署係統來輕鬆部署軟件。
  本書不打算對AWS生態係統做詳盡的介紹,但我相信它將為你打開通往無服務器計算世界的大門。
  本書主要內容
  第1章介紹無服務器計算和Lambda函數,設置AWS賬戶和環境,並構建基礎庫。
  第2章教你如何使用CloudFormation將基礎架構定義為代碼,啓動並運行第一個Lambda函數。
  第3章通過AWSAPI網關給互聯網提供Lambda函數。
  第4章實現和配置Lambda函數的依賴注入模式。
  第5章使用DynamoDB以高度可擴展的方式來保存應用程序數據。
  第6章利用AWS服務使Lambda函數能夠將消息傳遞給彼此。
  第7章使用CloudSearch構建完全托管的搜索基礎架構,集成Lambda函數來更新搜索索引。
  第8章設置自動健康狀況檢查、報警和觸發器響應故障,並在安全網絡環境中操作Lambda。
  附錄以最小的工作量將你的JAX-RS應用程序遷移到AWSLambda和API網關。
  閱讀須知
  要運行本書中的所有代碼,你隻需要在計算機上安裝JavaDevelopmentKit。你必須創建一個AWS賬戶來操作這些步驟。AWS為新客戶提供瞭一個免費的層次,它將涵蓋本書中運行示例的大部分成本。另一方麵,一些服務(如CloudSearch和VPCNAT網關)不包含在免費層中。確保你訪問本書中使用的每項服務的定價文檔,以避免産生不必要的費用。
  讀者對象
  本書適用於有意在無服務器環境中設計軟件的開發人員和軟件架構師。由於本書使用的編程語言是Java,所以讀者最好熟悉Java的基礎知識和一般的約定。
  下載示例代碼
  你可以登錄http://www.packtpub.com下載本書的示例代碼文件。如果你在其他地方購買瞭這本書,你可以訪問http://www.packtpub.com/support網站並進行注冊,我們會將文件直接發送給你。你可以按照以下步驟下載代碼文件:
  1)使用你的電子郵件地址和密碼登錄或注冊Packt網站。
  2)將鼠標指針懸停在頂部的“支持”(SUPPORT)選項卡上。
  3)單擊“代碼下載和勘誤錶”(CodeDownload&Errta;)。
  4)在搜索(Search)框中輸入圖書的名稱。
  5)選擇你要下載代碼文件的書。
  6)從你購書的下拉菜單中選擇書名。
  7)單擊“代碼下載”(CodeDownload)。
  下載文件後,請確保使用最新版本解壓縮軟件解壓:
  WinRAR/7-Zip(Windows係統)
  Zipeg/iZip/UnRarX(Mac係統)
  7-Zip/PeaZip(Linux係統)
  本書所有代碼由GitHub托管,可從以下鏈接獲取:https://github.com/PacktPublishing/
  Building-Serverless-Architectures。其他圖書或視頻的代碼獲取地址為https://github.com/Packt-
  Publishing/。去看一下吧!


洞悉未來,構建彈性、高效的雲端應用:Serverless 架構實踐指南 在飛速發展的雲計算時代,傳統應用部署模式的局限性日益凸顯:高昂的服務器維護成本、彈性伸縮的滯後、以及開發團隊被基礎設施管理的繁瑣事務所拖纍。而“Serverless 架構”的興起,正是為瞭解決這些痛點,為開發者提供瞭一條通往更高效、更經濟、更靈活的雲端應用開發的嶄新路徑。 本書並非簡單地羅列 Serverless 的技術名詞,而是深入剖析 Serverless 架構的核心理念、設計原則以及在真實世界中的應用落地。我們將帶領您一步步揭開 Serverless 的神秘麵紗,從根本上理解它為何能改變我們構建和部署應用的方式,並教會您如何利用這項顛覆性的技術,打造真正具備未來競爭力的雲端解決方案。 為什麼 Serverless 值得您深入瞭解? Serverless 並不是說“沒有服務器”,而是指您無需主動管理服務器。這意味著您將從繁重的基礎設施運維中解放齣來,將寶貴的精力全部投入到業務邏輯的開發中。想象一下,再也不用擔心服務器的容量規劃、補丁更新、安全加固,也不必為閑置資源支付高昂的費用。Serverless 將計算、存儲、數據庫等服務進行瞭高度的抽象和封裝,讓您隻需關注代碼的編寫,其餘的一切都交給雲服務商。 這種“按需付費”的模式,極大地降低瞭應用的啓動成本和運行成本。您的應用隻在被調用時纔消耗資源,一旦閑置,成本便降為零。這對於初創企業、小型團隊,甚至是需要應對突發流量高峰的大型企業,都意味著前所未有的成本效益。 更重要的是,Serverless 架構天生具備高度的彈性伸縮能力。當用戶流量激增時,您的應用能夠自動、快速地擴展以應對需求;當流量迴落時,資源也會相應縮減,避免浪費。這種近乎瞬時的彈性,是傳統架構難以比擬的,它保證瞭用戶體驗的穩定性和業務的連續性。 本書將帶您探索的 Serverless 世界 本書的內容設計,旨在為讀者構建一個係統、全麵的 Serverless 知識體係,並提供可操作的實踐指導。我們不會止步於理論的講解,而是將大量的篇幅用於深入的案例分析和代碼示例,讓您真正掌握 Serverless 的核心技能。 第一部分:Serverless 架構的基石與哲學 理解 Serverless 的核心概念: 我們將從最基礎的 FaaS(函數即服務)、BaaS(後端即服務)齣發,闡述 Serverless 的定義、關鍵特性以及它與微服務、容器化等其他架構模式的區彆與聯係。您將明白 Serverless 並非一種單一的技術,而是一種架構範式。 Serverless 的優勢與劣勢: 任何技術都有其兩麵性。我們將客觀地分析 Serverless 在成本、彈性、開發效率等方麵的巨大優勢,同時也會深入探討其在冷啓動、供應商鎖定、調試復雜性等方麵的潛在挑戰,並提供相應的規避和解決方案。 選擇閤適的 Serverless 服務: 不同的雲服務商(如 AWS Lambda, Azure Functions, Google Cloud Functions)提供瞭豐富的 Serverless 服務。本書將指導您如何根據業務需求、技術棧偏好和成本考量,選擇最適閤您的 Serverless 服務組閤。 事件驅動的思維模式: Serverless 架構的核心是事件驅動。我們將深入講解什麼是事件、事件源、事件處理器,以及如何利用事件驅動模型來構建鬆耦閤、高內聚的分布式係統。 第二部分:構建 Serverless 應用的核心組件 函數即服務(FaaS)深度解析: FaaS 是 Serverless 的靈魂。我們將詳細講解如何編寫、部署和管理 Serverless 函數,涵蓋多種主流編程語言。您將學習如何編寫冪等函數、處理並發、管理狀態,以及優化函數的執行效率。 API 網關:Serverless 應用的入口: API 網關在 Serverless 架構中扮演著至關重要的角色,負責請求路由、認證授權、限流熔斷等功能。我們將演示如何配置和使用 API 網關,構建安全、可擴展的 Serverless API。 數據存儲與數據庫: Serverless 應用需要高效、彈性的數據存儲解決方案。本書將介紹 AWS DynamoDB、Azure Cosmos DB、Google Cloud Firestore 等 Serverless 數據庫的特性,以及如何將它們與 FaaS 函數集成,實現數據的持久化和高效訪問。 消息隊列與事件總綫: 為瞭實現異步通信和解耦,消息隊列和事件總綫是 Serverless 應用不可或缺的組件。我們將講解如何利用 AWS SQS/SNS、Azure Service Bus、Google Cloud Pub/Sub 等服務,構建可靠的事件流處理管道。 狀態管理與工作流編排: 對於復雜的業務流程,僅僅依靠 FaaS 函數的串聯是遠遠不夠的。我們將深入探討 Serverless 工作流服務(如 AWS Step Functions, Azure Logic Apps)如何幫助您編排多個函數和服務,構建健壯、可視化的業務流程。 身份認證與授權: 安全是 Serverless 應用的首要考量。本書將詳細介紹如何利用雲服務商提供的身份認證服務(如 AWS Cognito, Azure AD B2C),為您的 Serverless API 和應用提供安全可靠的訪問控製。 第三部分:Serverless 應用的實踐與優化 從單體到 Serverless 的遷移策略: 對於已有的單體應用,如何平滑地遷移到 Serverless 架構?我們將提供一套係統的遷移策略和技術路綫圖,幫助您逐步分解單體應用,將其重構為一係列獨立的 Serverless 服務。 Serverless CI/CD 流程: 自動化是 Serverless 開發的加速器。本書將指導您如何搭建端到端的 Serverless CI/CD(持續集成/持續部署)流水綫,實現代碼的自動化構建、測試和部署,大幅提升開發效率。 性能優化與成本控製: Serverless 的優勢在於其彈性和成本效益,但這並不意味著可以忽視性能和成本。我們將深入分析 Serverless 應用常見的性能瓶頸,如冷啓動、函數執行時長、API 調用次數等,並提供行之有效的優化技巧。同時,也會分享如何監控和管理 Serverless 資源的成本。 監控、日誌與故障排查: 在分布式、事件驅動的 Serverless 環境中,有效的監控和日誌記錄至關重要。我們將講解如何利用雲服務商提供的監控工具(如 AWS CloudWatch, Azure Monitor),以及如何配置日誌采集和分析,快速定位和解決潛在的故障。 安全性最佳實踐: Serverless 應用的安全性需要從多個維度進行考量。本書將總結 Serverless 應用開發中的安全風險,並提供詳細的安全配置指南,包括最小權限原則、輸入驗證、數據加密、API 安全等。 Serverless 應用的測試策略: 如何有效地測試 Serverless 函數和整個應用?我們將探討單元測試、集成測試、端到端測試等在 Serverless 環境下的實施方法,並介紹相應的測試工具和框架。 第四部分:Serverless 的高級主題與未來趨勢 無服務器數據處理: 探索 Serverless 在大數據分析、流式處理等場景的應用,例如使用 AWS Kinesis, Azure Event Hubs, Google Cloud Dataflow 等服務構建實時數據管道。 Serverless 與容器化技術的結閤: Serverless 和容器化並非相互排斥,而是可以協同工作。我們將介紹 AWS Fargate、Azure Container Instances 等方案,如何在 Serverless 的基礎上運行容器。 Serverless 生態係統與工具鏈: 除瞭雲服務商提供的核心服務,還有許多第三方工具和框架能夠極大地提升 Serverless 開發體驗。我們將介紹 Serverless Framework, AWS SAM 等流行的 Serverless 開發框架。 Serverless 的未來展望: 展望 Serverless 技術的發展趨勢,例如更高級彆的抽象、更強大的編排能力、與邊緣計算的結閤等,幫助您提前布局,把握未來的技術風嚮。 誰應該閱讀本書? 本書適閤所有對構建現代化、彈性、經濟高效的雲端應用感興趣的開發者、架構師、技術經理以及 IT 決策者。無論您是剛剛接觸雲計算的新手,還是有多年開發經驗的資深工程師,都能從本書中獲得寶貴的知識和實踐經驗。 如果您希望: 降低雲基礎設施的運營成本。 提高應用的彈性伸縮能力,應對流量波動。 加速開發和部署周期,將更多時間用於創新。 擺脫服務器管理的繁瑣,專注於核心業務價值。 掌握麵嚮未來的雲原生應用開發技術。 那麼,本書將是您不可或缺的指南。 加入我們,開啓 Serverless 之旅! Serverless 架構代錶瞭雲計算的未來方嚮。通過深入學習和實踐本書中的內容,您將能夠自信地運用 Serverless 技術,構建齣更強大、更靈活、更具競爭力的雲端應用,從而在瞬息萬變的數字時代中脫穎而齣。讓我們一起,用 Serverless 賦能您的業務,實現無限可能!

用戶評價

評分

讀完這本書,我對Serverless的理解已經從“聽說過”變成瞭“能落地”。它為我打開瞭一個全新的視角,讓我看到瞭構建現代化、彈性化、低成本應用的巨大潛力。書中關於函數即服務(FaaS)、事件驅動架構、API網關、無服務器數據庫等關鍵組件的講解都非常深入,並且相互之間聯係緊密,構成瞭一個完整的Serverless生態係統。我特彆喜歡作者對於一些常見誤區的澄清和對最佳實踐的總結,這避免瞭我走很多彎路。比如,作者強調瞭Serverless並非萬能,在某些場景下,傳統的架構可能仍然是更優的選擇,這種辯證的分析讓我覺得更加信服。

評分

總而言之,這本書絕對是我近期閱讀過的最值得推薦的技術書籍之一。它不僅內容詳實,結構清晰,而且充滿瞭實踐指導意義。對於想要深入瞭解Serverless架構,並且希望將其應用到實際項目中的開發者、架構師或者技術負責人來說,這本書絕對是必不可少的參考。書中提供的各種工具、服務和架構模式,都經過瞭精心挑選和驗證,能夠幫助讀者快速上手,構建齣高效、可靠的Serverless應用。我個人也已經開始嘗試將書中的一些理念和技術應用到我的工作中,效果比我預期的還要好。

評分

這本書的包裝比我想象中的要厚實一些,拿到手的時候就覺得很有分量,封麵設計也比較簡潔大氣,一看就知道是講技術類的書籍。我一直對“Serverless”這個概念很感興趣,但總覺得有點縹緲,不太清楚它到底是怎麼落地的,實際應用場景又有哪些。我的工作經常需要處理一些周期性任務和高並發請求,傳統的服務端部署和運維總是讓我頭疼,成本高而且彈性不夠。這本書的標題——“Serverless架構 [Building Serverless Architectures]”,直接點明瞭我的痛點,所以我毫不猶豫地入手瞭。

評分

這本書的內容對我來說,最大的亮點在於它不僅僅停留在理論層麵,而是非常注重實際操作和案例分析。作者花費瞭大量的篇幅來介紹如何在不同的雲平颱上構建Serverless應用,從常用的AWS Lambda、Azure Functions到Google Cloud Functions,都進行瞭詳盡的介紹。讓我印象深刻的是,書中給齣瞭好幾個非常貼閤實際業務場景的案例,例如如何用Serverless架構構建一個可擴展的圖片處理服務,或者如何實現一個事件驅動的日誌分析係統。這些案例讓我看到瞭Serverless在解決實際問題上的強大能力,也為我提供瞭很多可以直接藉鑒的思路和方法。

評分

剛翻開這本書,我就被作者清晰的邏輯和循序漸進的講解方式吸引瞭。一開始,作者並沒有直接深入到各種技術細節,而是先從Serverless的核心理念和優勢講起,非常到位地解釋瞭為什麼我們要轉嚮Serverless,以及它能為我們帶來哪些實實在在的好處。這一點對於我這種對Serverless概念還處於模糊階段的讀者來說,簡直是福音。作者用瞭一些生動的比喻,將復雜的概念變得易於理解,比如將Serverless比作“按需付費的電力服務”,讓我立刻就能聯想到自己日常生活中對能源的使用方式,從而更容易理解Serverless的成本效益。

相關圖書

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有