其他见解

了解障碍以开源采用

在过去十年中,开源采用的开源采用了前所未有的增长。例如,自2005年以来,来自超过1300多家不同公司的13,500多个开发人员为单一开源项目贡献了Linux内核。1

随着越来越多的企业采用它,他们获得了敏捷性、可伸缩性、成本节约和加速业务创新。然而,我们注意到,我们的客户在跨所有业务部门采用开源时总是面临挑战。在这个博客中,我将讨论以下主要的采用挑战:

  • 令人眼花缭乱的技术选择
  • 端到端专家的稀缺性
  • 复杂的供应商ecosystemsn
  • 构建安全开源解决方案的挑战
  • 无知对产品的能力

让我们通过一些例子来深入探讨这些挑战

令人眼花缭乱的技术选择

学会选择很难。学会选择井更难。并学会在一个无限可能的世界中选择良好的可能性更加艰难,也许太难了。

- Barry Schwartz,Copy的Paradox:为什么要少了

每个现代化项目都有很多技术产品可供选择。无论是API、集成、BPM、数据库还是微服务层,市场上有很多产品,既有开放的,也有专有的。挑战在于根据您的需求来确定正确的产品。人们最常犯的错误是首先选择科技产品,然后决定如何使用它来满足自己的需求。在现实中,应该是反过来的,你必须首先理解需求,然后看看哪个产品能够解决它。

我首先发现了两个选择产品的主要原因。其中一个是来自产品供应商的精彩推销,另一个是对技术的热爱。对一种有前途的技术充满热情是好事,但不能以牺牲架构为代价。在我们的一个项目中,我们花了很多时间和精力向客户解释为什么他们想要使用的产品对他们的技术堆栈来说是不必要的。做出这样的决定需要对各种解决方案有很好的了解。

端到端专家的稀缺性

全栈架构师是具有为跨业务领域的企业设计解决方案经验的专家。他们带来了来自不同行业的最佳实践和经验。零售、能源和银行等一些行业在采用开源技术方面走在了前面,它们为构建优秀的架构带来了创新和技术,这些架构可以被其他行业部门收集和利用。作为一名全栈架构师,从项目的设计阶段就参与其中是必要的。不幸的是,这样的全栈架构师屈指可数。

复杂生态系统供应商

由于可供选择的技术范围令人眼花缭乱,任何现代化项目至少都有五种产品可供选择。这个数字是基于我们最近对客户进行的内部调查得出的。我们已经看到这个数字高达8到10。在接口众多的情况下,如何确保现代体系结构的开发价格合理呢?

构建安全开源解决方案

开源解决方案不能以安全的方式构建,这是一个神话。在我的许多客户讨论中,我遇到一些人,他们认为某个数据库或集成产品不安全。在这种情况下,重要的是询问您的客户端,例如,他们如何保护数据库连接?他们在服务器上启用SSL了吗?我们使用的大多数开源产品都有优秀的安全特性,但缺乏相关知识和意识,不知道如何使这些特性正常工作。如果你正在使用Kafka,你可以SSL同时启用代理和zookeeper。您可以设置信任存储库、密钥存储库和访问控制列表(acl),以确保只有经过身份验证的用户被允许访问。您可以在非常细粒度的级别上限制访问。在某些场景中,我们需要采用该产品的企业版本,以便能够使用安全特性。

无知对产品的能力

大多数新时代的开源产品都是为了解决分布式、需要规模化和可能需要以加速的速度吸收大量数据的体系结构问题而开发的。问题在于,人们需要知道如何以最佳方式使用产品,从而获得最大效益。许多旧的学校实践已经不再是最佳实践。我们需要忘却旧事物,学习新事物。例如,我不能在构建非关系模型时应用关系概念。我们需要了解各种事件驱动的体系结构模式,比如事件源、事件通知、CQRS以及何时使用哪种模式。每当存在怀疑的因素时,建议在开始完整的实现之前先对体系结构的一部分进行试点实现。在我们的许多合作项目中,我们都进行了试点实施,通常持续6到8周,以说服不相信我们的人。

每一个障碍都可以通过正确的方法和最佳实践来解决。读我的博客“跨越开源采用障碍的5个步骤”了解更多。

1https://www.linuxfoundation.org/resources/open-source-guides/participation-open-source-communities/