导读:云”是人们一直在使用的定义并不明确的术语之一。
没有服务器可以进行计算吗?还是没有代码也能进行编程?人们需要在采用不断发展的云计算技术中思考这些创新。
“云”是人们一直在使用的定义并不明确的术语之一。就像政客在陷入困境时喜欢说解决问题的方法更多的是“教育”一样。在过去的十年或更长的时间里,从实习生到首席信息官,IT部门的每个人都知道,解决任何问题的正确答案都是“云”。
但是,这个术语掩盖了很多复杂性和混乱性,因为其含义千差万别。在这个流行术语被采用之前,大型机提供商开始销售分时系统,托管公司在Unix服务器上租用帐户。像美国在线这样的公司以娱乐为背景,提供类似云计算的存储和计算服务。
即使到现在,这种演变仍在继续。云计算最早的产品只是在服务器上运行的数十个虚拟机。即使用户实例只占机器的一小部分,也可以假定是root用户。FTP服务器后来被重命名为bucket和dropbox。从那时起,其衍生的服务开始爆炸式增长,“aaS”(即服务)已经成为首字母缩略词创建者最喜欢采用的后缀。
这一演变仍在继续,每一项新的发展都促使云计算用户重新考虑他们希望购买和租赁的东西。其中许多是重新发现并重新包装的想法。许多都是解决上一代解决方案产生的问题的更智能的解决方案。所有这些都给人们提供了重新构建云计算的机会,希望让它焕然一新。
以下是云计算发展和变化的七种重要方式:
1.节省成本的计算粒度变小可以节省成本
第一代无服务器计算具有相对较大的计算单元。例如,AWS Lambda一开始就把所有的计算粒度统一为100毫秒,程序员很快就发现,他们花同样的费用可以实现更加快速的计算,或者是实现20倍、30倍甚至100倍的计算量。如果他们利用效率不高,那也没关系。支付的账单是一样的。
随着越来越多的无服务器平台参与竞争,计算粒度变得越来越小。AWS公司停止以100ms计费,最终以1ms的增量开始计费。
2.简化操作系统运营
现代化的操作系统是一种复杂的系统,可以处理打印任务、视频游戏、文档编辑以及无数的任务。人们是否想过为什么要在启动云实例时准备好所有代码来处理这些任务?
Unikernels是消除这些复杂性的一种方法。一旦你的代码运行,编译器将构建一个规模更小的程序包,该程序包将驻留在标准虚拟机管理程序之上。支持者指出,这不仅可以提高效率,攻击面也要小得多,从而更易于保护。
为什么不直接从AWS或Google获得最小的操作系统? 谷歌的Container-Optimized OS和亚马逊的Bottlerocket将传统的虚拟化范例应用于操作系统,其中容器由虚拟操作系统(OS)和更小的Linux充当虚拟机管理程序。它们非常适合用于封装只做一件事的微服务,而无需依赖操作系统的许多功能。
3.开源功能
简化部署到云平台的工作的另一种方法是让开发人员编写简单的功能,并将所有其他工作留给云平台本身。在过去的几年中,所有主要的云计算提供商都推出了自己的工具,这些工具允许一小段代码、一个功能来做出一些决策,并处理一些数据。这些都是了不起的进步,特别是对于将许多服务组合到一个产品中的开发人员来说。
唯一的缺点是可能面临云计算供应商锁定的情况。尽管可以采用多种语言编写功能,但与框架的交互是专有的。现在,有许多有趣的开源项目(OpenWhisk、OpenFaaS、Kubeless、Knative、Fission)提供“功能即服务”。
4.Arm芯片
Arm芯片不仅仅是为Mac设备爱好者准备的。亚马逊公司有一些服务器运行带有Arm内核的Gravitron芯片,可以将成本降低40%。当然还有一些警告。除非使用Java、JavaScript(Node.js)或PHP(Drupal,WordPress等)等高级语言进行工作,否则必须重新编译可执行文件才能在Arm平台上运行。
如果希望知道是否会节省成本,这在很大程度上取决于计算的性质和负载。某些基准测试将Gravitron机器与基于Intel的机器置于通用范围内。其他人则认为基于Arm的实例的功能稍差一些,因此更适合运行使用较少的代码,这些代码可以节省成本,而无需运行更长的时间。
那么应该进行切换吗?找出答案的唯一方法是在生产环境附近测试自己的工作负载,以查看它们是否可以节省成本。
5.万能的数据库
很久以前,Fortran程序员看到Fortran逐渐添加一些令人兴奋的新功能,并打趣说不知道将来的编程语言是什么,但是仍将称之为“Fortran”。如今对于数据库也可以说是这样,其原始的微功能作为服务层。很久以前,数据库只能存储矩形表,而现在几乎可以做所有事情。
开发人员开始注意到其中有多少功能。例如,PostgreSQL 11具有自己的JIT来编译查询,并且其嵌入式功能现在具有提交或回滚事务的能力。该数据库使用JSON,因此在不超出数据库范围的情况下构建完整的微服务比以往任何时候都更加容易。
其他数据库(例如Azure Cosmos DB)结合了SQL、MongoDB、Cassandra和图形API。还有其他诸如Google的Firebase这样的机会,既可以存储数据,又可以通过复制将其交付给客户端,他们将分配与存储合并。
6.办公应用程序的新角色
充满数字、字母和公式的网格是Bean计数器和管理器(而不是编码器)的通用语言,但它们作为一种智能文件格式和一种向大众开放云计算的方式而得到越来越多的应用。“无代码”的理念使程序员摆脱了这样的循环,并直接使用将电子表格转换为应用程序的工具来接触宏程序。例如谷歌公司宣称,一家用户使用AppSheet构建和部署了35种具有“无编码技能”的商业应用程序。
不只是电子表格,办公应用程序套件现在可用于运行业务的越来越多的自定义应用程序。一些程序员并没有将应用程序构建和部署到独立实例中,而是在构建与Google或Microsoft University中的文字处理器、幻灯片演示生成器和其他通用工具集成的应用程序,这会让企业中的每个员工都能轻松地处理文档和电子邮件。
7.边缘计算
云计算将继续发展,将越来越多的计算能力推到网络的边缘。像Cloudflare这样的公司现在提供智能计算服务。Cloudflare Workers将在其200多个数据中心尽可能靠近用户的位置运行JavaScript、Rust、C或C ++代码。
亚马逊的AWS for Edge服务提供了类似的机会,可以将代码移到更接近用户的位置。那些使用Amazon SeageMaker机器学习服务的人可以将它们从主要数据中心推到网络边缘。亚马逊公司现在强调要与新兴的5G网络连接,毫无疑问,消费者将越来越多地采用移动设备浏览互联网。
微软的Azure IoT Edge旨在针对爆炸式增长的依赖于云计算功能的设备。例如,Custom Vision为新兴的摄像机网络带来了边缘计算。
随着云计算的增长和广泛应用,正在开发大量的示例。云计算曾经仅限于可租用实例的集中式数据中心,但现在正在迁移到网络中。在此之后是什么?物联网?智能烤箱?还是汽车的智能设备?
总之,只要租赁比构建更加经济有效,那么云计算就将被任何需要电脑和数据存储来推动业务发展的人员所接受。