大数据应用正在从概念走向现实,而企业在大数据应用开发时,软件的弹性(Resilient)正在成为决定大数据应用成败的关键因素。弹性差的应用无法应对大规模的数据集,在测试和运营中也缺乏透明度,而且也不安全。

                                                    

·        避免大数据应用在生产环境中掉链子的最佳办法就是在开发阶段就开发弹性应用,例如:健壮性、经过测试、可改变、可审计、高安全、可监控。

·        可以说,开发出弹性大数据应用既是一个技术工作,也是一个哲学问题。Concurrent的SupreetOberoi近日撰文提出大数据应用开发八大基本原则:

·        一、为弹性大数据应用描绘一个蓝图

·        第一步是为企业大数据应用创建一个系统的架构和方法,要处理什么数据?那些类型的分析最重要?软件架构需要承载那些指标、审计、安全和运营功能?

·        另外一些需要考虑的问题:那些技术最关键?哪些技术只是图一时之便?你的蓝图需要准确评估当前架构的问题所在。

·        二、数据规模不再是问题

·        如果应用无法处理更大规模的数据集,那么它就缺乏弹性,弹性应用应当能够处理任意规模的数据集(包括数据深度、广度、频度等),数据弹性还只对新技术的兼容,缺乏弹性的应用需要不断配置修改应用来适应不断更新的大数据技术,对于企业来说是时间、资源和金钱上的无底洞。

·        三、透明度

·        对于复杂应用来说,查找扩展性等弹性相关问题还很难实现自动化。关键是锁定问题的根源所在:是代码、数据还是架构抑或网络问题?并非每个应用都要具备这种透明度,但大一些的平台应当具备足够的透明度,让所有开发者和运营人员都能在问题发生时立刻找到根源并采取措施。

·        一旦发现问题,最为关键的是将找到应用行为对应的代码——最好是通过发现问题的监控应用。大多数情况下,访问代码会涉及到多个开发人员,执行起来流程将非常曲折。

·        四、抽象,事关高效和简洁

·        弹性应用总是面向未来的,通常采用抽象层来简化开发、提升效率,允许采用不同的技术实现。作为架构的一部分,弹性开发的抽象层能够避免开发者陷入技术实现的细节泥潭中。简洁性则能方便数据科学家使用应用访问所有类型的数据源。如果没有抽象技术,产品的生产力会大打折扣,修改成本增高,而用户则为复杂性所困扰。

·        五、安全:审计与合规

·        弹性应用能自我审计,能够显示谁使用了应用,谁有权限使用,访问了哪些数据以及政策如何实施。在应用开发阶段就将这些功能考虑进去是应对日益增长的大数据隐私、安全、治理和控制挑战的关键所在。

·        六、完整度与测试驱动的开发

·        弹性应用的一个基本要求就是不能遗失任何数据,数据完整性的丧失往往会导致严重的后果,例如金融企业会因为程序代码弄丢了一两行交易数据而在反洗钱或金融欺诈调查中遭受处罚。

·        七、数据便携性

·        不断发展的业务需求驱动技术不断做出改变,因此,大数据应用也应当能够在多个平台和产品上运行。最终的目标是让最终用户能够通过SQL和标准API访问数据(无论是否实时)。例如,一个先进的大数据平台应当允许原本由Hadoop存储MapReduce处理的数据,转移到Spark或Tez中进进行处理,而且这个过程不需要或尽可能少地改动代码。

·        八、不要搞个人主义

·       大数据应用的开发不应当依赖某个高手的个人才华,代码应当在多个开发者之间分享、评估和保有。这个策略让整个团队,而不是个人,对应用质量负责。

大数据应用开发八大基本原则相关推荐

  1. 大数据产品开发流程规范_大数据类项目的项目管理流程是怎样的?

    1.大数据落地的难处 首先,难在大数据技术端和市场应用端的信息不对称.大数据技术端可能存储着海量的数据,可能掌握着先进的计算和分析挖掘技术,但是并不了解市场的需求痛点,或者无从发力,或者闭门造车.而市 ...

  2. 年薪不到 25.2 万免费学,廖雪峰的“大数据高级开发”课程第5期开始招生

    8月,开课吧与百度.微软.阿里.滴滴以及创新工场等头部企业展开深度合作.至此,开课吧系统化课程<大数据高级开发工程师>将注入更多"大厂脱敏数据.实战项目.云服务等"新鲜 ...

  3. 年薪不到 25.2 万退学费,廖雪峰的“大数据高级开发”课程招生

    8月,开课吧与百度.微软.阿里.滴滴以及创新工场等头部企业展开深度合作.至此,开课吧系统化课程<大数据高级开发工程师>将注入更多"大厂脱敏数据.实战项目.云服务等"新鲜 ...

  4. 如何选择大数据软件开发公司

    大数据,指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信息资产.大数据相关的创业有其独特性 ...

  5. 大数据产品开发流程规范_大数据开发步骤和流程

    大数据项目开发步骤: 第一步:需求:数据的输入和数据的产出: 第二步:数据量.处理效率.可靠性.可维护性.简洁性: 第三步:数据建模: 第四步:架构设计:数据怎么进来,输出怎么展示,最最重要的是处理流 ...

  6. 大数据产品开发流程规范_大数据系统开发步骤流程是怎样的

    大数据系统开发步骤流程是怎样的呢?下面来为大家介绍 大数据项目开发步骤: 第一步:需求:数据的输入和数据的产出: 第二步:数据量.处理效率.可靠性.可维护性.简洁性: 第三步:数据建模: 第四步:架构 ...

  7. 大数据高级开发工程师——Spark学习笔记(9)

    文章目录 Spark内存计算框架 Spark Streaming Spark Streaming简介 Spark Streaming架构流程 什么是DStream DStream算子操作 1. Tra ...

  8. 大数据高级开发工程师——Spark学习笔记(7)

    文章目录 Spark内存计算框架 Spark SQL SparkSQL架构设计 1. SparkSQL的架构设计实现 2. Catalyst执行过程 SQL 解析阶段 Parser 绑定逻辑计划 An ...

  9. 2018年又传喜报!热烈祝贺王家林大师大数据经典著作《Spark SQL大数据实例开发教程》 畅销书籍 出版上市!

    2018年又传喜报!热烈祝贺王家林大师大数据经典著作<Spark SQL大数据实例开发教程> 畅销书籍 出版上市! 作者: 王家林 段智华  条码书号:9787111591979 出版日期 ...

最新文章

  1. oracle之控制文件恢复
  2. springboot profiles
  3. 【转】dicom通讯的工作方式及dicom标准简介!!
  4. 蚂蚁金服资深总监韩鸿源:企业级数据库平台的持续与创新
  5. Java 多线程 —— 常用并发容器
  6. Ubuntu删除和新建用户
  7. window下版本控制工具Git 客户端安装
  8. Spark性能优化的10大问题及其解决方案
  9. 成员变量与局部变量的区别
  10. php array 删除末尾,PHP array_pop():删除数组末尾的元素
  11. css3漂亮的渐变图案,CSS3 带渐变图案的圆球
  12. 射频信号发生器原理及提高性能的五个方法
  13. LeapFTP3.1注册码
  14. vscode是什么(vscode干嘛用的)
  15. 前度字符串转数组_leetcode每日一题
  16. Cesium实时目标跟踪最新特效教程系列1—实时发亮直线跟踪移动目标
  17. mcnpf5输出结果_MCNP计数心得 -
  18. 做电商网站的主键策略
  19. TIM微秒级计时学习笔记
  20. 《图神经网络综述》Graph Neural Networks: A Review of Methods and Applications

热门文章

  1. 经常使用的eclipse插件
  2. jquery插件:图片上传按比例预览
  3. 2017 湘潭邀请赛JSCPC GJ
  4. 在 Swift 中使用闭包实现懒加载
  5. iOS单例创建的一点疑惑
  6. 让你的JS代码更具可读性
  7. scau 1079 三角形(暴力)
  8. PHP利用CURL_MULTI实现多线程
  9. Nginx虚拟机主机根据不同的域名使用不同的root路径
  10. 活用sersync实时采集日志