当应用到云端时,开放究竟意味着什么?在现代软件工程世界中,有一种将"开放性"置于一切之上的趋势,好像开源中的"开放性"可以很容易地应用于工程堆栈的其他部分。
但是开源和开放云是完全不同的概念,即使它们都包含"开放"这个词。即使云提供商声称拥有开放云,每个人都应该清楚,云基础设施不是由全球志愿者社区维护的,他们不会通过他们的努力获利。
云的"开放性"经常被误解,有时是因为公司故意误导我们什么是开放的,什么不是开放的,有时是因为作为一个行业,我们试图过度简化非常复杂的产品和技术。与"开源"的语言相似性,以及"开放"和"封闭"通常以二元选项而不是频谱的形式呈现的事实,使得更容易误解"开放"云的现实。
过度简化或误解开放在云环境中的真正含义可能会导致企业对技术选择做出错误的决策,从而导致时间和金钱的浪费。以下是企业在考虑如何评估云的开放程度时应该考虑的内容——以及这是否重要。
1. "开放"不存在极端情况
任何平台、云或服务的开放性都是衡量客户锁定程度的衡量标准,它本身只不过是计算从平台迁移出去需要花费多少时间、金钱和难易程度。
云提供商可能会谈论"开放",但没有完全开放的云。毕竟,在谈论他们的云有多开放时,所有云提供商都会对出口流量收费。
这不仅仅是他们自己维护底层技术的成本:入口流量是免费的。如果对真正开放的云的贡献是真实的,那么迁出将与迁入一样自由。
"开放云"一词的问题之一是它鼓励人们将"开放"视为二元:云要么是开放的,要么是封闭的。但完全开放或完全封闭的极端不存在:迁移成本永远不会为零。从云或平台迁移也不是不可能的,尽管它可能非常昂贵。
2. 什么因素使云或多或少开放
那么,我们如何评估特定云在开放范围内的位置?最开放的开放云总是具有以下特点:
- 建立在开源之上
- 促进数据开放,包括拥有更容易访问、处理和移动数据的工具
- 使用开放 API,使用标准接口并采用开放标准。
然而,即使是满足所有这些要求的云也不是完全"开放"的,换句话说,从该云迁移的成本不会为零。以下是企业应评估的因素,以了解特定云或其他平台在开放范围内的位置:
- 有多少粘合剂将开源组件粘合在一起?仅仅因为云基于开源并不意味着在其他地方创建相同的体验或功能很容易。总是有自定义的专有脚本将所有内容组合在一起,使开源软件更易于使用和更可靠。专有粘合剂越多,云的开放性就越低。
- 数据可移植性。数据有重力,移动数据既费时又费钱。在确定云的开放程度时,将数据移出云环境的难易程度是最重要的因素之一。
- 附加服务。所有云提供商都提供各种附加服务,从机密管理到监控和日志记录。企业使用的每项服务都会增加锁定,使企业更难迁移到其他地方。
使用的专有服务越多,云的开放程度就越低。一些服务会比其他服务更开放,不仅评估整个云提供商的开放性,还评估企业使用的每个单独服务的开放性。
最后,云开放还有一个技能组件。并非所有企业都拥有高技能的工程团队。企业的团队越复杂,就越容易摆脱任何特定的云,并且对托管服务的依赖程度就越低。
3. 做出更好的选择
当企业接受二元开放/封闭云的想法时,他们忽略了有关使云或多或少开放的所有细节,最终未能彻底评估对企业重要和不重要的内容。良好的决策总是需要全面了解可用选项以及企业的优势、劣势和优先事项。
假设云越开放越好是错误的。对于许多(可能是大多数)企业而言,担心云锁定是一种干扰,可能会阻止工程团队利用云的敏捷性、速度和成本节约优势。
当然,少数公司可能会从基础设施管理中获得竞争优势,但它们很少见。在大多数情况下,坚持让他们的云环境尽可能开放的企业会发现自己花费了宝贵的工程时间来管理开源软件并推出可以从云提供商处购买现成的服务。
工程领导者不应考虑云是否开放,而应评估企业的优先事项:开放性在哪里重要?从云提供商处使用的服务与企业的优先事项的匹配程度如何?在评估哪个云提供商在开源、专有程序、开箱即用服务和迁移障碍之间取得适当平衡时,这将为企业提供一个更好的起点,并最终做出更好的云相关业务决策。