架构设计的技术陷阱:如何避免8个致命的错误

在绝大多数架构项目中,往往会出现一系列常见的失误,然而,透彻认识并理解这些失误,我们或许能够有效地降低它们再次发生的风险。

本文专注于探讨技术架构设计领域中常见的失误,而不深入考虑项目交付、人员因素和商业模式等方面。

一、连接!连接!连接!

几乎所有现代平台提供商的一个核心目标在于构建一个“包容性生态系统”,这一生态系统能够让用户在同一平台上执行各类活动。

然而,不容忽视的现实是,并没有一个完美的平台能够应付所有需求!一项成功的架构设计必须始终考虑入站和出站的连接,并且要允许用户利用其他工具来实现其需求。

数年前,我曾参与过一个卓越的大数据平台项目,该平台采用了一种尖端的仓库工具。然而,令人遗憾的是,该平台并未全面支持API调用(尤其是最新的RESTful和开放API),这意味着无法流畅地将数据引入平台。同时,用户必须安装ODBC驱动程序并通过管理员权限配置DSN才能提取数据,这一操作过程异常繁琐。

这就好比是一个思维敏捷的天才,却无法阅读或表达自己一样!

需要考虑的事项:

二、关于“肤浅”或“有毒”的安全架构

虽然人们普遍声称“安全高于一切”,但很少有人从项目的一开始就充分考虑安全架构。安全框架的后期介入有时会导致两种截然不同的情况:

我曾经见过一些处理生产数据的极端案例,其中的安全措施使得环境受到高度隔离,最终用户只能通过一种渠道来查询数据。

毫无疑问,安全确实至关重要,但如果结果是“在安全之下几乎没有(或没有)可用的资源” — 那我认为这已经违背了初衷。

需要考虑的事项:

三、与更广泛基础架构的低兼容性

几乎所有数据平台项目最初都怀揣着宏大的愿景,比如“改变世界”,但实际上,绝大多数项目都在实施过程中做出了一些妥协。

当我们无法淘汰旧系统、必须依赖现有解决方案时,兼容性问题会成为一道难以逾越的障碍!

多年前有一个项目,旨在引入最新的SSIS/SSAS报告和分析工具。最初的计划是将后端的Oracle数据库替换为MS SQL,但由于各种因素,这一计划在半途中被搁置。结果,解决方案最终变得“处于待定状态”,因为SSIS/SSAS并不原生支持Oracle数据库,必须安装Oracle“驱动程序”。前后端之间的兼容性问题带来了大量功能的缩减和性能问题。

需要考虑的事项:

四、无处不在的数据复制

许多最终用户抱怨他们拥有多个数据源,却不知道哪一个是最佳选择。虽然很多架构提案最初的目标是实现“一个真实的版本”,但无可避免的是,数据复制问题仍然屡见不鲜。

典型的数据复制情况包括:

也许你会反问:“那又有何不妥?”虽然多次数据复制存在着一长串潜在风险,包括数据溯源、变更管理、性能和存储成本效益等问题;我在这里举一个简单的例子:

想象一下,本可以通过维护一个单一的日记来管理日常活动;然而,你的妻子创建了一个“家庭”日历,你的秘书从你的单一日记中又创建了一个“工作”日历。或许在多花一些时间进行额外的管理后,这种方式仍然可以运行;但如果你的妻子决定在你的家庭日历中在上班时间购物,而这与你的工作日历发生了冲突呢?

需要考虑的事项:

五、环境同步的挑战

现代架构通常采用严格的环境分段,典型地包括开发(DEV)、用户验收测试(UAT)和生产(PROD)环境。尽管很多公司正在积极采用最新的技术,如公有云(AWS、Azure、GCP)和基础架构即代码(IaC,例如Terraform),但它们仍然将生产环境托管在公司的防火墙之后,即本地环境。

我不会在这里详细讨论持续集成/持续交付(CI/CD)方面的挑战,因为已经有许多专家深入探讨了部署流程的问题。我要强调的是,确保在所有平台之间实现“工具、配置和库”的同步是至关重要的。

想象一下,你在Azure上开发了一款出色的模型,利用GPU进行计算,使用TensorFlow框架和Databricks;然而,当你尝试将相同的模型部署到生产环境时,你发现只有CPU虚拟机,没有TensorFlow,也没有Databricks... 这不是笑话,而是来自真实项目的经验。

需要考虑的事项:

六、未受控的IaC环境

基础架构即代码(IaC)软件,如Terraform,为自动设置和配置虚拟化基础设施带来了极大的灵活性。然而,它也带来了一个未受控的虚拟化基础设施的风险,可能导致出现“隐藏”的或“空闲”的节点。

需要考虑的事项:

七、弱或没有遥测功能

上述问题可能自然引发有关遥测的讨论。与安全框架中的问题一样,遥测方面通常在整个架构设计的较晚阶段才被引入。

一个强大/预配置的遥测组件可以支持架构师在设计过程中,并且最重要的是,它可以提高终端用户对平台的可见性,最终成为平台治理的重要组成部分。

需要考虑的事项:

八、混淆:只通向一方的单程票?

多年来,数据混淆一直是一个备受关注的话题,我确信几乎所有的数据平台都将面临这一挑战,尤其是在从公有云查询本地数据或实施用户权限隔离时。

虽然有许多聪明的机制可以用于数据混淆,但并非所有这些机制都能够实现双通道——也就是以安全的方式启用/逆转掩码算法。

一些解决方案甚至会对物理数据造成永久性的损害,但随后它们必须构建更复杂的机制来与受损数据匹配,这将引入不必要的流程和成本。

需要考虑的事项:

我相信上述常见错误并不能构成一个排他性的列表,希望大家在未来的架构设计项目中避免重复掉入这些陷阱。

展开阅读全文

页面更新:2024-03-12

标签:架构   组件   陷阱   事项   解决方案   错误   环境   工具   项目   数据   用户   平台   技术

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top