跳转到主要内容
Chinese, Simplified

从数据工程到精通数据体系结构


数据工程是一个动态的领域,需要对技术技能和总体原则有深入的理解。这种转变的标志往往是从关注眼前的技术挑战转变为从更广泛的角度看待数据架构。


如果你是数据架构师,想学习一些基本实践——这篇文章就是为你准备的!


Joe Reis和Matt Housley的《数据工程基础》对健全的数据架构的构成进行了详细的探索。本文深入研究了这些原则,为数据架构师提供了全面的理解,并增加了我的个人经验。

选择常用组件的艺术


在数据架构中,选择常见组件(如Git工具或对象存储)至关重要。这些组件在一个组织内的多个团队中共享,应满足广泛的需求。关键是在提供通用、一刀切的解决方案和允许定制以解决特定领域的挑战之间找到平衡。这种平衡确保了效率和创新,而不会导致团队在解决已经解决的问题上浪费资源。


例如,在整个组织中共享共同的实现原则可以帮助您专注于真正的问题。但有时过度依赖通用工具原理会拖你找到变通办法,因为有些可能不适合你的设计。因此,在现有的v/s新之间找到正确的平衡非常重要。


设计时要牢记失败


考虑到失败进行设计是创建健壮数据体系结构的关键策略。这种方法并不是简单地认识到可能会发生故障;它主动地将潜在的故障纳入设计过程。目标是创建不仅能承受故障,而且能高效可靠地从故障中恢复的系统。这种弹性对于保持持续运营和服务完整性至关重要,即使面对意外中断也是如此。


衡量系统弹性的关键指标

  • 可用性:此指标侧重于正常运行时间,主要衡量系统运行和可访问的频率。高可用性表明系统可以承受较小的中断,而不会出现显著的停机时间。在数据体系结构中,实现高可用性通常需要创建冗余系统和故障切换机制,以确保如果一个组件出现故障,其他组件可以无缝接管。
  • 可靠性:该指标评估系统故障发生的可能性。高度可靠的系统是指随着时间的推移,故障次数较少的系统。提高可靠性可以包括使用高质量的组件,实施稳健的错误检查和验证流程,以及在各种条件下进行彻底测试,以识别和纠正潜在的故障点。
  • 恢复时间目标(RTO):RTO是指故障发生后服务可能停机的最大可接受时间长度。这一目标有助于设计系统从故障中快速恢复的能力。较低的RTO需要更具弹性的基础架构和更快的故障切换过程,这可能涉及到针对各种故障场景的自动化恢复过程和预定义的行动计划。
  • 恢复点目标(RPO):RPO是指以时间为单位测量的可接受的最大数据丢失量。例如,30分钟的RPO意味着系统在发生故障时丢失的数据不应超过30分钟。实现这一目标需要实施定期备份和同步机制,以确保数据在系统停机期间不会严重丢失或损坏。
     

在数据体系结构中实现故障感知策略

要在设计时考虑到失败,架构师必须超越传统的系统设计,考虑一系列潜在的失败场景。这涉及到:

  • 进行风险评估:识别系统内的潜在故障点并评估其影响。
  • 构建冗余:创建重复的系统或组件,以便在发生故障时接管。
    实施有效的备份和恢复解决方案:定期备份和高效的恢复计划可确保将数据丢失降至最低并快速恢复服务。
  • 持续监控和测试:定期监控系统性能并进行压力测试,以在漏洞导致实际故障之前识别漏洞。
  • 教育团队:确保所有团队成员了解潜在风险以及在发生不同类型故障时应遵循的程序。
     

有效地扩展体系结构


可扩展性是现代数据体系结构的基石,尤其是随着云服务的出现。挑战在于设计能够根据需要进行放大或缩小而不会变得过于复杂或昂贵的系统。选择更简单的解决方案(如带有故障切换节点的单个数据库)通常比对复杂集群进行过度设计更有益,尤其是当这些解决方案同样有效地满足业务需求时。
数据体系结构的领导地位
数据架构领域超越了单纯的技术技能,涵盖了领导力的一个重要方面。数据架构师的角色是多方面的,不仅涉及数据系统的设计和管理,还涉及领导和培养数据工程团队的成长。这种更广泛的视角对于营造一个创新、敏捷和适应变化的环境至关重要。

数据体系结构中领导力的关键方面

  • 指导和团队发展:数据架构师的重要职责是指导和发展团队。这包括识别团队成员的优势和劣势,并为他们提供发展技能的机会。建筑师必须创造一个鼓励学习、公开分享知识的环境。这可以通过正式的培训课程、合作项目或一对一辅导来实现。
  • 做出复杂的决策:数据架构师经常面临做出对组织的数据战略和运营具有深远影响的关键决策。这些决策可能与技术堆栈的选择、数据建模、数据安全策略等有关。做出这些决策不仅需要技术知识,还需要对业务环境的深刻理解、远见以及权衡各种因素和潜在结果的能力。
  • 培养架构思维文化:建筑思维涉及到从问题和解决方案对整个系统的更广泛影响而不是孤立的部分来看待它们。数据架构师必须将这种心态灌输给他们的团队,鼓励他们看到全局。这意味着要了解单个组件如何适应更大的体系结构,更改如何影响系统,并在工作的各个方面考虑可扩展性、性能和安全性。
  • 鼓励创新:在快速发展的数据技术领域,保持创新至关重要。数据架构师应该以身作则,鼓励团队内部的创新文化。这可能涉及探索新技术,试验新的数据解决方案,并不断寻找改进现有系统和流程的方法。
  • 适应变化:适应不断变化的需求和技术的能力在数据体系结构中至关重要。该领域的领导者需要具有灵活性和弹性,能够指导他们的团队完成转型,无论是采用新技术、方法论,还是适应业务战略的转变。

领导力对数据工程团队的影响


数据架构师提供的领导力直接影响数据工程团队的绩效和生产力。有效的领导可以带来:
 

  • 一个更熟练、更多才多艺的团队,能够应对一系列挑战。
  • 一个重视新想法的协作和创新的工作环境。
  • 改进了与技术和业务目标相一致的决策过程。
  • 积极主动地解决问题和进行系统设计。
  • 一个能够快速适应新技术和不断变化的业务需求的敏捷团队。


优先考虑体系结构中的安全性


在数据体系结构领域,优先考虑安全性不仅是最佳实践,也是必要的。处理大量数据(通常是敏感和机密的)的性质要求高度重视这些资产的安全。数据的完整性、可用性和机密性是任何数据驱动系统的信任和功能的核心。


云服务中的共享责任模型

  • 定义:共享责任模型是云计算中的一个基本概念,它描述了云服务提供商和云服务用户(在这种情况下,是数据架构师或开发人员)之间的安全义务划分。
  • 提供商职责:云服务提供商通常负责保护支持云服务的基础设施。这包括容纳这些服务的物理硬件、网络和设施。
  • 用户责任:另一方面,用户(数据架构师或开发人员)负责保护云中的数据。这包括管理访问控制、保护数据完整性、加密数据以及确保遵守相关法规。

零信任安全原则

  • 概念:零信任模型是一个安全概念,其核心是组织不应自动信任其范围内外的任何东西。相反,在授予访问权限之前,他们必须验证任何试图连接到其系统的东西。
  • 实现:实现零信任模型需要严格的身份验证、多因素身份验证、严格的访问控制以及对网络和数据访问的持续监控。该模型假设网络内外都可能存在威胁,因此需要对每个用户和设备进行身份验证和授权。


数据体系结构中的主动安全立场

  • 持续警惕:积极主动的安全立场意味着不断提高警惕并更新安全措施。这不是一次性的设置,而是一个持续的过程,以适应技术和网络安全领域的新威胁和不断变化的环境。
  • 防止违规:通过优先考虑安全性,数据架构师有助于防止可能导致重大财务损失、法律后果和组织声誉受损的数据违规。
  • 维护数据完整性:稳健的安全措施确保了数据体系结构的完整性,这意味着数据在其生命周期中保持准确、一致和可靠。

将FinOps纳入建筑战略


近年来,包括数据架构在内的软件开发行业已经发生了向现收现付模式的重大转变。这种变化主要出现在云计算服务中,改变了处理成本的方式,从传统的资本支出转向运营支出模式。在这种设置中,组织为其使用的计算资源付费,而不是投资于大额的前期硬件和软件成本。


数据架构师在财务管理中的作用

  • 理解财务影响:数据架构师现在不仅必须精通技术方面,还必须精通理解和管理其体系结构决策的财务影响。这项新的职责需要融合技术知识和财务敏锐性。
  • 做出平衡的决策:在这个模型中,数据架构师做出的每一个决策都可能产生直接的财务影响。关于数据存储、处理能力、数据传输和其他云服务的选择需要与其成本相平衡。挑战在于优化体系结构以实现性能和成本效益。


合并FinOps的主要考虑因素

  • 评估权衡:数据架构师必须不断评估各种选项之间的权衡。例如,关键应用程序可能需要使用更昂贵、更高性能的存储,而不太关键的数据可以存储在更便宜、更慢的存储上。
  • 监测支出:密切监测支出至关重要。这包括跟踪在云服务上的支出,并了解这些服务的定价模型。在这方面,提供实时监控云资源使用情况的工具和仪表板可以发挥重要作用。
  • 实施成本控制措施:建筑师必须实施控制成本和防止超支的措施。这可以包括设置预算警报、优化资源使用,以及根据不断变化的需求定期审查和调整资源。
  • 经济高效的建筑设计:设计经济高效但满足所有功能要求的建筑是一项关键技能。这可能涉及到选择正确的云服务组合、利用保留实例或对非关键工作负载使用现货定价。
  • 了解定价模型:云服务提供商经常更新其定价模型。了解这些变化并了解它们如何影响总体成本,对于数据架构中的有效财务管理至关重要。

松散耦合系统的重要性


在数据平台的上下文中,松耦合系统是指每个组件或服务是独立的,并且主要通过定义良好的接口或API(应用程序编程接口)与其他组件或服务进行交互的设计。这种设计与紧密耦合的系统形成了鲜明对比,在紧密耦合系统中,组件是相互依存的,其中一个组件的变化会对其他组件产生重大影响。


松散耦合系统在数据体系结构中的主要优势

  • 增强的灵活性和可扩展性:松散耦合的系统允许根据需要放大或缩小单个组件,而不会影响整个系统。这种灵活性在工作负载可能不可预测和变化的数据平台中尤其有益。
  • 更容易的维护和升级:由于每个组件都独立运行,因此可以在系统的一个部件上执行更新或维护活动,而不会对其他部件造成停机或中断。这种模块化对于保持数据服务的连续可用性至关重要。
  • 改进的故障隔离:在松耦合系统中,一个组件的故障不太可能级联到整个系统。这种隔离有助于更快地识别和解决问题,从而提高数据平台的整体可靠性。
  • 促进创新和集成:松散耦合的体系结构可以更容易地集成新技术或第三方服务。团队可以在系统的受控部分试验新功能或更新,而不会危及其他组件的稳定性。
  • 降低系统交互的复杂性:通过使用定义良好的交互接口,松耦合系统简化了不同组件之间的通信。这种简单性降低了出错的可能性,使系统更易于理解和管理。
  • 启用敏捷开发实践:在这样的环境中,不同的团队可以同时处理不同的组件,而不必相互干涉。这种并行开发加速了整个开发过程,与敏捷方法很好地保持一致。
  • 支持更好的风险管理:由于组件是独立的,与更改或新实施相关的风险仅限于特定领域,而不是整个系统。这种遏制使管理和减轻风险变得更加容易。

数据平台中的实施注意事项

  • 定义清晰的接口:建立清晰稳定的API或接口对于确保不同组件之间的平滑交互至关重要。
  • 选择正确的技术:选择支持模块化和互操作性的技术和平台对于构建松耦合系统至关重要。
  • 采用微服务架构:在许多情况下,为数据平台采用微服务体系结构与松耦合系统的原理非常一致。
  • 定期测试和监控:对每个组件及其接口进行持续测试和监控,确保任何更改不会对系统的其他部分产生不利影响。


结论:作为一名数据架构师不断发展


总之,一个成功的数据架构师必须遵循一系列原则,从选择通用组件到将财务运营纳入其战略。这个角色需要融合技术专长、战略思维和领导技能。随着数据工程领域的不断发展,数据架构师的方法和实践也必须不断发展,使其成为一个不断发展和有回报的职业。

原文地址
https://medium.com/dcsfamily/data-platforms-good-architect-bad-architect-cb9bdee35c34
本文地址
Article

微信

知识星球

微信公众号

视频号