当前位置: 首页 > news >正文

【新书速递】Serverless架构从原理、入门到实战的技术指南

Serverless架构是云计算发展的产物,它继承了云计算的优点,并具备极致弹性、按量付费、免运维等优势。Serverless架构让开发者可以将更多精力放在业务逻辑上,让资源浪费更少,让服务器运维成本更低,真正意义上做到了降本提效。

Serverless架构最近几年越来越火,它凭借极致弹性、按量付费、免运维等优势在更多领域发挥着越来越重要的作用。但是由于Serverless架构比较“年轻”,相关学习资源相对来说比较少。《Serverless工程实践》应运而生,本书通过一些真实的案例带领读者入门Serverless架构,了解如何在不同领域应用Serverless架构,并学会从零开发Serverless应用。

 

主要内容

本书是一本关于Serverless架构从原理、入门到实战的技术指南,通过多个开源项目、多个云厂商的多款云产品介绍什么是Serverless架构、如何上手Serverless架构、不同领域中Serverless架构的应用以及如何从零开发一个Serverless应用等,带领读者全面了解Serverless架构,帮助读者获得Serverless架构带来的技术红利。

本书主要包括三部分:概念与产品开发入门工程实践

  • 第一部分包括2章,介绍了Serverless架构的定义、规范、优势、面临的挑战、应用领域以及工业界和开源界的优秀项目等。

  • 第二部分包括3章,介绍如何开发Serverless应用、如何从零搭建FaaS平台等。

  • 第三部分是工程实践,主要内容是Serverless架构在各个领域的实战应用,涵盖运维领域、图像和音视频处理领域、人工智能和大数据领域、前端领域以及IoT等众多领域。这一部分还给出了两个完整的Serverless实战项目的从零开发过程。

除这三部分之外,本书还包括另外两章。

  • 第0章“从云计算到Serverless”:这是全书的引入部分。众所周知,Serverless是云计算发展的必然产物,那么云计算是如何发展的?为什么会产生Serverless的概念?这个概念是谁提出的?通过这一章,读者可以对云计算的发展以及Serverless的诞生有一个基础的了解。

  • 结束语“Serverless正当时”:介绍Serverless领域知名且活跃的开发者对Serverless的看法以及期待。希望读者通过这一部分可以归纳出“自己心中的Serverless”,也希望这些前辈们的看法、思想可以让读者对Serverless有更深入的了解。

 

作者简介

刘宇(花名:江昱)

国防科技大学电子信息专业博士,阿里云Serverless产品侧负责人,从事Serverless相关的工作多年,负责阿里云函数计算(FC)、Serverless工作流(FNF)等产品的体验工作,有丰富的实践经验。    阿里云战略级开源项目Serverless Devs发起人和负责人,Serverless Framework、Kubevela等开源项目贡献者,社区项目Anycodes在线编程负责人。    阿里云Serverless云布道师,CIO学院特聘讲师。畅销书《Serverless架构:从原理、设计到项目实战》作者,电子书《架构师特刊:人人都能学会的 Serverless 实践》(InfoQ出品)作者。

 

如何阅读

读者应当具有一定的编程基础,例如熟悉Node.js、Python等语言,同时也需要对云计算有初步的了解,有相关云产品使用经验。

本书采用循序渐进的方法,从什么是Serverless架构开始说起,通过零基础上手Serverless架构、建设自己的FaaS平台等帮助读者快速入门Serverless架构,并通过领域实战、应用案例帮助读者拓展思路。我建议读者通过下述“三遍阅读法”来掌握书中内容。

第一遍阅读,通读全书,主要弄清楚概念,再完成Serverless的基础入门,并对Serverless在各个领域的应用有相对基本的认识,对如何完整地开发一个Serverless应用有基础的了解。

第二遍阅读,专攻领域实战,通过领域实战提供的开源代码,深入了解Serverless架构的运行原理、开发技巧等,可以通过笔者的抛砖引玉发挥自己的思路,在更多领域将Serverless架构与之结合。

第三遍阅读,边读边实践,加深理解Serverless架构概念的同时,动手从零开发一款Serverless应用并将其部署上线,从而完整地理解Serverless架构的原理、优势,并对Serverless的开发技巧有更加深入的认识和独到的见解。

阅读过程可能枯燥,但只有在反复的研读中,自己对Serverless架构的理解才能不断深入。另外,Serverless架构的发展速度是非常快的,本书的案例代码可能会失效,笔者会尽快更新相关代码仓库。也希望读者可以利用好这些仓库。

 

精彩预览

不同角度上的Serverless定义 

Serverless工作流程

Serverless架构下文件上传方案

Serverless工程实践案例

基于Serverless的在线编程 

基于Serverless的人工智能相册 

目录

序一

序二

序三

序四

序五

序六

序七

序八

前言

第0章 从云计算到Serverless  1

第一部分 概念与产品

第1章 什么是Serverless  8

1.1Serverless的定义 8

1.1.1 广义定义探索  8

1.1.2Serverless工作流程 10

1.2Serverless规范 12

1.2.1FaaS解决方案模型  12

1.2.2 函数的规范与定义  12

1.2.3 函数生命周期  15

1.2.4 其他规范  20

1.3Serverless的特点 35

1.3.1 优势与特点  35

1.3.2 面临的挑战  38

1.4 典型应用场景  43

1.4.1 实时文件处理  44

1.4.2 数据ETL处理  44

1.4.3 实时数据处理  44

1.4.4AI推理预测  45

1.4.5IoT后端  45

1.4.6Web应用/移动应用后端  46

1.4.7 音视频转码  46

1.5 未来可期  47

第2章 主流Serverless平台和产品  48

2.1 工业FaaS平台 48

2.1.1AWS Lambda  48

2.1.2Google Cloud Functions  50

2.1.3Azure Functions  52

2.1.4 阿里云函数计算  54

2.1.5 华为云函数工作流  57

2.1.6 腾讯云云函数  59

2.2 开源FaaS平台 60

2.2.1Knative  61

2.2.2Apache OpenWhisk  65

2.2.3Fission  69

2.2.4Kubeless  76

第二部分 开发入门

第3章 从零入门Serverless  84

3.1 创建函数  84

3.1.1AWS Lambda  84

3.1.2Google Cloud Functions  87

3.1.3 阿里云函数计算  89

3.1.4 华为云函数工作流  91

3.1.5 腾讯云云函数  94

3.2 开发一个Serverless应用 97

3.2.1 知识准备  98

3.2.2 项目开发  101

3.2.3 举一反三  105

3.3 触发器 106

3.3.1 定时触发器  108

3.3.2 对象存储触发器  108

3.3.3API网关触发器  108

3.4 传统Web框架迁移  113

3.4.1 请求集成方案  114

3.4.2 其他方案  117

第4章 Serverless应用开发、调试与优化  120

4.1Serverless应用开发观念的转变  120

4.1.1 文件上传方法  120

4.1.2 文件读写与持久化方法  124

4.1.3 慎用部分Web框架的特性  125

4.1.4 要注意应用组成结构  125

4.2Serverless应用调试秘诀  126

4.2.1 在线调试  126

4.2.2 本地调试  129

4.2.3 其他调试方案  130

4.3 细数Serverless的配套服务  132

4.3.1 开发者工具  132

4.3.2Serverless Workflow  138

4.3.3 可观测性  139

4.4Serverless应用优化 141

4.4.1 资源评估依旧重要  141

4.4.2 合理的代码包规格  141

4.4.3 合理复用实例  142

4.4.4 善于利用函数特性  143

第5章 从零搭建FaaS平台 146

5.1 零基础上手Knative应用 146

5.1.1Knative简介 146

5.1.2Knative部署 147

5.1.3 体验测试  150

5.2 自建Apache OpenWhisk平台 152

5.2.1OpenWhisk简介 152

5.2.2OpenWhisk部署 152

5.2.3 开发者工具  156

5.2.4 体验测试  157

5.3 快速搭建Kubeless平台 157

5.3.1Kubeless简介 157

5.3.2Kubeless部署 158

5.3.3 下载命令行工具  159

5.3.4 体验测试  160

第三部分 工程实践

第6章 Serverless与监控告警、自动化运维  164

6.1 通过Serverless架构实现监控告警功能  164

6.1.1Web服务监控告警  164

6.1.2 云服务监控告警  172

6.1.3 总结 175

6.2 钉钉/企业微信机器人:GitHub触发器与Issue机器人 176

6.2.1GitHub触发器的实现  176

6.2.2GitHub Issue的识别 179

6.2.3 钉钉机器人/企业微信机器人的实现  181

6.2.4Issue机器人的实现  183

6.2.5 总结 185

6.3 触发器和函数赋能自动化运维  186

6.3.1 云盘自动快照  186

6.3.2 服务器定时重启  188

6.3.3 总结 190

6.4Serverless CI/CD实践案例 191

6.4.1CI/CD实践  191

6.4.2 总结 196

第7章 Serverless在图像、音视频处理中的应用  197

7.1Serverless架构下的图片压缩与加水印  197

7.1.1Serverless的图片压缩方案  197

7.1.2Serverless的图片加水印方案  204

7.1.3 项目部署与测试  205

7.1.4 总结 208

7.2Serverless架构下的音视频处理  209

7.2.1 准备ffmpeg  210

7.2.2 音视频处理  212

7.2.3 总结 222

7.3Serverless:让图像合成更简单  222

7.3.1 为头像增加圣诞帽  222

7.3.2 为头像增加固定装饰  230

7.3.3 总结 233

第8章 Serverless架构下的人工智能与大数据实战  235

8.120行代码:Serverless架构下用Python轻松实现图像分类和预测  235

8.1.1ImageAI与图像识别  235

8.1.2 项目Serverless化 237

8.1.3 项目部署与测试  241

8.1.4 项目优化  242

8.1.5 总结 244

8.2Serverless与NLP:让我们的博客更有趣  244

8.2.1 赋能网站SEO  244

8.2.2 “为你写诗”小工具  251

8.2.3 总结 258

8.3 基于Serverless架构的验证码识别功能  258

8.3.1 浅谈验证码  258

8.3.2 验证码识别  260

8.3.3 基于Serverless架构的验证码识别  266

8.3.4 总结 272

8.4 函数计算与对象存储实现WordCount  272

8.4.1 理论基础  273

8.4.2 功能实现  274

8.4.3 测试体验  279

8.4.4 总结 281

第9章 Serverless架构在前端领域的应用  282

9.1 初识Serverless SSR  282

9.1.1Serverless与SSR 283

9.1.2 总结 285

9.2Serverless架构下的前后端一体化  286

9.2.1 前后端一体化的发展  286

9.2.2Serverless与前后端一体化  288

9.2.3 总结 291

第10章 Serverless架构在IoT等其他领域的应用  292

10.1 基于Serverless架构与WebSocket技术的聊天工具  292

10.1.1 原理解析  292

10.1.2 匿名聊天室  295

10.1.3 体验与测试  302

10.1.4 总结 305

10.2Serverless与IoT:为智能音箱赋能  305

10.2.1 天猫精灵  306

10.2.2 小爱同学  310

10.2.3 总结 313

10.3 用手机写代码:基于Serverless的在线编程能力探索  313

10.3.1 在线编程功能开发  314

10.3.2 更贴近本地的代码执行器  318

10.3.3 总结 328

第11章 Serverless工程化项目实践  330

11.1 基于Serverless架构的博客系统  330

11.1.1 项目背景  330

11.1.2 需求分析  331

11.1.3 整体设计  331

11.1.4 项目开发  335

11.1.5 项目预览  346

11.1.6 思路拓展  350

11.1.7 总结 355

11.2 基于Serverless架构的人工智能相册小程序  355

11.2.1 项目背景  355

11.2.2 需求分析  356

11.2.3 整体设计  357

11.2.4 项目开发  366

11.2.5 项目预览  386

11.2.6 经验积累  388

11.2.7 总结 391

结束语 Serverless正当时  392

附录 部分代码汇总  400


扫码关注【华章计算机】视频号

每天来听华章哥讲书

更多精彩回顾

书讯 | 8月书讯(上)| 这些新书不可错过

书讯 | 8月书讯(下)| 这些新书不可错过

资讯 | Rust跨界前端全攻略

书单 | 2021半年盘点,不想你错过的重磅新书

干货 | Rust跨界前端全攻略

收藏 | 快收藏!!整理了100个Python小技巧!!

上新 | 【新书速递】深入浅出Pandas,用好Python必备

赠书 | 【第67期】2021上半年朋友圈都在传的10本书都在这了

点击阅读全文购买

相关文章:

  • TIOBE 8 月编程语言排行榜:数据挖掘和人工智能语言强势崛起!
  • 七夕节送礼怎么让女朋友满意?快来抄作业!
  • 【第68期】智能时代下的计算机系统能力培养
  • 【大咖发声】推荐一本书,我自己写的书
  • WebRTC音视频实时传输与服务质量
  • 秋招、考研、金九银十跳槽季,打好基础让你起飞!(这里有一份导图和书单值得收藏)...
  • 数据中台即服务——数据中台的四大支柱
  • 【大咖发声】如何写出好程序?
  • 介绍一款还不错的Rust ClickHouse客户端
  • 双维度剖析Flink整体架构
  • 数字化转型时代!你一定要了解的低代码
  • 数据分析的7种武器
  • 不管你基础如何,我都推荐你好好看一遍CSAPP这本神书!
  • 【第69期】如何做顶级“新生代农民工”?这几本书为你打开大门
  • 【新书速递】CSO进阶之路首次曝光
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • FineReport中如何实现自动滚屏效果
  • JAVA并发编程--1.基础概念
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • js算法-归并排序(merge_sort)
  • Tornado学习笔记(1)
  • Vue 2.3、2.4 知识点小结
  • 什么软件可以剪辑音乐?
  • 思否第一天
  • 算法---两个栈实现一个队列
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 最近的计划
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​520就是要宠粉,你的心头书我买单
  • ​Python 3 新特性:类型注解
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # 数据结构
  • $.ajax,axios,fetch三种ajax请求的区别
  • (1)(1.11) SiK Radio v2(一)
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • **python多态
  • .NET DataGridView数据绑定说明
  • .net反编译的九款神器
  • .NET微信公众号开发-2.0创建自定义菜单
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @Autowired @Resource @Qualifier的区别
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @JsonFormat与@DateTimeFormat注解的使用
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [.net] 如何在mail的加入正文显示图片
  • []串口通信 零星笔记
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Android]如何调试Native memory crash issue
  • [ffmpeg] x264 配置参数解析