发布于 2026-01-06 6 阅读
0

云计算是新的操作系统——开发者的视角

云计算是新的操作系统——开发者的视角

在计算机发展的历史上,我们大多数人所从事的抽象层次被提高的情况已经发生过好几次了。

一直以来,都会有人编写和理解汇编语言。但大多数开发者并不关心他们每天向 CPU 发送的具体指令。如今,大多数开发者甚至都不用手动分配内存。与操作系统通信的系统调用是大多数开发者所关注的最低层级。实际上,他们使用的甚至不是系统调用,而是语言运行时提供的 API。

我认为我们即将迎来计算抽象层次再次提升的临界点:

我的预测是,在不久的将来,人们将不再考虑我们正在编写的程序是在哪台物理机器上运行的。

我们正在迁移到云端。

当然,这并不是什么新想法。我从来没有过什么新想法。但我花了一段时间才意识到迁移到云端的意义所在。

另外,请原谅我使用了这样一个流行词——“云”是我听过的对拥有隐形硬件的软件的最佳描述。

从消费者的角度来看,这听起来并不是什么新概念。将所有文件、所有数据都存储在互联网上,并随时随地通过所有设备访问,这已经完全成为一种常态。

人们很久以前就不再关心云的实际物理位置了(这并不完全正确:在德国,每个人仍然很担心,并且努力寻找云)

我们的社交和工作工具基本上都已经迁移了。我们拥有的笔记本电脑和手机不需要提供太多功能,它们正在变成普通商品,仅仅提供了一个与云端交互的窗口。

在某些情况下,例如玩游戏,你拥有的硬件仍然至关重要,但个人高端游戏电脑也已成为过去式

对于消费者和企业来说,无需操心硬件的便利性是巨大的优势,因此这项举措很容易被接受。人们根本不在乎技术的工作原理。他们不想了解,也不想为此费心。他们只希望服务和工具能够正常运行,完成工作。至于维护,就交给别人吧。

对大多数人来说,拥有电脑的控制权反而是一种负担。

但我们开发者喜欢技术。我们都想完全掌控自己的系统和数据,对吧?我对此表示怀疑。至少大多数人并非如此。我们终究也是人。我们拥有或就职于那些努力经营业务的公司。如果存在更高效的方法,而且收益足够大,我们也会随之改变。

我们的生产系统大部分已经运行在云端。我们从亚马逊、谷歌和微软租用虚拟服务器。我们将静态内容推送到 CDN 服务。我们需要的越来越多的功能现在都以服务的形式提供,我们不再需要自己管理它们:
数据库、搜索引擎、防火墙、消息队列、文件存储、负载均衡器、Web 服务器、构建服务器、测试运行器、注册表、密钥管理、用户身份验证……
基本上每个通用软件都有相应的服务(如果你发现缺少某个服务,确保你是第一个开发它的人!)

我们的软件唯一独特之处在于我们自己定制的业务逻辑,它将各个部分连接在一起。

令人惊讶的是,我们通常仍然使用与当年设计物理机器时相同的编程语言和运行时环境来编写业务逻辑。我们花费大量精力,试图利用现有的操作系​​统(例如 Windows 和 Linux),构建一个与过去操作系统完全相同的虚拟环境,然后在其中执行业务逻辑,而这种执行方式却被层层嵌套,操作系统嵌套操作系统嵌套操作系统,层层叠叠,深达十层。

如果我们放下过去,放弃控制,创建适合表达我们业务逻辑的高效平台,会怎么样呢?

如果我们想要解决更复杂的问题,就需要一个坚实的基础。我们需要提高抽象层次。更复杂的业务领域要求我们能够专注于自身。我们需要将构建基础的工作与构建下一层的工作分开。

基础架构固然重要,必须打好。计算机基础架构的构建永远都需要优秀人才。但如今开发者们试图解决的大多数问题,以及未来我们将要解决的更大比例的问题,并非技术本身的问题——而是世界上所有技术有潜力帮助我们解决的问题。而这样的问题数不胜数。我们与其费力对抗层层无益的抽象所带来的复杂性,不如学会如何高效地运用技术。让我们承认,是时候引入新的抽象了。让我们充分利用现有的语言、平台和工具的优势,构建一个更稳固、更高效的新抽象层。

用于这种表达层面的编程平台与底层平台具有不同的特性:
它主要起到连接底层组件的作用。需要一个完善的API来提供与可用组件通信的基本函数。系统的启动和停止由底层平台处理,这使得该层更加动态,仅加载当前所需的内容。性能关键型任务很可能由底层基本函数处理。
此外,还需要为系统定义更多属性。

我之前提过我们正在放弃控制权吗?而且你也知道软件正在吞噬世界吧?

如果我们不想让所有权力最终都落入少数运营这些新平台的人手中,我们就最好确保把这件事做好。

我们不要坐等大型基础设施公司推出平台,也不要让他们把我们束缚在他们特定的理念和产品中。让我们努力创建一个健康的系统,拥有多种选择和多元化的理念。

很高兴看到大型云服务提供商之外的其他选择涌现。向NetlifyFastlyDigitalOcean以及其他公司致敬!健康的市场需要竞争。

与各种操作系统和编程语言类似,我们也应该追求各种彼此兼容、共享标准和协议的云平台。

这就是电子邮件和互联网等技术得以广泛应用的原因。

目前我看到的最有成效的工作是在云原生计算基金会(CNCF)的框架下开展的。我们需要更多像cloudeventsopenmetrics这样的项目!

我认为下一个重大发展方向是开发者工具。开发者喜欢也需要掌控自己的系统,以便进行测试、监控和调试。让开发者在笔记本电脑上模拟云端环境绝非明智之举。相反,我们应该将开发环境迁移到云端。开发者需要优秀的工具来提高效率。仅仅一个网页界面是不够的。我们需要实时 API,并在此基础上构建各种工具。
这个领域还有很大的发展空间。将IDE迁移 云端仅仅是第一步。

各位开发者,请注意你们试图解决的问题所处的抽象层次。做好在云端开发的准备。让我们携手合作,共同打造更美好的未来平台。

谢谢。

文章来源:https://dev.to/jorinvo/the-cloud-is-the-new-os---a-developers-perspective-4mbk