开源那些事儿

数人云容器管理面板 Crane开源已经一周啦,短短的一周时间里,我们收获了很多建议与帮助,在这里表示由衷的感谢。高兴之余,小数与大家聊一聊开源的那点事儿(没错这是一个饱含感情的科普文)。

何谓开源

开放源代码软件(Open Source Software),简称:OSS或开源软件。

“开源”意味着用户可以自由的使用、复制、散发以及修改源码(补充漏洞,按具体需求定制功能)。与其相对是闭源软件,它们的源代码是保密的,只有公司的开发人员才可以改动代码。

开源的发展

在计算机出现的最初年代,几乎所有的软件都是开源的。那时的IT企业主要以销售硬件产品为主,而软件以源代码形式附送给用户。后来以微软为代表的企业开始闭源实践纯软件产品的商业模式,热爱和沉迷编程的开发者渴望接触源码,按照自己的想法来改进程序,真正意义上的开源软件由此产生。

从主体来看,开源的发展也是从小到大,经历了从个人到非盈利组织到大型的IT企业为主导的三个阶段,后两者分别成就了Linux与Android。行至今日,容器技术开始高速发展,各种开源软件更是迎来了前所未有的繁荣景象。Docker公司是其中典型的代表,它所探索的商业模式,也为开源软件的商业发展提供了很好的参考。

当初坚持闭源的微软,如今也已经成了开源的头号粉丝,在GitHub有着第一名的贡献量。微软开启了软件商业模式时代,并且成功引领了近20年的辉煌,而近年来它对开源的支持,亦变相肯定了开源软件的发展前景。

容器圈三大开源技术

Docker

Docker 是基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。它让开发者可以打包应用以及依赖包到一个可移植的容器中,实现统一的方式来下载、启动、扩展、删除和迁移,极大方便应用程序的部署和运维。

Docker自2013年以来非常火热,从个人实践到企业应用遍地开花,从 github 上的代码活跃度上亦可见一斑。

Mesos

Mesos的起源于Google的数据中心资源管理系统Borg。Twitter从Google的Borg系统中得到启发,然后就开发了一个类似的资源管理系统。现在Mesos管理着Twitter超过30,0000台服务器上的应用部署。Mesos在国外大型企业有广泛的应用,比如Airbnb、eBay和Netflix。

Kubernetes

Kubernetes是Google开源的容器集群管理系统。它为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。

国内外知名开源社区

GitHub

GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。

好像作为开发者,都知道它:)

BitBucket

BitBucket 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。它的特点有:无限制的私有仓库个数和磁盘空间,同时支持https/ssh,Bug 跟踪,项目Wiki,API 支持,灵活的权限控制,可自定义域名,RSS 修改记录输出,自定义下载。

Git at Apache

Apache软件基金会(Apache Software Foundation,简称为ASF),是专门为运作一个开源软件项目的Apache 的团体提供支持的非盈利性组织,这个开源软件的项目就是 Apache 项目。这是一个Apache代码库的只读Git镜像合集,自动更新,包含了所有历史版本。

开源中国

开源中国成立于2008年8月,是目前国内最大的开源技术社区,形成了由开源软件库、代码分享、资讯、协作翻译、码云、众包、招聘等几大模块内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。

Coding

Coding 是一个面向开发者的云端开发平台,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作。

开源的意义

开源的意义众说纷纭,每个人都有自己独特的看法。

小数相信很多人对于开源都有一种独特的感情或者情怀。在入门的时候,或许很多编程爱好者还在基础的代码片段中苦苦挣扎,开源软件高质量的源代码为他们打开了一扇学习的大门。对于知识更高效率的共享与利用,是开源的意义所在。

另一方面,开源成就了更好的使用工具。程序员按照自己的兴趣写出来一个工具发布到网上以后,大家一起逐步协作完善它,会让这个工具越来越符合更多人的需求,并且诞生出很多满足特定需求的衍生版本,这其中有很多著名的开源项目,对世界产生了深远的意义,比如Linux,Vim,Emacs等等。

开源or闭源?

关于开源和闭源的争执一直都没有停下来过。就像Linux和Windows微妙的关系一样,开源和闭源有着各自擅长的领域。但是随着软件的发展,闭源的产品本身的功能和质量越来越难以保有绝对的优势时,开源反而是为产品注入活力的一个重要途径。技术的壁垒不再难以高攀,个性化的服务更符合用户的需求,群体的力量让软件变得更好更适用,开源是未来发展的趋势,又有什么理由对它说不呢?

知识的源头是热爱与探索,知识的终极是分享与进步。与其做代码无知的使用者,我们更愿意做代码的开发与维护者,满怀热情地与众多大牛一起体验编程的乐趣。

开源项目的成长, 需要社区的协作,也需要项目团队的坚持和耐心。选择开源,就选择了梦想,前途是光明的,道路是曲折的,许多人正在为营造良好的开源生态环境而努力着。

你从开源中得到了什么?

快乐。