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架构,并且希望将其应用到实际项目中的开发者、架构师或者技术负责人来说,这本书绝对是必不可少的参考。书中提供的各种工具、服务和架构模式,都经过了精心挑选和验证,能够帮助读者快速上手,构建出高效、可靠的Serverless应用。我个人也已经开始尝试将书中的一些理念和技术应用到我的工作中,效果比我预期的还要好。

评分

这本书的内容对我来说,最大的亮点在于它不仅仅停留在理论层面,而是非常注重实际操作和案例分析。作者花费了大量的篇幅来介绍如何在不同的云平台上构建Serverless应用,从常用的AWS Lambda、Azure Functions到Google Cloud Functions,都进行了详尽的介绍。让我印象深刻的是,书中给出了好几个非常贴合实际业务场景的案例,例如如何用Serverless架构构建一个可扩展的图片处理服务,或者如何实现一个事件驱动的日志分析系统。这些案例让我看到了Serverless在解决实际问题上的强大能力,也为我提供了很多可以直接借鉴的思路和方法。

评分

这本书的包装比我想象中的要厚实一些,拿到手的时候就觉得很有分量,封面设计也比较简洁大气,一看就知道是讲技术类的书籍。我一直对“Serverless”这个概念很感兴趣,但总觉得有点缥缈,不太清楚它到底是怎么落地的,实际应用场景又有哪些。我的工作经常需要处理一些周期性任务和高并发请求,传统的服务端部署和运维总是让我头疼,成本高而且弹性不够。这本书的标题——“Serverless架构 [Building Serverless Architectures]”,直接点明了我的痛点,所以我毫不犹豫地入手了。

评分

读完这本书,我对Serverless的理解已经从“听说过”变成了“能落地”。它为我打开了一个全新的视角,让我看到了构建现代化、弹性化、低成本应用的巨大潜力。书中关于函数即服务(FaaS)、事件驱动架构、API网关、无服务器数据库等关键组件的讲解都非常深入,并且相互之间联系紧密,构成了一个完整的Serverless生态系统。我特别喜欢作者对于一些常见误区的澄清和对最佳实践的总结,这避免了我走很多弯路。比如,作者强调了Serverless并非万能,在某些场景下,传统的架构可能仍然是更优的选择,这种辩证的分析让我觉得更加信服。

评分

刚翻开这本书,我就被作者清晰的逻辑和循序渐进的讲解方式吸引了。一开始,作者并没有直接深入到各种技术细节,而是先从Serverless的核心理念和优势讲起,非常到位地解释了为什么我们要转向Serverless,以及它能为我们带来哪些实实在在的好处。这一点对于我这种对Serverless概念还处于模糊阶段的读者来说,简直是福音。作者用了一些生动的比喻,将复杂的概念变得易于理解,比如将Serverless比作“按需付费的电力服务”,让我立刻就能联想到自己日常生活中对能源的使用方式,从而更容易理解Serverless的成本效益。

相关图书

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

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有