专栏首页祝威廉开源选型中的基因论

开源选型中的基因论

随着开源组件的日益增多,整个开源社区就像一个超级大的沃尔玛,琳琅满目的开源组件让人挑花了眼。这里,我们就谈谈如何进行选型的问题。

传统的选型方式

一般而言,我们会按如下的方式进行选型验证:

  1. 功能上是否契合。也就是我的需求能通过该组件来完成
  2. 性能如何(会做一些压测)
  3. 稳定性如何
  4. 社区活跃度如何
  5. 是否能方便和其他的组件配合

如果能通过上面的几条,我么可能就会采用该套技术了。然而这往往会导致很多误用。比如很多人就把zookeeper当存储用了,因为倒也满足上面的一些需求。

基因论

这里的基因指的是,某个开源组件是因为什么而诞生到这个世界的。仍然以zookeeper为例,我们可以说zookeeper 是为分布式协调而诞生的,他的基因使得它适合做这一块的工作。但是zookeeper的很多特性又可以利用在很多领域:

  1. 配置变更通知
  2. 集中化的存储

于是有大量的应用围绕这两个功能点开发。这其实就是一种误用。比如Storm 拿 zookeeper存储偏移量,这样就会涉及到频繁的更新,这其实就是不合适的。或许这种场景HBase/Redis之类的存储会更合适些?

我们在选型的过程中过度的考虑了 功能是否匹配,而忽略了开源项目本身的基因,这必然会导致能够实现功能,但是却带来一些不可控的问题。

这里还有一个典型就是Docker,各种滥用导致各种问题,镜像存储问题,虚拟隔离的安全性问题等。如果知道Docker的基因其实是无侵入性的为应用加上资源限制,以及附带运行时环境,就不会各种折腾了。

所以在做选型的时候不妨问问: 我选用的开源组件是为了解决我这个问题而设计和诞生的么?我用的场景是不是吻合他的基因?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何让开源项目成为你的良师益友

    现在大部分公司产品的基石都是开源项目,从开发包到产品本身。我甚至在想,没有开源项目的世界将会是一个什么样的世界。互联网的共享精神让互联网得以如此的快速的发展。

    用户2936994
  • MLSQL v1.1.7.1 Bug修正版发布

    v1.1.7发布后,很快就有小伙伴说在Python使用过程中存在并发创建环境存在问题,例如ISSUE-915, 除此之外还有local本地文件冲突等引起的莫名问...

    用户2936994
  • 高昂的PR,开源的困惑

    我是个急性子,所以没怎么成功给社区提过PR,除非那个项目是我自己的,或者社区让我有直接Merge的权限。好比之前吐槽完SDL开发太慢后,自己直接fork了一份,...

    用户2936994
  • 快速搭建属于自己的mongodb数据库

    前言 MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写,支持Windows,Linux,OSX,Solaris等平台,默认端口为27017,是...

    okaychen
  • 创新驱动为本,商业模式为王:美国八大互联网龙头调研和投资研讨会报告(上)

    调研美国八家互联网龙头后,我们深刻感受到互联网企业的基因在于不断站在技术浪潮之巅,突破自我来推动进步;要在强手如林中胜出,商业模式非常重要,先导入流量再挖掘价值...

    小莹莹
  • 你所不知道的Python | 字符串连接的秘密

    在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,Python字符串的秘密,方便以后查阅。

    马哥linux运维
  • java之学习集合带All的方法的案例分析

    吾爱乐享
  • Java 集合深入理解(11):LinkedList

    今天心情鱼肚白,来学学 LinkedList 吧! 日常开发中,保存一组数据使用的最多的就是 ArrayList, 其次就是 LinkedList 了。 我们...

    张拭心 shixinzhang
  • Go学习_21_Golang代码性能检测Benchmark

    Golang的testing包中除了单元测试testing.T之外,还提供了testing.B的Benchmark性能测试,Benchmark测试主要是通过测试...

    码农帮派
  • Java8 的 String Concatenate 比 StringBuilder Apporaches 慢?

    问题1: 文章说,大量 String + 连接比 通过 相应的StringBuilder 连接慢,要是在 Java7 之前我信,可以在 Java8 以及之后,...

    shengjk1

扫码关注云+社区

领取腾讯云代金券