美文网首页
开源的层级思考

开源的层级思考

作者: joe955 | 来源:发表于2017-06-10 11:18 被阅读0次


开源的几个层级

http://www.jianshu.com/p/143aae61327e

开源的意义是什么?

公司或个人,对于开源的基本诉求有两个,1、证明自己很牛逼 2、证明自己很牛逼并且可以帮你解决问题。第二点的修为,就看各家各显神通了,因为商业模式就在这儿,譬如Red Hat。

如何更好的参与开源活动,通过开源提升自身竞争力,首先要先分析开源活动中涉及的技术点、工具、流程、角色。搅和在一起会分析肯定行不通,也想不透彻,接下来我们准备用分层的方式对开源活动进行思考(每个开源项目各有特点,下文只列出了通用的惯例,如有遗漏、错误还请多多指点,多谢)。

产品研发无外乎人、物、事,从不同的维度思考开源,我们可以得出不同的结论:

1.从传统研发的角度

传统研发、瀑布式模型,对流程讲究,对设计讲究,所以层级也讲究,恨不得把OSI7层模型拿来用。

1.1.开源代码

代码级别开源——代码剪贴即可用,如何把合适的代码改造并融入到现有的系统架构中,是使用者需要思考的问题。遇到编译问题、不同运行环境的适配问题还是需要自己解决。

1.2.开源类库(组件)

STL、glibc,比直接google到的代码段要高一个层次,具备完整的API体系和测试用例。曾经用过德国的muParser做数学表达式解析,预估1周的工作半天搞定,但带来的问题也是开源共有的问题,后续再细说。

1.3.开源框架

Spring、Django、Flask、AngularJS,实现了专业领域的通用基本功能。拿现在最热的深度学习框架TF为例,开发人员不需要太多的编码量就可以实现手写数字识别。当然,调优工作、定制内容还是需要根据项目的不同,做后续的开发。

1.4.开源平台

以虚拟化相关的Linux、OpenStack等为例,提供裸金属、虚拟化的基础资源。这块很有意思,内核都没法直接商用,发行版本之间的差异需要选型时关注。

1.5.开源软件

Nginx纯粹作为端口映射时候,我们理解为软件,当拉取了企业分支维护、以web前端服务器形态作为产品一部分时,我们认为是webSvr框架。

1.6.开源架构

和框架不同,架构是思想层面的,类似c++编程思想。

在开源领域,影响最深的是Google的那三篇论文。Google没空把产品开源,只是开源了架构思想,却让业界忙乎了很长时间。

2.DevOps的角度

在DevOps工具链中有自研、外购、开源几种,以开源的为例,CI的Jenkins,基本上拿来就用,需要一定量配置工作,除非遇到真的很特殊的情况,一般建议从开源社区寻求解决方案,如Jenkins的plugin。不要重复发明轮子!此外,在思考自己项目的“特殊需求”是否合理?

2.1.Dev tools

版本控制、代码托管、评审、自动化构建测试,目前业界都差不多,不多说了,不然太low。

2.2.CICD

这块用的最多的是Jenkins,从Hudson开始跟,直到写点plug-in贡献社区,经历了这么长时间,还没有发现有啥不好的地方。。而且Jenkins也随着容器技术升温、迅速退出容器CI、CD相关的支持,社区活跃度真的很重要!

2.3.Ship

和持续集成有差别,和Deploy也有点不同,借用docker的build、ship & run里的ship表示一下。(其实,我想说shit,因为这里问题最多~)

Ship级别的开源,如configure,代码下载后,通过脚本自动识别当前运行环境,编译并部署到环境中,小而美的开源项目非常适合,大型应用有点力不从心。另外,各种依赖的处理也会让这个过程变得很微妙。Java应运而生,容器、微服务目前也大是红大紫,

2.4.Ops

运维这块内容很多,可以分为部署、配置、监控、分析。Ansible、zabbix、chef等等在我们的开发环境中都有使用。

目前在用ELK做一些日志维护分析上的探索。

3.从项目运营的角度

项目运营开源,这有点不太好理解,简单说就是将运营公开透明。Open Source, 关键是Open。

大家可以参考"Thoughts on Running an Open Source Project",这篇文章

阐述了开源运营中的几个关键点:社区、Roadmap、Code Contributions、README,说明了不少问题。其中项目透明化是作者着重提出的,这和我们一直强调的公开透明原则不谋而合。

文章链接:https://lornajane.net/posts/2012/thoughts-on-running-an-open-source-project

此外我们再做如下几点补充:

3.1. 提案

结合Code Contributions,github的pull request,、issues,以及jira可以解决一部分轻量proposals。但提案的问题在于频繁讨论,需要有固定的地方存放,并定期更新提案内容。

目前,没有特别好用的提案IT系统支撑,在wiki上创建提案页面是比较主流的做法。

3.2. 讨论

从投递率、归档性看,Mailing List首选。统一的转发邮件地址对于很多大公司的邮件白名单,也省了不少事儿。

3.3. 会议

例会、meetup、峰会(待补充)

4. 后记

开头提到了人、事、物,文章介绍了"事"和"物",还剩开源中的"人",也就是各个不同角色在开源活动中的工作内容。这次不打算展开,主要角色都知道,不同项目会有差异,等我梳理好了,在和大家分享。

最后,感谢DBA+社群的发起人杨志洪老师,没有他的催促,我的简书不会开张。

相关文章

  • 开源的层级思考

    开源的几个层级 http://www.jianshu.com/p/143aae61327e 开源的意义是什么? 公...

  • 学习层级的思考

    文丨歌斐 今天在读设计师自学的文章中知道了布鲁姆教育目标分类法,感觉很受用,于是百度了一下。然后发现百度百科写的最...

  • 开源的3种层级别

    第一级:一份时间售卖一次 例:电话销售产品 第二级,一份时间售卖多次 例:会议营销产品 第三级,购买他人的时间,低...

  • 层级化思考

    问题的层级 我们都面临过这样的情景,大家在一起交流对问题的看法,随着问题有表入内的去分析,每个人讲的都有道理,但是...

  • 层级思考法

    我先问你两个问题: 如果你认为自己是一个非常负责的人,你会如何工作? 如果你认为自己是一个非常洒脱自由、无拘无束的...

  • 3个思考段位:如何进行高段位思考?

    按思考的展开和深入程度,思考过程本身可以分为三个段位(层级)。只有少数人会跳出第一个段位思考。 打扑克牌的思考层级...

  • 28-选择关键词

    构建某个主题的思考,应该专注于笔记层级。 在笔记层级当中,需要选择关键词,方便存储或提取。 笔记管理者,他们所思考...

  • 开源思考

    我的开源来源,最好是有空间的,对自己成长有帮助的,以及自己喜欢的。 考虑思路1.淘宝,虽然烂俗,但比较简单 ...

  • 关于能量层级的思考

    备谷第六天,一天最大的感受是让你觉得累得,不是你做了多少运动,不是干了多少活,不是做了多少事,甚至在某种程度上都不...

  • 系统思考的层级结构

    系统思考的层级结构 系统思考是用来分析各种因素的交互影响,每一个要素都不是孤立存在的,要素对周围的环境有影响,周围...

网友评论

      本文标题:开源的层级思考

      本文链接:https://www.haomeiwen.com/subject/ucnlfxtx.html