Serverless入门课
蒲松洋(秦粤)
前百度国际化前端组组长
立即订阅
1990 人已学习
课程目录
已更新 3 讲 / 共 14 讲
0/2登录后,你可以任选2讲全文学习。
开篇词 (2讲)
开篇词 | 说来说去,到底Serverless要解决什么问题?
免费
特别放送 | 为什么阿里要举集团之力趟坑Serverless?
基础篇 (1讲)
01|定义:到底什么是Serverless?
Serverless入门课
登录|注册

开篇词 | 说来说去,到底Serverless要解决什么问题?

蒲松洋 2020-04-15
00:00
10:34
讲述:蒲松洋 大小:9.70M
你好,我是秦粤,欢迎你和我一起学习 Serverless。说起 Serverless 这个词啊,我估计你应该不陌生。就算你没详细了解过,但我确定你肯定在过去几年时间里听别人说过。去年我在参加GMTC 全球大前端技术大会的时候,也惊讶地发现国内几个大公司都已经有成熟的应用案例了,所以我当时就感叹说,“Serverless 终于要飞入寻常百姓家了”。

三个问题

作为一名 Serverless 的拥趸者,过去几年时间里,我总是喜欢向朋友和同事推荐 Serverless 技术。不过,在“推销”的过程中,他们经常会问我一些问题。那在今天的开篇词里,我就来统一回答下这些共性的问题吧,我估计你也会问到。
问题一:说来说去,到底 Serverless 要解决什么问题?
我不知道你有没有算过你们公司每年在服务器上的开销,反正在创业之前我是没算过,总觉得这钱算了也没必要,还是应该多花心思在怎么挣钱上。但后面当我真正自己开公司之后,才知道柴米贵。
咱们就拿自己部署一套博客来说吧,常见的 Node.js MVC 架构,需要购买云服务商的 Linux 虚拟机、RDS 关系型数据库,做得好的话还要购买 Redis 缓存、负载均衡、CDN 等等。再专业一点,可能还会考虑容灾和备份,这么算下来一年最小开销都在 1 万元左右。但如果你用 Serverless 的话,这个成本可以直接降到 1000 元以下。
Serverless 是对运维体系的极端抽象,就像 iPhone 当年颠覆诺基亚一样,它给应用开发和部署提供了一个极简模型。这种高度抽象的模型,可以让一个零运维经验的人,几分钟就部署一个 Web 应用上线,并对外提供服务。也就是说,你根本不需要再学习怎么在 Linux 上装 Web 服务器,怎么配置负载均衡等等这些繁琐的偏运维方向的工作。
所以,你要问我 Serverless 解决了什么问题,一句话总结就是它可以帮你省钱、省力气。
问题二:为什么阿里巴巴、腾讯这样的公司都在关注 Serverless?
首先,Serverless 可以有效降低企业中中长尾应用的运营成本。中长尾应用就是那些每天大部分时间都没有流量或者有很少流量的应用,你可以想想你们公司是不是也有很多。这一点我特别有感触,尤其是企业在落地微服务架构后,一些边缘的微服务被调用的概率其实很低。而这个时候,我们往往又很难通过人工来控制中长尾应用,因为这里面不少应用还是被强依赖的,不可以直接下线处理。Serverless 之前,这些中长尾应用至少要独占 1 台虚拟机。现在有了 Serverless 的极速冷启动特性,企业就可以节省这部分开销。
其次,Serverless 可以提高研发效能。我们专栏会讲到 Serverless 应用架构的设计,其中,SFF(Serverless For Frontend)可以让前端同学自行负责数据接口的编排,微服务 BaaS 化则让我们的后端同学更加关注领域设计。可以说,这是一个颠覆性的变化,它能够进一步放大前端工程师的价值。
最后我想说 Serverless 作为一门新兴技术,未来的想象空间很大。我看到有创业公司用 FaaS 来做基础设施编排和云服务编排;也有外包公司利用 Serverless 应用架构的快速迭代能力,提升开发效率,降低出错率,还可以给自己沉淀领域的解决方案;还有包括风险投资方也在逐渐开始关注 Serverless 领域,毕竟这也是一个新的风口。我讲大企业的使用方式只是希望给你一些灵感,不想过多限制你的想象,Serverless 的疆域边界还在等你去扩展。
这里是 GMTC 会议上几个大公司的分享资料,你感兴趣的话,可以先看看。
问题三:Serverless 对前端工程师来说会有什么机遇?为什么我们要学习 Serverless?
相对其他工种而言,Serverless 给前端工程师带来的机遇更大,它能让前端工程师也享受到云服务的红利。如果说 Node.js 语言的出现解放了一波前端工程师的生产力,那 Node.js+Serverless 又可以进一步激发前端工程师的创造力。口说无凭,到时候你看完咱们专栏里的例子就能体会到这句话的意思了。
另外,我觉得学习 Serverless 是成为云开发者的最适合的切入点。无论你是零基础,还是资深服务端运维,都可以从 Serverless 上学习到现代服务端运维体系的重要思想(我在第一节课就会讲)。
回答完这几个问题,我想你对 Serverless 已经有了初步了解。接下来我也不想绕弯子,我就再和你聊聊我准备怎么给你讲这门课吧。

课程设计

基础篇,我会继续带你理解 Serverless 要解决什么问题,以及 Serverless 的边界和定义。搞清楚了来龙去脉,我们会进入动手环节,我会通过一个例子来给你讲解 Serverless 引擎盖下的工作原理,以及 FaaS 的一些应用场景。
进阶篇,我们将一起学习 FaaS 的后端解决方案 BaaS,以及我们自己现有的后端应用如何 BaaS 化。为了更好地展现 Serverless 的发展历程和背后的思考,我也为你准备了一个基于 Node.js 的待办任务的 Web 应用,你要做好准备,这里我会给你布置很多动手作业。
实战篇,我会通过 Google 开源的 Kubernetes 向你演示本地化 Serverless 环境如何搭建,并根据我的经验,和你聊聊 Serverless 架构应该如何选型,以及目前 Serverless 开发的最佳实践。
最后,我再来介绍下我自己吧。我叫蒲松洋,秦粤是我的花名。2006 年从电子科技大学毕业后,我就进入了 UT 斯达康(现在这公司已经谢幕,它是小灵通的主要生产厂商)做通讯相关的工作,当时的职位是 PHP 前端工程师。2013 年,我跳槽加入百度,从 PHP 前端工程师转为了 Node.js 前端工程师。2015 年开始又和朋友折腾创业,用 Node.js 做智能家居 IoT。2016 年底,创业没成,我又回到了国内某一线互联网公司,负责 Node.js 应用治理和 Node.js 微服务架构设计。
我在用 Node.js 做微服务时发现,微服务本身提出了很多理念。但微服务在服务端运维却缺少给力的支撑平台,后来我们就试着用容器集群搭建了自己的 Container Serverless。结果证明它不但可以支撑 Node.js 微服务运维,还可以提高 Node.js 中长尾应用的资源利用率。再后面,大家都意识到了 Serverless 带来的便利性,于是我们团队也就整体参与到了公司 Serverless 整体建设中了。
在研究并落地 Serverless 技术的过程中,我发现国外的 Serverless 开源社区其实比国内更加活跃。自从 2014 年 AWS 推出第一个 FaaS 服务 Lambda 后,国外的很多公司都在积极推进 Serverless 的生态发展,并且开始占领高地,制定了很多的规范。而放眼国内,目前还只有为数不多的大型互联网公司在重点跟进,其他人基本上只是在观望或者看热闹。
因此,我也特别希望通过这个专栏能够带你真正理解 Serverless,并让你尽快享受到技术的红利。Serverless 肯定是未来云计算发展的重点方向,作为工程师,特别是前端工程师,我们应该思考的是如何抓住这波机遇,如何利用 FaaS+ 各种创意,组合碰撞出各种化学反应,去为公司、为自己创造更大的价值。
以上就是今天的全部内容。有关 Serverless,不知道你的看法是怎样的?如果你有什么疑惑,或者在实践中遇到了哪些困难?欢迎在留言区中提出,我们共同探讨。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Serverless入门课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

  • 阿杜S考特
    serverless字面的意思就是无服务的架构,我个人的理解就是当没有request访问或者触发的时候,他不启动任何服务和资源,一旦触发了就会启动服务去处理任务,好处是不用关心服务是否挂了,它适合处理耗时不长的快速事务处理,当流量大的时候,它也能自动扩容去响应客户端。但是如果大量的并发一下冲过来的时候或者一下子没有流量的时候,它的自动扩容和缩容机制是否会导致更多的开销?aws的lambda现在有了version和concorrency capacity的概念,也就是最小的启动服务数,这样感觉又违背了serverless的初衷,请问老师,是否有比较标准或者最佳实践来处理这种情况呢?

    作者回复: 目前Serverless并不是万金油,它有它的局限性和使用场景。我们学习Serverless,应该将它作为一种工具,在适合的场景中使用。课程的后面部分会讲到,所以我的最佳实践,讲的是结合Serverless和CaaS的混合应用架构。

    2020-04-15
    4
  • Tao
    一个完整的app后端,包括用户系统:用户信息,关注,内容系统:帖子,评论,点赞等,还有通知私信等。这样的场景适合用serverless来实现嘛,还是用传统后端开发来做

    作者回复: 如果是新业务,可以体验一下Serverless技术栈。像你说的用户信息,通知私信,这些都有很多现成的云服务提供了,用FaaS很容易搭建:云服务编排。但如果是已有业务上云,那么建议还是逐步迁移吧。

    2020-04-15
    2
  • 探索无止境
    老师你好,serverless在实际应用上虽然说跟语言无关,但实际公司选择是node.js多,还是其他语言多?感觉更多是提到前端工程师的机会,后端作为Java开发者影响多大?

    作者回复: Node.js在Serverless Computing,也就是FaaS,中因为JIT的特性,冷启动速度确实是优势。我们的实践经验来说,Java或其它语言比较适合下沉,去做后端服务化,也就是BaaS。目前比较好的是FaaS+BaaS架构。

    2020-04-15
    2
  • 小晏子
    很早之前体验过微信的小程序云开发,感觉这个就是通过severless实现的,直接写函数然后上传到小程序云端,然后就能用了,非常方便。不过也遇到一些困难,比如脱离了服务器,不知道该如何给后端服务安装证书,也没找到文档说明,后来还是在内部论坛上才问到该如何解决,所以我感觉开发简单了,但如果涉及到一些运维方面的工作,蛮不好弄的,也许自己搭建的serverless环境会比较方便。

    作者回复: 是的,我们专栏后面几节课会教大家如何用K8s搭建私有Serverless环境

    2020-04-15
    1
  • 🤬
    云函数跟serverless的关系是?

    作者回复: 云函数,你指的是FaaS吗?FaaS也就是Serverless Computing。目前是Serverless家族中的主要成员。

    2020-04-16
  • 一步
    serverless 就是 让用户 不关注 (less) server , 把 server 下沉,抽象话
    2020-04-15
  • 一步
    我也是做 Node.js ,想知道 老师怎么搭建 Container Serverless 来支撑 Node.js 微服务运维的?

    作者回复: 这个要比较后期的课程内容会介绍哦。不过你可以先了解一下K8s。

    2020-04-15
  • cskang
    想了解老师用node.js做IoT创业的经历,老师后面课程会讲到吗

    作者回复: 可惜并不会。不过Serverless的事件触发特性,也比较适合IoT的应用场景。而且IoT也可以参考Serverless这个思路组建事件流响应机制。

    2020-04-15
  • code-artist
    为什么severless只能选择node,而没有java,python等等?

    作者回复: 同学你可能误会了,serverless是语言无关的,目前主流语言都是支持的。我的课程中选择了node.js而已,也会有一个php的例子。

    2020-04-15
    2
  • NSDGB
    serverless给后端带来什么好处呢? 能详细说一下嘛

    作者回复: 最直接的就是后端免运维,节省人员开销和服务器开销。让后端开发和运维的门槛降低。如果要详细解释,需要知道你具体的问题是什么?你所说的后端指的具体哪些事情?

    2020-04-15
  • 朋克是夏天的冰镇雪碧
    我最近在找工作,写了两个应用当面试作品。本来有台服务器把这俩应用放上去了,结果总被黑客攻击……我也是个运维小白,网上能查到的方法都用了,还是总被删库😂然后就想了解一下 serverless,正好极客时间推出了这门课程,真是太及时了哈哈,期待老师的更新,也希望自己求职成功

    作者回复: 学习Serverless可以帮助你了解到后端服务器运维的知识,理清数据请求全链路的思路。祝你早日求职成功。

    2020-04-15
  • Bowen Xiao
    微服务用Node.JS做的多吗?感觉一般都是用后端语言做的

    作者回复: 据我所知的目前不多。不过微服务和Serverless一样,都是语言无关的,面向接口编程。你用Node.js开发也可以和后端其他语言开发的微服务通信的。主要看你熟悉的语言。

    2020-04-15
  • 罗祥
    感谢老师的资料分享

    作者回复: 谢谢你的支持

    2020-04-15
收起评论
13
9
返回
顶部