其他见解

理解采用开源的障碍

在过去的15年里,开源应用的增长是前所未有的。例如,自2005年以来,来自1300多家不同公司的13500多名开发人员为Linux内核(一个单独的开源项目)做出了贡献。1

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

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

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

令人眼花缭乱的技术选择

学会选择是困难的。学会选择是比较难的。而在这个充满无限可能的世界里,学会做出正确的选择就更难了,也许太难了。

——巴里·施瓦茨《选择的悖论:为什么多即是少

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

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

端到端专家稀缺

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

复杂生态系统供应商

多亏了令人眼花缭乱的技术选择范围,任何现代化计划都至少有五种产品可供选择。这个数字是基于我们最近对客户进行的内部调查。我们已经看到这个数字高达8到10。在这样一个接口很多的场景中,如何确保以良好的价格开发现代体系结构呢?

构建安全的开源解决方案

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

对产品性能的忽视

大多数新时代的开源产品都是为了解决分布式的、需要规模的、可能需要以加速的速度吸收大量数据的架构问题而构建的。问题是,人们需要知道如何最佳地使用一种产品,以获得最大的利益。许多旧的学校实践不再是最佳实践。我们需要摒弃旧的,学习新的。例如,我不能在构建非关系模型时应用关系概念。需要了解各种事件驱动的体系结构模式,如事件来源、事件通知、CQRS以及何时使用哪种模式。无论何时存在怀疑的元素,都建议在开始一个成熟的实现之前先对体系结构的一部分进行试点实现。在我们的许多项目中,我们已经做了试点实施,通常持续6到8周,以说服不相信的人。

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

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