Serverless会是一场云计算的革命吗

Stella981
• 阅读 605

微服务方兴未艾,Serverless横空出世。

Serverless会是一场云计算的革命吗

关于Serverless,网上众说纷纭,本人也是前几个月刚刚了解到Serverless,但第一次看到Serverless就感觉这应该就是云计算的未来,由于还处于很早期的阶段,毫无疑问,Serverless还有很多缺点,如实时性不足、运行时长限制等,但相信随着技术的进步,这些问题都会逐步解决,本文只谈谈Serverless相对传统基础设施的优势,以及为什么Serverless很可能是云计算的未来趋势。

Serverless通常被翻译成无服务器架构,它是一种事件驱动的函数级计算服务,同时也是一种极致的微服务设计,弹性伸缩能力无与伦比。

Serverless平台是一种高度抽象的代码运行环境,它能直接冷启动一段逻辑代码,既简单易用又无比强大,用户无需管理服务器,仅仅写出业务逻辑代码就能即刻运行。

目前Serverless的主要形态是FaaS(Function as a Service),国外有AWS Lambda、Azure Functions、Google Cloud Functions等,国内阿里云、腾讯云等都提供了FaaS服务。

一切皆因成本

大学时无意中在图书馆看到一本书《问道云计算》,书中一个观点令人印象深刻,作者认为云计算就像是国家电网,通用的计算服务将会成为像电力这样的社会基础设施。

Serverless会是一场云计算的革命吗

现在用电很方便,牵根电线安个电表就行了,你不开电器电表就不会转,每月电表转多少国家电网收你多少钱,这些都太平常不过了,然而这要放到云计算,简直不可思议。

试想如果你家的电表换成以时间计费,你愿意么?也就是给你牵了根电线,然后不管你用没用、用多少,每时每刻都要给你计费,而且电力功率还有限制(按你购买的云服务CPU核数、内存等),超出功率就给你断闸限电······ 你可能会惊呼:这TM就是赤裸裸的抢劫啊!

Serverless会是一场云计算的革命吗

然而现在的云计算公司就是这么干的,你按CPU核数、内存、带宽买云服务,不管你用没用、用多少,每时每刻都要给你计费,而且始终按最高“功率”计费。

但这也并不代表云计算公司多么暴利,虚拟机成本本来就这么高,容器成本也不低,为此AWS很早就提供了EC2竞价实例,现在很多云计算公司都推出了按秒计费的云服务器,但这依然还是延续着那种粗暴的计费方式,成本依旧高昂。

Serverless会是一场云计算的革命吗

在所有的经济活动中,成本一定是首要考虑的因素之一,Serverless对传统云服务器的颠覆就在于它极大的成本优势,它能精确地按计算量来计费,就像电表按用电量计费,与时间无关一样,避免了虚拟机、容器大量的计算资源闲置浪费,对普通用户来说,成本上可以秒杀虚拟机和容器,能够大幅降低云计算服务的价格。

云计算的门槛

现在的云服务就像是早期的发电站一样,提供的是不同电压不同功率的电力,你得自己买变压器、自己去搭高压线、自己去捣腾变压器电压频率,然后才能用,serverless则是直接让国家电网给你220V 50Hz的电力,你直接插上插头就能用了。

Serverless就像插座一样即插即用,极大地降低了云计算的接入使用门槛,通过FaaS加API网关基本上可以重构大部分的企业级应用。

未来在Serverless平台上创建高可用、高可扩展性的微服务将是异常简单的事情,只写点业务代码就行了,你根本不用去考虑架构、扩展、并发之类的问题。因此有了Serverless,普通人完全没必要花大价钱买云主机或容器服务,既麻烦又浪费。

未来Serverless很可能取代虚拟机和容器,成为云计算的主流形态,云计算用户可能也不会再接触虚拟机和容器了,直接面向Serverless开发就行了。

此外Serverless基于事件驱动,部署升级比容器更快,这在敏捷开发、持续集成中更有优势。

IT的基础设施

要成为基础设施,首先是要让人放心,但目前云计算依然是一件让人操心的事情,开发部署应用时你需要考虑可扩展性、高可用性,每个服务一般都要部署多个实例,还要做服务发现、负载均衡、容错断路等,容器还要用Kubernetes管理集群······

但对开发人员而言,他们只想专注于业务逻辑,并不想为服务器管理和运维有关的基础设施问题操心。

Serverless几乎把这些IT的基础设施问题一次性解决了,Serverless天然具备高可用、完全的弹性伸缩等特点。

国外的工程师给 Serverless 打出一句口号就是:

Focus on your application, not your infrastructure.

熵的转移

从单机到分布式集群,从虚拟机到容器,从单体应用到微服务架构,无论IT系统如何演变,系统的复杂性都不会降低,而且还会呈指数级增加,这就像物理世界的熵增加原理一样,系统只会演变得越来越复杂和难以管理。

实际中应用开发越来越简单是因为我们不断把复杂性从上层转移到下层,最终通过自动化程序把复杂性从人转移给了机器,是机器最终承担了底层越来越复杂的重担,通过这样的复杂性转移就能不断降低IT系统的成本。

Serverless对传统的IT架构是颠覆性的,它更彻底地把复杂性转移给了基础设施,把IT系统的熵不断转移给机器,剩下的只是业务的复杂性。

重新定义云应用

传统的应用都是常驻内存型,每个应用启动时都需要开辟自己的进程并常驻在CPU、内存中,这种应用不仅长时间占用硬件资源,而且启动速度很慢,例如在容器环境中,使用Java开发的微服务启动速度明显偏慢,而短时间、快速启动的函数单元则具有明显优势。

Serverless一个了不起的地方就是它的应用不是常驻内存的,只有你去唤醒它,触发它的事件时才会占用计算资源,其他时间都是退出硬件静静地躺在硬盘上的文件而已。

很多人以为提供虚拟机、容器管理就是云计算了,以为虚拟机容器就能把计算资源抽象出来了,那其实和以前的服务器租赁没啥区别,正如《问道云计算》书中所说,它并没有构建出通用的计算资源池,真正的云计算应该像Serverless这样,对硬件基础设施进一步抽象,构建出通用的计算资源池。从这个角度来看,Serverless在重新定义云计算的形态。

Serverless会是一场云计算的革命吗

除了云基础设施,Serverless同时也在重新定义云应用,传统的软件形态可能必须重构,运行在Serverless平台上的函数式应用可能才是云应用的应有形态。

展望Serverless的未来

未来的Serverless平台上,通过函数式应用调起硬件资源,不管底层是CPU、GPU、FPGA还是ASIC,都可以通过FaaS提供计算服务;上层都是统一的函数式应用,不管你是普通的web服务、多媒体处理还是神经网络训练,都可以通过FaaS获取计算服务。

当然目前来看,Serverless还远未成熟,但从未来来看,Serverless必将是云计算的一道曙光,甚至是云计算的一场革命。

Serverless会是一场云计算的革命吗

扫一扫关注我的微信公众号

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Eureka Server 开启Spring Security Basic认证
!Desktop(https://uploadimages.jianshu.io/upload_images/98242475ce94f98ae00f42f.jpg?imageMogr2/autoorient/strip%7CimageView2/2/w/1240)文章共503字,阅读大约需要2分钟!概述
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这