大数据弹性应用程序开发原则:抽象、效率和简单性因素。弹性差的应用无法应对大规模数据集,测试和运行缺乏透明度,不安全。可以说,开发弹性大数据应用不仅是一项技术活,更是一个哲学问题。Concurrent的SupreetOberoi最近写了一篇文章,提出了大数据应用开发的八个基本原则,整理如下:1.绘制弹性大数据应用蓝图。第一步是创建企业大数据应用的系统架构和方法,处理什么数据?哪些类型的分析最重要?软件架构需要托管哪些指标、审计、安全和操作功能?其他一些需要考虑的问题:哪些技术最关键?哪些技术只是暂时的便利?您的蓝图需要准确评估当前架构的问题所在。2、数据规模不再是问题。如果一个应用程序不能处理更大规模的数据集,那么它就缺乏弹性。弹性应用应该能够处理任意规模的数据集(包括数据深度、广度、频率等),数据弹性仍然只兼容新技术,非弹性应用需要不断配置和修改应用以适应不断更新大数据技术,对企业来说是时间、资源和金钱的无底洞。3.透明度对于复杂的应用程序,发现可伸缩性和其他与弹性相关的问题仍然难以自动化。关键是查明问题的根源:是代码、数据还是架构或网络问题?不是每个应用都需要这种透明度,但更大的平台应该有足够的透明度,所有的开发者和运营者都可以在问题发生时立即找到问题的根源并采取行动。一旦发现问题,最关键的是找到应用行为对应的代码——最好是通过发现问题的监控应用。大多数情况下,代码的访问涉及多个开发人员,执行过程会非常曲折。4.抽象,讲求高效和简洁。灵活的应用程序始终面向未来。抽象层通常用于简化开发和提高效率,允许实现不同的技术。作为架构的一部分,弹性开发的抽象层可以避免开发者陷入技术实现的细节之中。简单性使数据科学家可以轻松地使用应用程序访问所有类型的数据源。没有抽象,产品生产力将受到影响,修改成本将增加,用户将被复杂性所困扰。5.安全:审计和合规性Elastic应用程序可以自我审计,显示谁在使用该应用程序、谁有权使用它、访问了哪些数据以及策略是如何实施的。在应用程序开发阶段考虑这些功能是应对大数据隐私、安全、治理和控制等日益增长的挑战的关键。6.完整性和测试驱动开发弹性应用的一个基本要求是数据不能丢失。数据完整性的丧失通常会导致严重的后果。反洗钱或金融欺诈调查中的处罚。7.数据可移植性不断发展的业务需求推动着技术的不断变革。因此,大数据应用也应该能够运行在多种平台和产品上。最终目标是使最终用户能够通过SQL和标准API访问数据(无论是否实时)。例如,一个先进的大数据平台应该允许Hadoop存储MapReduce处理后的数据,并将其传输到Spark或Tez进行处理,而这个过程不需要或尽量减少代码更改。八、不搞个人“巫术”大数据应用的开发不应该依赖高手的个人才能,代码应该在多个开发者之间共享、评估和保留。这种策略使整个团队,而不是个人,对应用程序质量负责。
