开源选型中的基因论

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

传统的选型方式

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

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

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

基因论

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,079评论 25 709
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,717评论 15 147
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,064评论 19 139
  • 1、关于生活方面: (1)06:30开始从黄石坐车到通城并在车上收听《精英日课》。 2、关于读书与自我迭代方面: ...
    清风_bd61阅读 2,981评论 0 0
  • 少则得,多则惑。读书立身处世,理念东西不在多,而在精通。精通之后,化为血液运用,才能有效。 社会越发展,所得东西呈...
    栖居侠客阅读 1,333评论 0 0

友情链接更多精彩内容