編輯推薦
(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架構 [Building Serverless Architectures] 下載 mobi epub pdf txt 電子書 格式
Serverless架構 [Building Serverless Architectures] 下載 mobi pdf epub txt 電子書 格式 2024
Serverless架構 [Building Serverless Architectures] mobi epub pdf txt 電子書 格式下載 2024