C和Java没那么香了,Serverless时代Rust即将称王?
什么是Serverless?
Serverless又称为无服务器,这个无服务器是开发者不用过多考虑服务器问题,可以专注在产品代码上,狭义是FaaS和BaaS组成的。
FaaS:函数即服务,每一个函数都是一个服务,函数可以由任何语言编写,除此之外不需要关心任何运维细节,比如:计算资源、弹性扩容,而且可以按量计费,支持事件驱动。
BaaS:后端及服务,集成了许多中间件技术,可以无视环境调用服务,比如数据就是服务,数据库服务,缓存服务等。下面虽然有很多XAAS,但是组成Serverless概念的只有FaaS+BaaS。
多说两句:Serverless出现的意义主要是一种设计架构的思想,减少了项目开发的运维成本,提高了开发的效率,其实所有云服务,云产品。核心就是提高开发效率或者是减少某一方面的成本才出现的。
Rust脱颖而出
有一个开发者,将C语言、Java、Go语言和Rust分别做了高并发可实现。具体情况如下:
可以看到Rust安全性非常的高,以及运行速度也很快。Go语言基本是紧随其后。但是C语言难以避开野指针,Java相对来说运行速度和启动速度低了。都不太适合函数式运算的场景,Java在企业级开发各种打败别的语言,但是云时代,好像不能独占鳌头了。
回顾服务端运维发展史
Serverfull:好比史前时代,这个时代研发和运维是独立的,服务端是交给运维的,纯人力处理的这个时候就是Serverfull。
DevOps:农耕时代,渐渐大家发现很多事情都是重复工作,尤其是新版本发布之前。大家各做各的效率很低,所以研发做一套运维控制台也就是OpsConsole,将部署上线和日志抓取的工作直接给运维。这样相对之前就是效率变高了。
Serverless:工业时代,性能监控+流量估算,相当于优化了之前的OpsConsole。做了一套自动化发布的流水线。代码扫描然后从测试,之后灰度验证最后上线。
等于工业时代根本不需要运维了,服务端运维工作全部自动化了。