很久以前,服务器是属于企业的,而且是属于一个部门的。你和你的部门会仔细检查规格,收集报价,填写采购订单,然后提货,最终就可以在离你办公室不远的服务器机房中仔细地安装并测试机器。你和你的部门可以靠近触摸机器,检查LED灯是否亮着,听到风扇安静的嗡嗡声,心里感觉很踏实。你甚至还能用衬衫袖子蹭一蹭前面板。

而现在,你可能与硬件没有任何关系了。有些人仍然点击云公司的网页来创建一个“实例”,但我们中的很多人把启动服务器的所有工作都留给了由集成度越来越高的部署机器人运行的自动脚本。在配置构建例程时,我们最多花费一些时间来讨论实例的大小,但之后,工作就留给了我们的一个机器人部署例程。这种软件甚至非常聪明,足以去协商空闲周期的价格问题,以减小成本,所有工作都不需要我们的参与。

随着“无服务器”这个流行语越来越普遍,我们与硬件越来越无关了。当然,这些实际上并不意味着整个过程中没有服务器,只是说,你不必再担心大大小小的硬件机箱和四处连接的线缆了。只需给我们几行代码,我们就可以确保后台仓库中的一些硬件将运行它。

其中很多奥秘都是省力和减压的创新。两眼一抹黑并不意味着我们再去思考关于内存配置或者硬盘分区的任何细节,或者那些损坏的DVD-ROM托盘是否重要……等等,就是浪费时间。不再思考这些问题是件好事。开发人员一直在努力构建敏捷工具和机器人程序,这样,我们就不用召开员工会议来讨论并审查烦人的问题。

但有时,有些事情被掩盖得太深了。有时候,我们还没有进行详细的讨论,便点击按钮并同意那些几乎没有人读过的、没完没了的合同的无数条款。

好消息是,很多时候这些细节都无关紧要。我们不用再担心这些了,因为我们可以放心了,一切都解决了。之前忽略它们算是赌的不错,所以我们又赌了一次。

但有时,如果我们的代码恰好是最重要的一次,那么就得仔细想想这些奥秘了。不管这一次是百分之一、千分之一,还是十亿分之一,此时我们都应该多问几个问题。

我们不是说你应该执着于此。我们也不是说你担忧这么多的事情以至于彻夜难眠。但是如果你发现自己无法入睡,那么当你实在没有更好的事情做的时候,不妨想想下面这些现代硬件的奥秘。

服务器在哪里?

在云中。我们所知道的不过如此。这些企业可能会说,我们的实例在纽约或者卡拉奇运行,而我们知道的仅此而已。通常我们最多就是知道这个城市的名字,甚至仅仅知道是某个国家。

我们需要关心街道地址吗?也许大楼本身的模糊位置就是一个安全特性,而不是漏洞。如果我们不知道机箱的实际位置,那么,犯罪分子也会感到困惑。这不像我们西装革履地参观服务器机房时那样——摸摸机箱,听听机器的嗡嗡声。

问题是,我们中的一些人实际上应该担心数据中心的物理位置。我们担心的是税法或者与司法管辖权有关的法律问题。我们中的一些人应该担心出口法,能不能让我们的数据越境。我们中的一些人让律师打电话来问我们类似的问题。我们中的一些人不得不处理传票。

CPU是什么?

还记得你是想要第六代芯片呢,还是热衷于炙手可热的第七代芯片?还记得一排又一排的基准测试数字,然后将成本除以速度吗?还记得当你得意洋洋地吹嘘升级到第四代CPU是多么的有趣,你的某位同行却被他精打细算的老板逼着又用了一年第三代芯片的事儿吗?

现在,你很有可能不知道CPU的制造商、型号或者任何其他细节。云计算公司向你出售的实例的名称也很神秘,比如“m1”或者“large”什么的,但这并没有多大意义。“m1”和“m2”之间可能没有任何关系。它们只是个名字而已。

一些云计算企业尝试衡量你购买的“虚拟”CPU的能力,然后让你给出正确的数量。这可能与机器上内核的数量有关——可能影响线程和并行算法,也可能与此无关。这一切都可能只是表面现象,不过是为了衡量你购买的数量。

有时,硬件导致了差异。有时,会出现可以追溯到特定芯片的安全漏洞或者故障。“隐藏上帝模式”漏洞影响了VIA C3系列的x86芯片。有时我们需要了解线程模型和内核,目的是让我们的算法运行得更快。像这样的小问题和不大不小的问题有几十个。我们可以放宽心,因为云计算企业应该为我们把所有这些都办好了。至少他们是这么说的。

什么样的内存?

很久以前,我们考虑是否值得采用很多纠错电路来安装更快的内存。很久以前,我们想知道某些RAM是否比其他RAM更好或者更稳定。很久以前,我们选择了某些RAM制造商而不是其他制造商,并对品牌名称和技术方法提出意见。

而现在,我们将永远不会知道硬件有多好。这是云计算企业工程师应该考虑的,而我们不必担心。但他们会为我们考虑吗?我们真的永远不会知道。我们的实例可能因为内存不好而崩溃。也许是因为我们自己的代码太差了。我们永远不会知道到底是什么原因。

什么样的硬盘?

一些云计算企业会吹嘘使用了固态硬盘。有些会吹嘘使用更快的硬盘。有些只会租给我们25GB的存储空间,而不告诉我们详细信息。但并非所有的硬盘驱动器都具有相同的可靠性等级。并非所有的闪存性能都一样。我们的程序失败了,是因为某个被重写了很多次的闪存单元吗?还是因为某个新程序员迫切地想要推送新的代码?我们再也不用担心了。我们只需要启动另一个实例,并继续。

甚至晶体管也不简单

RAM可能是整个机器中最简单的部分,它有一些基本的、枯燥的语义。输入一些与地址相匹配的比特,当出现该地址时,就会输出相同的比特。

晶体管似乎是只存储两个数值的数字器件,但这只是教科书里的理论。在现实生活中,它们本质上是模拟电路,会导致一些可怕的泄漏。研究人员开发了像Rowhammer和RAMBleed这样聪明的技术,而狡猾的黑客正在研究怎样远程利用它们。如果我们不能信任RAM的基本语义,我们还能信任什么?

其他芯片则更神秘

大多数人很少花时间思考计算机的其余部分。我们讨论的是CPU,有时是GPU,但是除了网络部门,还会有人讨论网络处理单元NPU吗?它很安静地呆在那里,专心致志而且镇定自若地移动数据,以至于所有人都忘记了它的存在。但是NPU有自己的固件,而且有精心设计的、可重新配置的网络层,其中包含一些最复杂的语义。当我们因滥用分支预测和Rowhammer而烦恼时,有没有人花些时间来考虑黑客用网卡干什么了?

什么样的技术?

有时我们甚至不知道采用什么合适的术语来描述服务。亚马逊的Glacier存储是一种比较便宜的存储方式,但亚马逊不会解释他们使用的是什么技术。它是由慢速磁盘架和机架构成的吗?或者他们把数据烧录到一堆一堆的蓝光光盘上?或者他们可能使用机器人手臂装载的磁带机?也许他们使用了两到三种不同的技术,这样他们就能降低成本了?这一切都是谜。我们所知道的只是每千兆字节的成本和检索信息的速度有多慢。

到底怎么了?

有时候我们根本不知道发生了什么。迁移到云端并不能避免断电、硬盘驱动器内爆或者勒索软件等不良事件带来的危险,但我们确实不知道发生了什么。在企业的服务器机房中,每个人都隶属于我们的部门,所有人都向同一个老板报告。他们可能并不总会告诉我们真相,但他们一般来说会更坦诚一些。

而在云中,我们可能不知道谁在处理问题。充其量,我们将通过电子邮件和故障通知单进行沟通。即便如此,律师、经理和公关部门也挡了我们的路,而我们唯一得到的就是措辞谨慎的官话。充其量,我们知道“出现了错误”。最坏的情况是,我们什么也听不到。

如此混乱的一个很好的例子是最近对QuickBook会计数据进行的勒索软件攻击的报道。那些相信“让云来处理数据,让生活变得无忧无虑”的营销说辞的客户,还是想知道到底发生了什么。同样的攻击很容易摧毁我们的数据中心,但至少我们知道这些人的名字,而且我们在公司野餐会上可能会碰到他们。

作者:Peter Wayner是InfoWorld的特约编辑,他撰写了16本各种主题的书籍,包括开源软件、自动汽车、增强隐私计算、数字交易和信息加密等。

编译:Charles

原文网址:https://www.infoworld.com/article/3411996/8-dark-secrets-of-cloud-hardware.html

信息化和软件服务网 - 助力数字中国建设 | 责编:左右