serverless,无服务器架构,当没有访问请求时,不启动任何服务和资源,一旦触发,就会启动服务处理任务。所以优点是不需要关心服务是否宕机,适用于不需要很长时间的快速事务处理,流量大时可以自动扩展响应。但是如果有高并发或者突然没有流量,它的自动扩缩容机制也会造成更多的开销。那么Serverless到底解决了什么问题呢?省钱省力你考虑过部署服务器的成本吗?从云服务商那里购买Linux虚拟机、RDS、Redis缓存、负载均衡、CDN以及容灾备份,一年的成本最少是1w的开销。但是有了Serverless,成本可以降到1k以下。Serverless为应用程序开发和部署提供了极简模式,让零运维经验的人在几分钟内部署一个Web应用程序。不需要了解如何在Linux上安装web服务器,如何配置负载均衡等无意义的运维操作。Serverless可以有效降低企业中长尾应用的运营成本。中长尾应用:一天中大部分时间没有流量或流量很少的应用。尤其是企业实现微服务后,一些边缘微服务被调用的概率其实很低。长尾应用往往很难人工管控,因为很多应用还是强依赖的,不能直接下线。在Serverless之前,这些中长尾应用程序至少需要一个虚拟机。现在有了Serverless的极速冷启动,企业可以节省这部分成本。Serverless的一大特点就是收缩为0,在没有流量的时候不占用任何资源,除了硬盘。所以就连Serverless的底层容器方案也可能是docker。但它节省了更多的资源。提高研发效率SFF(ServerlessForFrontend)让前端同学自己负责数据接口的编排,微服务BaaS让我们更加关注后端的领域设计。这可以进一步放大前端工程师的价值。初创公司利用FaaS进行基础架构编排和云服务编排外包公司利用Serverless应用架构的快速迭代能力,提高开发效率,降低错误率,在该领域为自己提供解决方案,风投逐渐开始关注Serverless说到底,这也是解放生产力、激发创造力的新风口。前端可以通过FaaS的组合自由的完成业务需求,极大的激发了前端的创造力。如果说Node.js语言的出现解放了一波前端工程师的生产力,那么Node.js+Serverless则可以进一步激发前端工程师的创造力。微服务本身带来了很多想法。但是微服务在服务端的运维缺乏强大的支撑平台。放眼全国,专注跟进的互联网大公司也就那么几家,其他基本上只是观望或观望。基于BaaS的后端应用使用FaaS后端解决方案,将后端服务变成BaaS,让后端工程师更专注于领域设计。ServerlessComputing中的Node.js,也就是FaaS,因为JIT的特性,冷启动速度确实是一个优势。从实践经验来看,Java或者其他语言更适合做下沉,做后端服务,也就是BaaS。目前比较好的是FaaS+BaaS架构。所以在Serverless架构中,后端同学应该写BaaS微服务。前端同学可以自由编写FaaS,自由编排这些BaaS微服务。使用Serverless,您可以随时随地调用云函数。对于前端同学,降低服务器运维门槛;对于后端同学来说,意味着掌握了一种新的云计算服务。目前Serverless并不是万能的,它有它的局限性和使用场景。我们在学习Serverless的时候,应该在合适的场景下把它作为一个工具来使用。Serverless冷启动问题Node.js虽然说启动快,但是启动时间+界面耗时给人的感觉就是服务性能不好。事实上,云服务提供商会为您提供预热和预留容器的解决方案,但会产生额外的费用。用户信息、通知私信等很多现成的云服务,很容易用FaaS构建:云服务编排。但如果现有业务上云,建议逐步上云。参考阿里跨界供应链前端架构演进与Serverless实践Serverless前端工程落地与实践从前端和云厂商关注的角度看Serverless和未来发展生态。转载本文请联系JavaEdge公众号。
