以往有很多来自开发人员的故事,他们浪费了80%的时间试图用Spark、Hadoop、Kafka或其他方法来克服一些故障。如今,这些技术变得足够可靠,并且在成长阶段学会了如何相互合作。
与捕获内部错误相比,基础设施出现故障的机会要多得多。在大多数情况下,即使是基础设施出现问题也可以容忍,因为大多数的大数据处理框架设计都是容错的。此外,这些技术为计算提供了稳定、强大、简单的抽象,并允许开发人员专注于开发的业务。
各种大数据技术
目前正在发生第二次革命,近年来涌现出许多开源和专有技术——Apache Pino、Delta Lake、Hudi、Presto、Clickhouse、Snowflake、Upsolver、Serverless等等。数千名开发人员的创造力和创意已转化为大胆而卓越的解决方案,并具有巨大的协同作用。

以下介绍一个典型的分析数据平台(ADP)。它包括四个主要层次:
•仪表板和可视化–分析数据平台(ADP)的外观,可将分析摘要提供给最终用户。
•数据处理–验证、丰富数据并将数据从一种形式转换为另一种形式的数据管道。
•数据仓库–存放组织良好的数据的地方,例如汇总和数据集市等。
•数据湖–用于存放纯原始数据的地方,是数据仓库的基础。
每个层次都有足够的选择,可满足任何需要和要求。这些技术中有一半是在过去5年内出现的。
关于它们的重要一点是,技术的开发旨在相互兼容。例如,典型的低成本小型分析数据平台(ADP)可能包含Apache Spark作为处理组件的基础,AWS S3或类似的数据湖,Clickhouse作为仓库,OLAP用于低延迟查询,而Grafana用于漂亮的仪表板(见图3)。

提供更强保证的更复杂的分析数据平台(ADP)能够以不同的方式组成。例如,将Apache Hudi和S3引入作为数据仓库可以确保更大的规模,而Clickhouse仍然可以低延迟地访问聚合数据(见图4)。

成本效益
第三次革命性变化是由云层造成的。云计算服务成为真正的游戏规则改变者,它们将大数据作为即用型平台(大数据即服务)进行处理,使开发人员可以专注于功能开发,从而减少对云计算基础设施的关注。
图5展示了分析数据平台(ADP)的另一个示例,该示例利用了无服务器技术从存储、处理到表示层的强大功能。当其技术被AWS公共云托管服务取代时,它具有相同的设计思想。

图5.典型的低成本无服务器分析数据平台(ADP)
值得一提的是,这里的AWS云平台只是一个例子,其他云计算提供商也可以构建分析数据平台(ADP)。
开发人员可以选择特定技术和无服务器。无服务器越多,其可组合性就越好,而越是被供应商锁定,就越是不利。采用特定的云计算提供商的服务和无服务器堆栈上的解决方案可以加快上市时间。在无服务器技术之间明智地选择可使解决方案具有成本效益。
不过,这种选择对初创公司来说并不十分有用,因为他们倾向于利用典型的10万美元的云计算信用额度,并且在AWS、GCP和Azure之间进行跳转是一种很普遍的工作方式,必须提前弄清这个事实。
通常情况下,工程师区分以下成本:
- 开发费用
- 维修费用
- 变更成本
以下一一进行解答。
(1)开发费用
云计算技术无疑可以简化工程工作,它在几个方面产生积极影响:
第一个是架构和设计决策。无服务器堆栈提供了丰富的模式和可重用组件集,为解决方案的体系结构提供了坚实而一致的基础。只有一个问题可能会减慢设计阶段:大数据技术本质上是分布式的,因此在设计相关的解决方案时必须考虑可能的故障和中断,以确保数据的可用性和一致性。另外,解决方案需要更少的努力来扩展。
第二个是集成和端到端测试。无服务器堆栈允许创建独立的沙盒、播放、测试、修复问题,从而减少开发回送和时间。
另一个优势是,云计算实现了解决方案部署过程的自动化。而这个特性是任何成功团队的必备特性。
(2)维护费用
云计算提供商声称要解决的主要目标之一是减少监视和保持生产环境活动的精力。他们试图在几乎没有Devops参与的情况下构建某种理想的抽象。
但是,实际情况有所不同。关于这个想法,通常维护工作仍然需要一些努力。下表显示最突出的种类。