业余时间写了个玩具项目,发现可以 ServerLess 部署基本不费钱,于是研究了下。
因为心得体会有点多,准备写几篇文章记录一下,今天比无聊,写点发布网络服务的历史。
虽然互联网没发明几十年,但要想做一个应用,向人们提供网络服务,其实已经经历了几个时代:
上古时代
我还年轻,没经历过那个时代 ^—^!
书上说那时候一个服务器都一栋房子那么大,可以想象价格是很贵的。
除了成本高,还需要非常专业的技术人员,一般的企业很难提供网络服务。
实体时代
时代在发展,网络协议也规范了,越来越多懂电脑、会编程的人出现了。
服务器也不是那么贵了,很多企业可以自己搭建机房,部署应用,提供网络服务了。
但完全自己操办的成本依然很高,很多公司吃不消的。
好在想提供网络服务的企业多了,有一类帮企业托管服务器的公司出现。
这种托管公司可以集中管理很多服务器,在供电,网络,扇热等方面都可统一规划,根据规模效应,搭建服务的成本降低。
IDC时代(上)
企业要想“上网”,先去托管公司租个服务器,然后开发应用、再通过远程连接,发布。
除了要会编程外、还需大量的运维技能,比如操作Linux。
托管公司为了创收,就开发了各种面板系统,在网页上就能开关机、上传安装应用、重启服务了,虽然都是一些简单的脚本组装,但还是很大程度上降低了成本。
也算是适应了时代的需要,市场变得火热,托管公司改个名,通常就叫 xxxIDC 。
IDC时代(下)
托管主机的成本,其实也是很高的,而且一台服务器没那多访问的时候,都是闲置状态,浪费了很多计算资源。
恰逢 虚拟机 技术出现,服务器通过虚拟机可以一变十,IDC公司开启了 “卖散烟” 技能。
价格更便宜的虚拟机不仅可以实现IDC企业的创收,而且又拉动了一个更大的市场,由于价格便宜,很多微小公司、个人用户都可以租个虚拟机,提供网络服务了。
云计算时代(上)
不管是虚拟机,还是托管,都只能卖给中小企业,像阿里、亚马逊这样的巨无霸,只能自己搭建机房,做自己的事情。
这些公司下的应用服务太多了,在做自己的服务时,总会涉及到资源分配的问题,于时它们完成了一套计算资源分配系统,命名为:云计算。
云计算,不仅仅是一种资源分配,而且完成了分布式计算、任务颁发、效用计算、负载均衡、并行计算、网络存储、热备份等等功能,不管是成本,还是可靠性上来说,都秒杀了虚拟机和托管。
后来发现,这些算力不仅可以分配给自己公司的应用服务,还可以卖给第三方。
早期的云计算厂商以卖 云主机 为主,形态上更像一个高端的托管服务器,但有个优势:可以很方便的扩缩容!
和IDC提供了很多脚本命令一样,云厂商提供了很多镜像资源,管理面板,简化用户的操作。
云计算时代(中)
时代在巨变,在IDC时代或实体时代时,人们提供网络服务,主要指的就是:做个网站放在网络上。
以前很多创业者就下个开源的系统往 FTP 上一扔,再通过 Install 页面配置一下,就OK了!
现在,单放个网站已经毫无竞争力了,起码也要兼顾 Andorid、IOS,抖音公号等各种推广平台。
然后得有产品分析、AB测试、多渠道分发、CI持续交互、环境管理等等,远不止一个Blog、BBS 系统能比的。
为了能跟上时代,解决这些复杂又必须的问题,云服务厂商又创造了概念: 云原生(Cloud Native),主要如下:
- 在云上支持各种需要的资源管理,比如数据库、AI、消息服务 等等,对应各种云厂商的各种字母缩写。
- 构建一套服务网格系统,可以由用户去编排自己的服务
- 除了支持云主机外,还支持容器、微服务、网关等等都可以成为网格里面编排的对象。
在先前,构建一个中大型应用是很费心的,需要分析各种关系,分配资源,业务总是那么不可靠,改动起来也很困难。
云原生后,一切都变得美好起来了,真的吗?
云计算时代(下)
可能并没有那么美好
云主机时代:想发布网络服务,很省钱,但很费心,毕竟还要自己搭很多东西,没办法。
云原生时代:很费钱,但也没有那么的省心,因为什么服务都要买,再统一进行管理。
那么,有没有 即省钱,又省心 的发布服务的方式呢?
那就是 : ServerLess !
ServerLess 概念上还是属于云原生,但它又走出了一个单独的时代,为什么?
我们回头往前看,每个不同的时代,有一个标志性的区分,就是 : 资源分配 更加有效了,让我们最大程度的 “榨干” 计算机的每一寸 CPU、存储、网络、IO 等资源,利用到 100% 就是究极目标。
ServerLess 朝这个目标,迈进了一大步, 它的最大特点就是:不需要服务器!
不需要服务器不是指没有服务器,作为应用发布者,只是不需要再继续关注服务器了,由云厂商规划资源进行计算。
在以往,闲置时,即使服务器缩容,也要保留一台服务待命,而 ServerLess,这个数量,可以是零。
例如很多定时计算一次的任务,需要计算时,至时就计算,计算完了就关闭,关闭时没有任何资源消耗,按量付费也就是零费用。
小结
先到这里,关于 ServerLess 的具体细节,后面再写。
另外,云计算也是一个非常广的概念,我这里只以一个应用发布者的视界去看待云计算的一个侧面。
最后,开头提到的,我做的那个小玩具是一个英英词典,用来查英文单词,目前的访问量基本不用付钱。