category
在当今的商业环境中,有效的转型对于企业保持竞争力至关重要。根据定义,转换会随着时间推移而发
企业(或其某些子部分)具有需要变得更好的当前状态。这种变化 - 无论大小 - 都会导致不同的未来状态。随着敏捷工作实践和基于DevOps的持续交付的广泛采用,这些变化可能非常小且非常频繁。
-Nick Reed和Bart Molenkamp
随着市场的不断变化和企业变得更具适应性的必要性,期望的未来状态也会更频繁地发生变化。换句话说,一旦您开始从当前状态A行驶到期望的未来状态B,B已经改变到新的期望未来状态C.
最重要的是,A,B和C也可能不是企业范围的。这意味着在不同的细节和范围内存在多个未来状态,这些状态都在不断地并行发展。这些未来国家之间也存在相互依存关系。
为了增加复杂性,企业的数字化允许实时运营数据和KPI为建筑决策提供信息。例如,服务事件的数量,API的容量以及技术组件的漏洞都可能有助于架构决策。
创建和管理有状态架构
把所有这些放在一起,不难看出为什么传统的架构方法不再足够。 “沸腾海洋”(为整个企业建模以期回答任何问题)的日子早已不复存在。对所有当前和未来状态以及路线图进行建模,并手动将所有这些状态与所有小的,频繁的更改保持同步只是过多的开销。如果您需要让不同的利益相关者群体及时了解他们感兴趣的位置,那么尤其如此。
因此,现代架构面临的挑战是如何管理“有状态”架构,在这种架构中,您可以可靠地跟踪架构的当前和未来状态,并在多个并行流中进行所有这些更改。
精简的架构方法 - 通常被描述为“足够,及时” - 对于最大限度地缩短价值实现时间以及为EA提供频繁,迭代的投资回报至关重要。
传统上,架构框架侧重于利益相关者集合以及他们在不同详细程度上所需的观点,涵盖所有(传统)架构领域。采用更现代化的精益建筑方法,我们不希望涵盖整个组织的所有领域(“沸腾海洋”),而是采取一种自适应方法,使特定利益相关者能够实时获得他们所需的特定视图。这些组织还需要一个足够灵活的架构解决方案,以便在需要时容纳新的利益相关者和新视图。
幸运的是,社交媒体世界在一段时间内一直在努力应对类似的挑战,并且已经提出了一些非常酷的技术来应对它。
分拆架构
LinkedIn需要处理大量传入的用户更新(“写入”)以及大量用户消费他们关注的连接和主题的更新(“读取”)。保持所有对每个人都有效的数据的当前状态的问题迫使LinkedIn对如何使事物保持同步有不同的看法。
他们提出了两项关键创新,解决了他们的问题,并为系统架构提供了全新的方法:
- 将数据中的所有更改记录为不随时间变化的“事实”流。换句话说,所有更改都记录为“不可变事件流”。此方法的最大优点是它保留了所有数据的历史记录。有一个独特的时间概念(一个实体随着时间的推移有多个值),而不是数据库,您通常只有最新的值。当您需要查询数据(或者更可能是数据的特定子集)时,您可以通过处理截至当前时刻发生的所有更改从数据集中派生“视图”(或者您可以类似地派生仅通过处理某个特定时刻的更改来查看历史快照。我们将这些数据称为“物化视图”。通常,这些物化视图是持久的,并且通过逐步应用写入流的新事实,它们很容易保持同步。
- 使用事件流日志作为系统之间的缓冲区。生产者可以在不知道谁使用数据的情况下编写数据。这可以是一个消费者,没有消费者,也可以是多个消费者。生产者不知道那些系统,它只知道日志。它在时间和空间上分离系统。如果消费者系统崩溃或运行缓慢,则不会影响生产者。
在将焦点从数据集的当前状态改变为关注数据集中所有不可变的变化时,变化的概念变得成为系统的核心。
您可以根据需要为任意目的构建任意数量的视图,使用最适合目的的任何技术,例如面向文档的搜索数据库,用于网络分析的图形数据库,或者用于旧的关系数据库。报告和数据透视表分析。可以将其视为分拆数据库,或者以EA的形式将分解结构拆分。
这就是为什么我们采用一种全新的架构管理架构方法。
这对BiZZdesign平台意味着什么
在BiZZdesign,我们围绕事件流构建了新一代产品,以实现比传统系统更快适应的自适应,灵活和强大的平台。
这种方法基于现代尖端技术,使我们能够从内到外地改变数据库,并将新功能的创新速度提高了几个数量级。事件流的概念具有广泛的适用性,从与外部数据源的集成到新闻源的个性化。范式转换是从请求 - 响应到订阅 - 通知。这是一种思维转变,并彻底改变了我们的应用程序开发方法。
这为我们的客户带来了许多好处,包括:
- 我们平台的“向前兼容性”:我们可以使用事件流的任何子集在将来添加新的物化视图。我们将来添加的物化视图将考虑所有历史数据。
- 完整的审计跟踪数据,可用于多种用途。
- 在新用例出现时灵活使用新技术:我们已经在使用一系列数据库技术来支持不同的用例,例如搜索,商业智能报告和我们的API,还有更多用例。
- 一种现代而灵活的集成方法:BiZZdesign消耗来自外部数据源的事件流,并提供外部系统消耗的事件流,从而灵活地在IT生态系统中生成和使用数据。
这就是为什么您将继续以不断增长的速度看到添加到BiZZdesign平台的新功能。敬请关注…
参考文献:
https://www.confluent.io/blog/leveraging-power-database-unbundled/
https://www.confluent.io/blog/turning-the-database-inside-out-with-apac…
https://www.confluent.io/blog/stream-data-platform-1/
原文:https://bizzdesign.com/blog/continuous-architecture-turning-the-database-inside/
讨论:请加入知识星球或者小红圈【首席架构师圈】
最新内容
- 3 days 8 hours ago
- 3 days 10 hours ago
- 3 days 10 hours ago
- 6 days 2 hours ago
- 6 days 9 hours ago
- 6 days 10 hours ago
- 6 days 10 hours ago
- 6 days 10 hours ago
- 1 week 3 days ago
- 1 week 3 days ago