面对大数据,在数据和技术都失控的情况下,考虑如何强加对数据的控制和提高驾驭数据的能力都很可能是徒劳的。我们需要重新思考大数据平台的设计哲学,而不是在传统大型软件设计的哲学下做加强和修补。

  拥抱不完美:

  首先,我们必须承认我们的无知和无能,放弃去构建一个全知全能的平台的理想。我们需要思考大数据平台要管什么,更重要的是不管什么。

  我们需要在该放手的地方就放手,我们需要接受甚至是拥抱某种程度的失控。我们很可能就没有办法把所有数据都非常好的管起来,只需要通过平台,新手就很容易把数据情况搞清楚。我们很可能也无法提供完全统一设计风格、交互逻辑的功能界面。我们必须容忍一定的混乱,从而拥抱无限的可能和变化。

  经验与价值的沉淀:

  还是先从数据来看,了解数据最便捷的途径就是找到最了解这个数据的人进行直接沟通。最了解数据的人可能是数据的生产者,也可能是数据的处理者,甚至是消费者。很多情况下完全搞清楚,可能需要与所有相关方都进行沟通后才比较清楚。平台的设计到底是要消除这种直接沟通,还是让这种沟通更有效率呢?

  因为全面文档化是不现实的,那么我们能够考虑的是让目前的方式效率更高。数据平台能够承担的一个功能是更有效的把数据的需求方和了解数据的人连接起来。原来我想找一个了解某个数据的人,都可能需要问好几个人,而要了解清楚一个数据又可能需要找到好几个人,这就需要不断在线下反复的沟通。如果平台能够告诉我哪些人对这些数据最了解,这就可以提升相当多的效率。

  当一个人一位对某个数据最了解,而被人问了很多次问到很烦的时候,他可以把自己对这个数据的总结的文档和FQA放到平台上。对这个数据关心的人也可以写评论谈自己对数据的理解和遇到的坑。当一个数据被使用的越多,那么平台上就可以沉淀出越多关于这个数据的信息,包括最熟悉的人和各种对数据的描述和解读,后来的使用者就越容易掌握这个数据。

  我们可以想象,一个数据平台,经过一段时间的沉淀,有些数据的相关文档会变得十分丰富,而有些数据根本无人问津。当我们不追求全面的控制后,最有价值的信息可能就自动涌现了。当然,当我们要使用一些鲜有人问津的数据时,就需要经历一个比较痛苦的过程。但是只要平台能把这个过程积累到的经验沉淀下来,就是有价值的。

  从标准化到社区化:

  利用大数据是需要探索精神的,大数据平台不应该是一条机械的流水线,把使用者变成一个个没有联系的随时可以替换掉的零部件。因为我们不可能做成真正构建这样有效率的流水线。同时,我们几乎无法用一套客观的量化指标来衡量对数据的利用效率,我们必须寄希望于人的主动精神。

  大数据平台的设计哲学应该以人为中心,尊重人的价值,激励人的探索和创新精神,让对数据有激情的人能够涌现出来,产生更大的声音,同时鼓励和便利人与人之间的沟通,从而提高总体的效率。总之,平台设计思想应该从标准化转为社区化。”

  弹性与开放:

  从技术上来看,我们需要尽可能的适应各种不同的功能和性能需求以及未来可能出现的技术演进。为了解决这个问题,我们需要的不是一个结构复杂包罗万象的技术架构,因为越复杂的系统就越脆弱,就越难以进化。我们也不能绑定核心计算引擎就是Spark或者某几种特定技术,否则这就不是一个能力全面的数据平台。

  很多为自有业务设计的数据平台是可以考虑业务特性来进行特化的。但是我们作为企业服务的提供商,需要考虑的是足够的通用性和灵活性。我们在技术架构的设计哲学上,不应该执着于提供多少强大的功能,而是应该专注于能够提供多少可能性和可扩展性。我们永远无法知道明天客户会有什么新需求,也无法知道会有什么新技术出现。

  因此在技术架构上,应该以容器技术为基础,实现弹性的资源管理,和对技术和功能的开放支持能力。在容器技术的支持下,可以做到不同计算资源的即开即用即回收,可以支持资源的动态智能调整。当一个任务需要Spark时就创建Spark集群,需要TensorFlow就创建TensorFlow集群,任务完成就可以把资源及时回收,任务过程中根据资源使用情况和任务完成要求,动态的增加或者减少资源。

  这种架构下,我们不是将各种技术能力整合封装成各种固定功能提供给使用者将他们的工作傻瓜化,而是向使用者赋能为其开放各种技术能力以及资源能力去创造无限的可能性。这种架构下很难提供统一的界面设计风格、交互逻辑,很多工作也需要使用者开发完成。

  因为我们无法做到对所有的技术进行统一风格的封装,而是把所有的技术直接暴露给了使用者,使用者必须自己使用这些技术来解决问题。当然这并不是说我们不需要做产品设计,只是产品设计的出发点不是创造一套独立完美的体系,而是应该着力于让使用者更容易的将不同的技术方便的组织起来,同时减少在不同技术之间切换的麻烦。

  同时,技术架构也需要考虑不同模块之间如何组织的问题,这个问题遵循服务化的思路应该是已经形成共识,这里就不再过多展开。只是个人觉得在推行服务化之前,我们需要把服务接口的标准、服务总线的技术定下来。有好的服务基础架构,新增、替换、升级不同的模块就变得相对容易。从需求角度确定的功能和模块不可能是百分之百正确的,后续一定会面临着重构和调整的问题。只有做好面对一切变化的准备,才能更好的面对各种不确定性。

  适应而不是约束:

  最后,我想谈谈关于方法论的问题。产品设计方法论先行是对的,但是我们要深入思考什么才是有效的方法论。关于数据挖掘的方法论已经存在十几年了(CRISP-DM),老实说我们在思考的数据科学的方法论并不会有本质性的改变。但我对这些方法论的感觉就是“如何把大象放进冰箱”,或者5步画马法。原则上都对,但是对实际工作的指导意义非常有限,因为魔鬼都在细节中。

  其实面对大数据,不仅我们对数据和技术是失控的,实际上我们如何处理、应用数据的过程在很大程度上也是失控的。整个过程就像在走迷宫,工作步骤分形似的不断展开。任何大的指导原则对于具体工作的指导意义就变得极为有限。

  正因为如此,产品设计应该考虑的是如何适应这种Ad-hoc的工作状态,而不是用一套流程把使用者束缚起来。我们可以提供一些机制便于使用者来梳理手头的工作,但是尽可能不要去强制使用者遵守某种约束性很强的标准或者规范。

  为什么像NoteBook这样设计如此简单的工具能够流行起来,很重要的一点就是给使用者足够自由的工作界面来做任何想做的事情,而且即写即得,便于随时修改策略,同时文档可以根据需要随时插在代码之中。正是这种无结构的扁平性,使得用户可以按照最合适的路径去完成自己的工作,而不是在被设计好的过程中挣扎。

  我们首先必须承认理性的力量是有限的,我们不是无所不能的。面对着数据失控、技术失控和需求失控的问题,我们到底是要想尽一切办法去控制,还是顺应、包容甚至是欣赏这些失控。这是在我们智能数据平台研发道路的起点上需要思考的问题。

大数据平台设计哲学的重构相关推荐

  1. 结构化大数据分析平台设计

    前言 任何线上系统都离不开数据,有些数据是业务系统自身需要的,例如系统的账号,密码,页面展示的内容等.有些数据是业务系统或者用户实时产生的,例如业务系统的日志,用户浏览访问的记录,系统的购买订单,支付 ...

  2. 从0到1搭建大数据平台之监控

    大家好,我是脚丫先生 (o^^o) 大数据平台设计中,监控系统尤为重要. 它时刻关乎大数据开发人员的幸福感. 试想如果半夜三更,被电话吵醒解决集群故障问题,那是多么的痛苦!!! 但是不加班是不可能的, ...

  3. axios下载大文件_用Vue构建一个github“可视化大数据平台”

    GitDataV,是一个github"大数据可视化平台",通过它你可以更直观的看到你在github里的一些数据,(之所以打双引号,是因为我觉得这个还没到大数据可视化的程度).其实我 ...

  4. 酷狗音乐的大数据平台重构

    眨眼就是新的一年了,时间过的真快,趁这段时间一直在写总结的机会,也总结下上一年的工作经验,避免重复踩坑.酷狗音乐大数据平台重构整整经历了一年时间,大头的行为流水数据迁移到新平台稳定运行,在这过程中填过 ...

  5. 基于Hadoop的大数据平台实施记——整体架构设计[转]

    http://blog.csdn.net/jacktan/article/details/9200979 大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底 ...

  6. 软件架构设计原则和大数据平台架构层

    1.软件架构设计的六大原则: 1)"开-闭"原则(OCP) Software entities should be open forextension, but closed fo ...

  7. 浅谈大数据平台架构设计

    全文共3735个字,建议8分钟阅读 近年来,随着IT技术与大数据.机器学习.算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘 ...

  8. 诸葛io的技术架构图_大数据平台的技术演化之路 诸葛io平台设计实例

    作者简介:本文来自诸葛io创始人孔淼的技术分享.诸葛io是业内领先的智能数据决策平台,也是国内早期的数据分析践行者.本文将从诸葛io平台设计实例,分享大数据平台的技术演化之路. 如今,数据分析能力正逐 ...

  9. 常见的大数据平台架构设计思路

    近年来,随着IT技术与大数据.机器学习.算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘.识别.利用数据资产.如果缺乏有效的 ...

最新文章

  1. 跨域、ContentType组件
  2. 缺少物联网杀手级应用的运营商,到底该怎么办?
  3. csdn博客怎么修改字体的大小和颜色
  4. win8计算机安全模式,Win8如何进入安全模式
  5. Window phone用手机来控制电脑的多媒体播放
  6. Jetson TX2板载相机opencv调用打开
  7. phpMyAdmin ‘tbl_gis_visualization.php’多个跨站脚本漏洞
  8. 2020年的海报设计,掌握7种风格,稳了
  9. Java中数字格式化format方法
  10. org.apache.ibatis.builder.BuilderException: An invalid property ‘jdbcType ‘ was found in mapping
  11. 直播盒子接口怎么采集,以下方法。
  12. php聊天功能界面,php实现聊天室功能完整代码
  13. dell电脑无法修复此计算机,不重装系统将DELL戴尔电脑恢复到出厂状态教程
  14. 巧用Excel按照某一列进行整体排序
  15. 变额年金(一、 递增年金)
  16. Logger.error不打印错误堆栈信息问题
  17. java pdf中插入图片
  18. 读取EL1809模块输入信号
  19. idea如何连接达梦数据库
  20. 笑出腹肌,程序员从不撒谎,但注释却会

热门文章

  1. 【转】小议Bug敏感度---Bug敏感度的故事(一)
  2. Firefly是什么?有什么特点?
  3. Using C++ in Eclipse - Program file not Specified problem
  4. 【贪心 和 DP + 卖股票】LeetCode 121. Best Time to Buy and Sell Stock
  5. 剑指offer——面试题23:从上往下打印二叉树
  6. 【以太坊开发】发币指南--基础篇
  7. 【Oracle】用户管理
  8. 54 字符流中第一个不重复的字符
  9. 软工网络15个人作业5--软件工程总结
  10. 《开源网店系统iWebShop2.0模板开发教程》的说明