这是覃超过来做客时 Simon 在讲解我们在做的事时顺手画的一个图。我们是一家数据分析公司,通过收集处理用户在客户网站上和应用中的行为交互数据,从中抽取和分析出有效数据,来辅助决策继而增长业务。对于我们而言,技术、产品、市场和销售四部分环环相扣,互为依赖。Sales 是跟客户之间的互动,只有让客户成功,我们才能成功。其内,是品牌和口碑,予人以信任感和认同感,这是 Marketing 的工作。而 Marketing 的传播,是建立在一个优质的产品上,功能、交互、视觉等等,都是为了做一个用户真正需要有温度的产品。产品里面,就是最基石的技术,是内功,不致成为一个金玉其外,败絮其中的产品。从去年认识 Simon 到最终确定一起来做 GrowingIO,也经历了几个月时间。这其中,一直在探讨的就是我们要做一个什么样的产品,要做一家怎么样的公司。但有一点是非常一致的就是,我们都不想做一个靠资源整合的公司,而是做一个强技术驱动的公司。我们相信技术是一个产品一家公司非常非常核心的竞争力,我们希望能建立一只愿意在技术道路中追求极致的军队,一起来做一件有意义又伟大的事情。
之前在 Teahour 1 跟 艾芙 聊天时,谈到百姓网的工程师文化。所谓工程师文化,在我看来有个很重要的特点是对于『工具』对于『自动化』的痴迷,用工具来优化流程、提高生产力。黑客文化有一句很有意思的话,一个程序员的自我修养是 laziness(懒惰), impatience(不耐烦), and hubris(傲慢)。要培养这三大美德,就需要我们工程师能站在更高的维度更高的层次去看同一个问题,自然就有更高的素质要求。Simon 经常说一个词,搞定,也是异曲同工之道。当我们只要求了 1 时,实现者能不能跳出需求,抽象升华,面面俱到,给出 10 的结果,并且正确的判断怎样才算是 10,都是非常显功力的事。
Be Lazy in an industrious way.
Be Impatient in a very patient way.
Be Proud in a very humble way.
今天,我们想要创造一个工具,让目前大多数企业需要一到两周才能完成的分析工作能在一到两分钟之内就完成,极大的提升效率。所以,GrowingIO 是希望能在云端去复制和创造企业自己的数据科学家,而且是以非常简单直观的方式。去年 Teahour 曾邀请过 Paypal 的数据研发部门的经理丁磊来讨论 数据科学的前世今生 。丁磊介绍了数据科学是由三方面组成,科学、工程和商业。科学是指统计、模型、机器学习这些东西,一些分析方面比较科学化,并不纯粹是机器学习,而是建立在一套理论依据上。工程是软件实现,Hadoop,Spark,实时计算,敏捷实践等。商业是指业务,单单的科学和工程并不能直接的去提高企业收入,增加业绩,但是一旦把业务把商业紧密结合进来,就能直接影响到企业的销售业绩,爆发非常大的能量。
从年初开始调研整个市场,拜访了不少公司,明显感觉到数据运营,用数据驱动业务增长的观念已经深入人心。然而怎么做,大部分人都并不清楚。究其原因,就在于业务、技术和分析这三个部门的割裂,没有人能从全局的角度去鸟瞰整个事情,各自守着自己的一片天,甚至互相推诿相互倾轧。这更坚定了我们开发一个卓越易用的数据分析产品,帮助互联网企业提振业绩的决心。
从技术上而言,我们目前的整个技术方案和很多大公司的内部分析团队的技术栈没无太大区别。整体上,我们的系统分两个部分,一是数据流,二是用户产品。
首先是数据流,我们支持 iOS、Android 和 Web 三个平台,用智能化的页面分析手段,收集用户行为交互数据,减轻集成方压力。前端 API 层,接收数据并简单处理后存放到 Kafka 中。然后有三类不同的 Kafka Consumers,根据数据的用途不同分别流向不同的地方,比如在 ElasticSearch 存储里最热的数据,建立全文索引,用于后续的自由查询。HBase 则是存储所有匹配的暖数据,用于报表的呈现。而 HDFS 里面会保留所有冷数据,便于后续需要的时候使用。目前,除了在自己优化改进这些系统,我们也在尝试其他方案,如 Samza、InfluxDB。
第二块是用户产品。虽然我们是一个面向企业的产品,但是我们还是要打造一款简单直观具有精致体验的用户级产品。Simon 经常在说我们要做一个艺术品,虽然夸张但也不假。我们相信,企业软件也可以非常 sexy,即使是在业务模型复杂的数据分析领域。所以我们会非常关注产品和设计的细节,性能的优劣等。目前后端使用了 Scala 上的 Play 框架 2 ,同时拆分了数据代理层提供数据层上的统一 API 服务,用的是 Scalatra 开发的。前端部分,目前我们 JS 框架主用 React,CSS 用 Less,打包用 Webpack,至于 ES6 还是 Coffee 还是 Pure JavaScript 倒是没做太大限制。前端还有很大一块工作是数据可视化,如何呈现有意义的数据是个非常有意思的事情,库方面我们有在使用 D3 和 Highcharts。
虽然技术栈一致,但是作为一个对外的产品,要考虑的东西跟内部产品的复杂度就完全不同了。我们在不远的将来希望能做到:
事情很难,尤其是对于一个还很小的创业团队来说,不过有挑战的人生才好玩,尤其是下面这样的一只团队,是不?Nothing is impossible. 如果你是希望在技术上登峰造极的人,如果你是遇到越难问题越兴奋的人,如果你是在代码上极其有洁癖的人,如果你是追求完美容不下一个沙子的人,请猛烈戳这里。
喔,最后说一句,我们不做数据的搬运工,我们不卖数据,第一方数据只服务第一方是我们做事的最基本底线。