摘要:容器技术正在蓬勃发展,但仍然需要开发人员为服务器操心。这为更多的企业采用无服务器铺平了道路。
近日,即使当全球顶级容器峰会KubeCon欧洲大会上有超过4,000名与会者狂欢时,身为Begin创始人以及PhoneGap开发人员的Brian Leroux仍然在旧金山的家中默默写代码,他非常高兴自己不必为容器所烦扰。
“今天这些事情我是不会做的,”他在推特上写道,“提供一个实例,产生额外的实例,使用ssh调查一个实例,[或]升级到 一群实例。“
能够做到这些他的秘密是什么?答案就是Serverless。
今天,企业对于Kubernetes(通常指容器)的狂热仍是不减,这也是理所当然的,因为容器标志着一个明显更好的构建应用程序的方法,而Kubernetes则是一个可以很容易地管理这些容器的领导者。然而,正如云计算基金会(CNCF)的数据所显示的那样,尽管Kubernetes让容器变得更容易,但对于一些人来说还是太难了,所以许多企业直接跳到serverless以获取容器的所有好处,而无需考虑容器。
不用提供案例,不用滚动更新,那你需要做什么呢?
有了新的发现,Leroux这段时间在做什么呢?他在随后的推特上详细描述了这些行为:
- 只支付所使用的服务
- 只关注业务逻辑
- 由于每个函数的隔离,所以可以立即知道任何问题的所在在几秒钟内完成无缝部署升级
Redmonk的James Governor认为他在Leroux的帖子中发现了一个对KubeCon参会者的恶意攻击,但是Leroux指出的“仅仅是事实!”,他如是说。这些事实是,尽管serverless具有自身的学习曲线和问题,但它使开发人员不必考虑基础设施,而只需关注业务逻辑。
对于一个沉浸在虚拟机中的企业世界来说,容器已经成为一块敲门砖,很大程度上是因为它们虽然不同,但仍然使用相似的隐喻。容器可以在在几分钟内进行部署,甚至相比于其他需要花费更少的时间启动——但是有一点,开发人员必须与服务器一起工作。
而Serverless则打破了服务器的隐喻。正如Leroux在2017年的一次采访中所说的那样:“一旦你接受了这个隐喻性的飞跃,你就会在很大程度上被孤立,但在这种孤立状态下,你会获得更多的持久性。这很像建立静态网站(有效地上传文件)。”
同样,对于那些不得不依赖VM(虚拟机)的开发人员来说,容器的转变是渐进式的,而非革命性的。总的来说,这是一件好事。但是,当企业尝试接受微服务时,容器方法开始显示其局限性。毕竟,在Kubernetes上你可以完全构建一个微服务体系结构,但是必须自己处理管道。而AWS Lambda和其他一些serverless的方法却可以帮助解决所有这些问题。
真的,serverless很简单!
当然,考虑到Kubernetes直到最近才成为容器的宠儿,因此这对一些人来说或许是一种诅咒。尽管如此,Kubernetes也绝不简单,服务器的比喻仍然是其最大的优势(将开发人员与VM过去捆绑在一起)和最大的弱点(使开发人员更难到达未来)之一。然而,对于今天的许多企业来说,与过去的联系是一件大事,并且也显示出有多少公司在使用容器,正如CNCF的一项调查所揭示的那样:
![11.png](https://s3.51cto.com/oss/201805/11/ef42a7932e86a1cba5f9f371b2516947.png)
Image: Cloud Native Computing Foundation
显然,Kubernetes是企业选择升级开发的一种方式,这种方式不需要企业过于频繁地转换范例。即便如此,这也不容易。当被问及关键的挑战时,复杂性、网络、安全、监控和存储位列榜首:
![22.png](https://s4.51cto.com/oss/201805/11/8ace38e71f489adffdf981f234774cf3.png)
Image: Cloud Native Computing Foundation
其中一些问题似乎正在变得越来越好,尤其是当Kubernetes成熟时。但目前尚不清楚它们的改进速度是否会比serverless走向主流的时间要快。
Kubernetes会就此结束吗?
这并不是说serverless将会击败Kubernetes。企业技术,即使它传播得很快(采用serverless的速度也很快,在CNCF调查的开发人员中有41%的人表示他们已经使用了serverless,在接下来的18个月里又有28%的人打算这样做),也并不表示已经足够快了。像Red Hat这样的公司将会在未来的许多年里花费大量资金帮助企业转向容器技术。
然而,据美国AWS首席执行官Andy Jassy称,AWS Lambda在过去一年中增长了300%,是“落后者”推动了其采用。正如他写道:
容器可以帮助企业降低IT成本,但是其采用的主要驱动力是速度和对基础设施的有效管理。容器基础设施的问题在于,这种高效的管理还需要高技能的开发人员和操作人员。而人才恰恰是稀缺资源。所以即使你能负担得起这些人,他们也可能更愿意为更酷的公司工作。
对开发人员生产力的推动促使一些公司刻意避免容器的“干扰”,完全专注于编写业务逻辑。因此,我们很可能会看到企业同时拥抱Kubernetes和serverless,因为公司的不同领域会以不同的速度前进,不同水平的遗留业务/系统将会在未来有交叉。
但是,如果你是一个有赌博精神的人,那么你会把钱投注在能让开发人员最有效率的地方。正如Rishidot分析师Krishnan Subramanian所说的那样,这就是serverless,的确,对容器的进化来说这是一种风险。