0%

ServerLess 实践日志一:网络服务简史

业余时间写了个玩具项目,发现可以 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 的具体细节,后面再写。

另外,云计算也是一个非常广的概念,我这里只以一个应用发布者的视界去看待云计算的一个侧面。

最后,开头提到的,我做的那个小玩具是一个英英词典,用来查英文单词,目前的访问量基本不用付钱。

地址是 https://eedictionary.com/