在亚马逊 re:Invent 大会之后, 我们很清楚的看到亚马逊的发展是不可阻挡的。AWS 发布越来越多的产品,这些产品都是全整合的,而且非常易用。如果你认为做基础设施的公司是其竞争对手,那么你的确需要重新好好想想。新的亚马逊提供了竞争对手擅长的数据库服务,提供开源大数据和容器生态,提供安全软件,甚至是提供开发人员以及各种 APM 工具。
开源是一个关键因素,但是亚马逊似乎要证明可用性以及整合比各种堆叠起来的开源项目对客户来说才是更重要的。
有趣的是,亚马逊一方面打压开源生态系统来突出自身工具的优势,另外一方面却在将一些开源项目(例如 Facebook 开发并开源的 Presto)打包成一个盈利的产品(如最新发布的 Athena 服务).
这应该敲响软件和技术行业的警钟!
在以前,我们专注于开发模块化的体系结构。我们有标准的协议,诸如:NFS, RPC 和标准的 API 层,诸如:BSD, POSIX 等等。那是一段有趣的日子。你可以从不同的供应商那里购买产品,而这些产品可以很好的协同工作,产品之间是可交互的。而且多数的产品也有开源的实现替代方案,人们也可以利用它们来构建商业版本去扩展其功能和可用性。
最成功的开源项目毫无疑问是 Linux。我们经常会忘记它有非常严格的 API 和应用分层。新的内核实现必须遵循官方标准 (USB, SCSI…)。但是 Linux 的各种开源和商业版本百花绽放,一起打造和谐的生态环境。
如果我们对比 Linux 和今天的开源生态,我们会发现很多产品实现的重叠。举大数据生态为例:在绝大多数场景中是没有标准 API 和分层的,更不用说标准连接协议了。项目本身是不可交互的,导致开源软件的使用比使用那些符合通用标准的商业产品造成更多的锁定问题。
我们是如何走到这一步的?
科技产品正在经历一场由数据化转型驱动的巨大变革。这大大的改变了基础设施提和软件栈。老一代的卫道士挣扎求生,我们似乎缺少用来定义和建立新时代模块化堆栈的技术领导层。而实力强大如亚马逊和 Azure 这样的公司正在构建他们自己全整合的产品,所以我们其他人需要承担责任、共同工作、专注于整合,而不是代码层面的东西。
我们不需要 20 个乃至更多的 Apache 项目来做同一件事情,这些产品只是略好而已。我们也不需要十多个开源的容器管理平台,我们没办法将一个糟糕的架构框架变成实际的标准。我们需要重新开始定义全新堆栈中的层和组件,包括 API、协议和公共管理模式。我们应该努力使现有的项目很产品适应这种新的模式,然后不断有更好的产品推出。
这是让开源软件能够有像样用户体验的唯一方法,一个我们可以轻松从独立的组件中构建安全的集成堆栈,并可根据需要进行产品的连接,而不是被锁定到特定的项目或者某供应商提供的 API 上。如果我们不这样做,我们将在云时代成为技术的奴役。
译文出处:可译网,翻译:CY2
更多IT译文请访问 https://coyee.com/channel/it