06 无服务时代:“不分布式”云端系统的起点
你好,我是周志明。今天是探索“演进中的架构”的最后一讲,我们来聊聊最近一两年才开始兴起的“无服务架构”。
我们都知道,分布式架构出现的最初目的,是要解决单台机器的性能成为整个软件系统的瓶颈的问题。后来随着技术的演进,容错能力、技术异构、职责划分等其他因素,也都成了分布式架构要考虑的问题。但不可否认的是,获得更好的性能,仍然在架构设计中占有非常大的比重。
在前面几讲我们也说,分布式架构也会引入一些新问题(比如服务的安全、容错,分布式事务的一致性),因此对软件开发这件事儿来说,不去做分布式无疑是最简单的。如果单台服务器的性能可以是无限的,那架构演进的结果,肯定会跟今天不一样。不管是分布式和容器化,还是微服务,恐怕都未必会出现了,最起码不会是今天的模样。
当然了,绝对意义上的无限性能肯定是不存在的,但相对意义上的无限性能其实已经实现了,云计算的成功落地就可以说明这一点。对基于云计算的软件系统来说,无论用户有多少、逻辑如何复杂,AWS、阿里云等云服务提供商都能在算力上满足系统对性能的需求,只要你能为这种无限的性能支付得起对应的代价。
在工业界,2012年,iron.io公司率先提出了“无服务”(Serverless,应该翻译为“无服务器”才合适,但现在用“无服务”已形成习惯了)的概念;2014年开始,AWS发布了命名为Lambda的商业化无服务应用,并在后续的几年里逐步得到了开发者的认可,发展成目前世界上最大的无服务的运行平台;到了2019年,中国的阿里云、腾讯云等厂商,也发布了无服务的产品。“无服务”成了近期技术圈里的“新网红”之一。