架构师指南:大数据的新最佳实践之APM
应用性能管理(APM,全称Application Performance Management)并不是一门新兴学科,但它是大数据的一个新的最佳实践。采用先进应用程序的方法来最大限度地利用集群资源,同时最大限度地降低基础架构的TCO。对于架构师而言,这意味着需要设计大数据架构以满足速度,可靠性和成本效益方面的新业务需求,并且需要与架构标准的性能,可伸缩性和可用性保持一致。
APM的演变
大数据正在从实验项目趋向成为提供一系列大型数据应用的关键任务数据平台。企业期待这些大数据应用(如ETL加载,商业智能BI,分析,机器学习,物联网等)推动战略业务价值。
随着大数据应用转向生产,性能预期也需要到生产级别。业务需要几秒钟而不是几小时的答案,硬件和资源需要不断优化成本,并且需要保证期限/SLAs。这意味着APM需要成为大型数据架构的战略组件,以消除与低性能,可用性和可扩展性相关的风险和成本。
目前的挑战
根本问题在于,大型数据堆栈由于其分布式特性而变得复杂,其中基础架构,存储和计算分布在许多层,组件和异构技术中。无论具体体系结构如何(即传统流式分析,Lambda,Kappa或Unified)都存在此问题。从生产大数据平台和运行它的应用的角度来看,每件事都必须像发条一样运行:ETL作业必须以固定的时间间隔进行;用户期望仪表板实时更新;面向用户的数据产品必须不断演进。但是从底层平台的角度来看,这个应用并不是一项孤立的工作,而是一系列通过大数据栈进行处理的步骤。例如,欺诈检测应用程序(即数据使用者)将由来自Spark SQL,Spark Streaming,HDFS,MapReduce和Kafka的许多系统链以及每个系统中的许多处理步骤组成。因此,跨所有这些层管理性能和利用率的整个过程呈指数级复杂。
这种复杂性使得实现应用性能管理服务非常困难,该服务提供一个单一视图来管理整个堆栈中的性能和利用率。特别是,整个堆栈中没有合理化的工具来实现全面的方法来保证性能和最大化利用率。相反,性能和利用率信息分散在不连贯的度量标准中,埋在日志中,或分布在性能监视/管理工具中,这些工具只提供了不完整的基础架构视图,而不是完整的堆栈视图。
大数据架构师面临的挑战
因此,跨应用程序,系统和基础架构规划,实施和扩展性能和利用率的过程不是生产就绪的。这一挑战在Gartner 2017年3月针对Hadoop的市场指南中提出。该报告指出,“将Hadoop从小规模的试点项目扩展到大规模生产集群,涉及许多企业尚未准备好的操作知识方面的加速学习曲线。”
生产准备缺乏跨越业务部门,开发人员和运营部门的多个领域。它的核心是它不可能实现一个多租户集群模型,在这个模型中,一个小的Ops团队需要支持大量的应用程序,业务单元和混合工作负载以及SLA绑定作业的组合。数据发现。最终会影响大数据和业务价值实现的采用。
大数据架构师清单
架构师应该发挥关键作用,确保大数据平台的设计用于生产。架构师可以确保大数据平台能够在时间和预算限制内满足业务需求,并确保架构随着时间的推移而适应新的业务需求。以下架构师的清单可用于规划,操作和扩展大型数据平台,以管理性能,利用率和成本:
试图构建和部署的应用程序的类型是什么?
应用程序是SLA绑定的还是临时的?如何优化成本效益的工作量?
哪些系统最适合应用程序(例如Spark,Hadoop,Kafka等)?
哪种架构方法最适合(例如,Lambda等)?集群是内部部署,云中还是混合部署?
有多少并发用户需要在同一集群上运行而不会耗尽资源?24小时内需要在同一群集上运行多少个应用程序?吞吐量将如何优化?
存储应该如何分层?
集群需要多少个节点?需要哪些基础架构来确保可扩展性,低延迟和性能,包括计算存储和网络功能?
需要制定哪些数据治理政策?
开发,QA和生产将如何开展?
集群需要多少成本才能运行?该业务将如何收回?
运营阶段可以分为4个阶段。分阶段的方法有助于逐步形成和扩展大数据应用的成功实施和投资回报。
对于每个阶段,应用以下一组关键问题:
什么是应用的SLA?他们如何得到保证?
什么是应用的延迟目标?他们将如何得到满足?
Ops如何能够支持多租户群中的业务部门和用户?它将如何以自助服务的方式监控应用程序?Ops如何解决问题?
用户通常何时登录和注销?多久?
不同的用户群体的行为有所不同吗?用户活动情况如何随时间变化?
如何跟踪多租户群集中的成本?我如何将它们分配给项目,业务单位,用户,应用程序等?
数据治理策略将如何实施?
结论
大数据很难。有了这么多新技术和新兴层面,大数据栈非常复杂。处理这种复杂性的唯一方法是采用以应用为中心的方法。但单靠这种方法还不够,因为很难对应用的性能进行清晰而一致的了解。那么,APM就是答案了。
要正确推出APM,需要进行彻底规划。一旦你完成了上述清单,你将准备好执行APM以获得更大的投资回报。