2015关于技术和产品的反思

2015过去好一段时间,想好好总结一下自己和团队的一些感受,算是对技术的反思,也是对过去时光的留念。

##Log first 在年末的时候,我们发现我们2年来对新浪微博API调用有大量的浪费,事实上在动辄几十台服务器24*7运行的年代,想要发现数据的不一致并不容易。

从2015年开始,团队开始广泛的使用ELK(Elasticsearch+Logstash+Kibana),在ELK之上构建的监控、告警工具以及相对应的日常检查流程从很大程度上把之前埋在沙海中的问题及时发现出来,从意识上改变了大数据系统时代“谁知道问题在哪里”心理恐惧。

最新的几个项目,我们开始在构建项目的最初期就搭建ELK,从一个个模块开始就能及时发现数据问题和性能瓶颈,非常值得借鉴。

##Scale out & Realtime system design 多年前设计老的Crawler时就享受了队列解耦系统的甜头,在如今系统解耦和scale out的方案选择更多了。不仅有适应各种场景的各种队列:SQS,Kafka, ZMQ,还有像AKKA这样的分布式actor框架。设计师在设计之初预计可能的性能瓶颈会很大程度决定系统的架构和选型。

Storm、spark、kinesis这些技术高效稳定的支持构建一个实时系统,在当前技术栈的支持下,数据处理的消耗所用的时间应该是会忽略不记的。唯一会影响系统实时性的操作就是持久化。广义的持久化包括存储数据库,也包括写日志、远程调用API等。设计一个实时系统应努力做到:

  1. 存NMB,不要持久化!
  2. 一定要存,要保证是非阻塞的最终worker在做这样的事情。

##Better Product, not bigger product 谁都知道产品要做精,有经验的CTO和产品经理都懂得控制产品功能过于泛化。但是每当你听到这些“真诚”的反馈时可能会去考虑帮助公司的其他团队:

  • “这功能太重要了,不需要很强大,有了我们就可以卖。”
  • “我们如果可以添加这个功能,不仅XX客户可以用,YY客户也可以用,太美好了!”
  • “这个客户占了公司营业额的25%,他们要的功能我们能不能优先满足?”

作为创业公司,销售的压力是永远不会小的,毕竟活下去才有做好产品的机会。但是无论销售的压力有多大,作为产品和技术的负责人还是需要问自己这样的问题:

  • 我的产品到底是做什么的?
  • 产品在想做的事情上完美了吗?
  • 这个功能是产品想做的事情吗?
  • 这个功能是产品现在想做的事情吗?

事实上,最终让产品长青的都不是那些重要客户“急需”的功能(通常是些这样那样的管理功能),反而是一些经过思考和钻研做出的有技术含量的功能。而且根据我的经验,向客户妥协通常最终也不会真的带来太多的销售和用户忠诚度 - 95%的已完成功能都不能征服用户,再加5%快速完成的新功能也多半没戏。

##Auto + User Calibration > Customerization 大数据时代,最终都要接受一点:数据如此之大,你不可能拥有所有。产品或精细挖掘数据,从而失了scalability,或强化覆盖范围,从而失了细节。不同产品本不一样,两者并无优劣,但是越来越多的情况下,后者比前者会更聪明。这里特意写得泛泛,于是这个想法可以应用到更多环境。 既然是"大数据"时代,细节的偏差或者精确需求的不满足通常是可以理解的。于是用自动的方式提供近似最优解是非常不错的做法,若还想有更好的用户体验,把修改结果的权利交给用户就足够了。这样的解决方案会比针对特定用户去做定制化要更容易扩展,即使结果有时候有些便宜,用户有时候要自己整理整理,也是非常值得的。

转载于:https://my.oschina.net/princeicelk/blog/715050

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值