编辑推荐
(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] epub pdf mobi txt 电子书 下载 2024
Serverless架构 [Building Serverless Architectures] 下载 epub mobi pdf txt 电子书 2024
Serverless架构 [Building Serverless Architectures] mobi pdf epub txt 电子书 下载 2024
Serverless架构 [Building Serverless Architectures] epub pdf mobi txt 电子书 下载 2024