用更少的芯片,完成更大的构建任务——为什么加快开发速度比以往任何时候都更重要

Blog
Author:
Joseph SibonyJoseph Sibony
Published On:
5月 4, 2022
Estimated reading time:
1 minute

目前业内遇冷:我们的芯片存量不足,由于各种原因,问题很严重!这并不是新问题,但在大多数科技领域,芯片不足已经成为主要趋势。毕竟,半导体是科技基础架构的主要支柱。此外,随着人类对更高科技的产品(从计算机到视频游戏机,再到嵌入式系统等)的需求不断增加,(据预测)由于芯片短缺,未来一年内,至少大部分的需求都无法满足。

从消费者的角度来看,这就很糟了。而制造商和科技公司则一直在艰难地争取满足自身需求。在上一个链接对应的报告中,新冠肺炎疫情推动个人电脑销量同比 2021 年增长 50%,预计增长趋势至少会持续到 2022 年底。

对于消费者来说,他们所需的商品出现短缺;而对于需要构建数据中心、计算农场,以及一般需要更多处理能力的组织来说,他们不得不寻找替代办法来达到预期效果。问题是,要怎么才能做到?

芯片存量减少

现在我们要抛出另一个不争的事实:目前的代码库非常庞大比如,数以亿计的代码行,而且现在还在不断增长中。而且,代码的增长速度也非常快。事实上,近期的调查发现,仅 2022 年,预计代码库就会增长近 19%。消费者可能感受不到什么大问题,因为他们往往看不到应用程序的后端。但使用 C++ 等程序语言时,海量代码库就意味着冗长的构建时间,以及对计算能力和可用处理资源的迫切需求。

为什么代码库庞大与半导体短缺的问题息息相关?其中涉及几个原因。仅就数量来说,目前还没有快速的解决办法。根据美国商务部的一项调查,在 2021 年短缺最严重的时候,大部分半导体制造商只有 5 天的库存(而 2019 年的库存天数是 40 天)。尽管许多分析师对此持乐观态度(正如高德纳报告所述),认为短缺状况终将结束,但我们仍然没有完全走出困境。目前供应链遭遇的新冲击仍然是(各种)半导体的交付周期延长

少数行业受到最严重的短缺冲击(例如,由于缺乏芯片和半导体,汽车和医疗器械行业遭受严重打击),不过对于那些管理大型代码库的开发人员和团队来说,不论他们采用的是本地部署还是利用云爆发的混合模式,或是其他云模式,计算机芯片仍然是一大问题。众所周知,大型构建任务需要庞大的处理能力,而如今大多数组织都拥有海量代码库,需要大量的计算能力,仅仅是为了编译数据以进行测试。

过去典型的解决办法就是配备拥有更多处理核心的“更高性能”计算机,或者是在本地数据中心增加新的服务器。现在这样的选择就显得过于昂贵,令人难以承担了。今年,迄今为止,半导体的收入确实有所增长,但原因也很简单,甚至对开发者来说,还是坏消息。根据高德纳的报告,收入增长很大程度是由平均售价上涨所驱动的。

思考更快捷

假设你有一款非常受欢迎的游戏,正在不断更新和维护中。那么你需要一直运行新的构建(即便是增量构建),而编译构建任务可能需要耗费数小时。所以,你会思考。我们有钱,可以购买大量的新服务器和计算机,以满足处理需求。而由于半导体短缺,预计现在的价格会比你想象的要高得多。

不用担心,你可以机智地说,我们只需要迁移到云上就好啦,完全不需要硬件。如果你只是不加思考地不断增加计算能力,那么很快云成本就会累计得越来越高!那么,面对如此庞大的代码库,团队迫切需要编译代码并且每日运行多个构建,开发团队需要怎么做才能实现?

答案就是,像老话说的那样,“更聪明地工作,而非更勤奋地工作。”不过,让我们来仔细分析一下这句话。不再是简单地支付更高额的费用来购买更多的硬件,最重要的是,绕过短缺问题,想出其他的办法。短缺只会导致更高的价格,而且短期内也不会结束。所以,是时候考虑从目前已用的资源中,获得更多的价值。

例如,如果你操作得当,那么通过云爆发,或者只是将构建迁移到云端,你就能够节省大量的成本。例如,你可以使用竞价实例,降低成本,同时避免云资源管理不善带来的长期财务问题。利用工具编排好竞价实例队列,确保不会因为竞价实例被删而失去服务,可以帮助你节省成本,同时减少对随选伺服器容量和计算资源的需求。而这些服务器和计算资源并非始终需要。

即便你利用的是本地部署,那么你只需要花费一点点成本,就像购买更多的硬件一样,利用加速工具实现同样(甚至更好)的效果。适当的开发加速平台可以最大程度地利用你们手头的资源(你所在组织内计算机中已有的核心和 CPU),并将其转化成可以随时使用的构建农场。相比利用物理服务器组成的专门构建农场,这个云端农场可以帮助你实现更好的性能。

在上一个链接的文章中,我们了解了加速的面貌。利用虚拟网络中的十台机器,项目整合了 112 个核心(想象一下,如果要买这么多的硬件,这些处理器的成本会有多高)来完成一次构建任务,将原本需要花费 16 分钟的任务,缩短到不到两分钟。这就是 9.5 倍的性能提升。这实质上是什么意思?这意味着,开发者会有更多的时间进行迭代、测试、改进,以更快地速度上市,并在合理的时间内回归其他任务。

立刻加速吧

当然,芯片短缺总有一天会结束,但你仍然会面临同样的问题:是购买更多的硬件更值?还是拥有更多的按需实例更值?还是最好把资金投入到加速工具上,用更少的资源,以更快的速度,做更多的任务?即使你手上握有成千上万个芯片,花钱买硬件也太过时啦。现如今,关键在于如何更聪明地工作。