秦粤:说来说去,到底Serverless要解决什么问题?
你好,我是秦粤。说起Serverless这个词啊,我估计你应该不陌生。就算你没详细了解过,但我确定你肯定在过去几年时间里听别人说过。去年我在参加的时候,也惊讶地发现国内几个大公司都已经有成熟的应用案例了,所以我当时就感叹说,“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 肯定是未来云计算发展的重点方向,作为工程师,特别是前端工程师,我们应该思考的是如何抓住这波机遇,如何利用FaaS+各种创意,组合碰撞出各种化学反应,去为公司、为自己创造更大的价值。