随着开源软件蓬勃发展,对整个互联网行业产生着巨大的影响,各大互利网公司,使用开源软件已经形成主流趋势,即使是BAT这样量级的巨头企业,开源软件也在其内部广泛使用,在技术架构的迭代升级过程中起着决定作用。而且技术发展到今天,对架构的要求也越来越高,牵扯到的功能也越来越多,我们不可能呢每一环节都重新时间,软件设计中有一个机会是“不要重复造轮子”,这是每一个程序员都知道的名言,那么我们就必须选择已有的产品,所以开源免费的产品就是我们首选。为什么互联网技术能飞速发展,圆圆超过其他行业的发展速度,和这种开源软件的开放、自由的精神是密不可分的。
开源软件现在覆盖的应用范围非常广,从数据库,到Web服务器,留恋其,办公软件、程序开发,监控、安全,游戏娱乐等等,品类分厂丰富,截止到作者写稿之日,oschina.net 已经收录的开源软件就有 43000 多个(补充GitHub统计数字),大对数企业应用软件都可以找到开源的替代产品。选择开源软件以下几点好处:
成本:任何企业都是以盈利为目的,这一点毋庸置疑,所以企业永远要考虑成为收益率,商业产品本身的采购费用不说,而且所随着功能升级,企业还要为下一个商业版本的软件进行付费,有些情况连硬件也有一同升级。而且除此之外,还会有技术支持、培训费用,使用商业产品所需要的费用可能远比你最开始想象到的要大得多,就会让企业进入一个不断花钱,不断付费升级的循环,如果企业对这个产品产生很强的依赖,就会陷到这个骑虎难下坑里很难爬出来。二开源软件本身,绝大多数都是免费的(少量付费),使用前期无需许可费用,可以大幅节约企业的软件采购成本。而且伴随着开源软件社区额推动,产品功能变得越来越强大, 主动帮助企业获得更大的市场竞争力。另外由于开源软件的开放透明性,也利于企业对软件进行有效的凭据,而相比于比封闭的商业产品,未来会有什么功能更,没有有缺陷,再亲身试用之前,也只能听开发商的一面之词。
效率:而且开软软件拿来急用,不需要等待漫长的采购周期,在互联网快速发展的几天,速度就是生命,是否快人一步有时候会决定企业的生死,而开源软件可以迅速上手,快速帮助企业建立产品原型,快速投放市场。
安全、稳健:开源软件背后往往有强大的技术社区做支撑,来自成百上千来自世界各地的程序员共同维护开源产品,一个有几几个开发者做出来的产品和一个有成百上千开发者做出来的产品,哪个会更好显而易见,,开软软件有数不清的开发者进行维护和改进,bug修复和新功能的加入都非常迅速,很多商业软件,从发现漏洞到发补丁解决,往往要几个月的时间,而且开源软件的源代码对所有人开放,技术社区往往也有非常多的技术大牛,一点漏洞出现就会迅速解决,这一点很多商业软件,或者企业的运作模式都是无法笔记的。基于这些,很多政府系统都采用开软软件进行构建,比如美国的白宫、国防部都公开表示使用过开软件件构建内部系统,尤其是很多没有核心软件生产能力的国家,涉及到国家安全利益的系统,不能完全依赖于外国的软件生产商,而使用开源软件,不用担心生产商国际问题,不用担心为所谓“外国势力”绑架,开源软件没有国界。
大企业的背书:开源行业发展大今天,已经不是几个技术黑客的爱好,而且获得越来越多的大企业的支持,企业也意识到基于开源社区的开发模式是一种更好的软件构建方法,很多来自社区的贡献帮助软件继续完善,企业也能够从中获益,所以近些年越来越多的大企业投向开源社区的怀抱,国外的 Google,Facebook,亚马逊,国内的BAT,本身也为业界贡献了大量的开源产品,这些开源产品本身也在大企业得到应用,经过实践的检验,软件本身也更可靠。对于软件本身的应用,网上也有非常多的资料、文档、可以参考。
学习成本、技术支持:很多应用广泛的开源软件有强大而活跃的技术社区氛围,比如很多Linux发行版社区,有良好的文档说明、有在线轮胎、wiki,新闻组,列表、甚至聊天群,所以要获得开源软件的技术支持,渠道非常多。在技术应用方面,有大量的应用实践,可以很容易找到学习资料和问题解决访问,由于软件本身具有开放性,使用的技术人员也较多,也和容易招到有经验的开发人员,旺旺招进来就可以上手,减少了学习成本。
避免架构老化,自由可定制:我们会经常遇到这种情况,很多企业内部的专用系统,专用框架,往往最初只有几个开发人员进行维护,满足一定功能之后变停止维护,随着时间的推移架构也在老化,旧的架构体系或者功能无法满足企业发展的需要,而再要维护升级困难重重,要们是积重难返,要么是原来的开发人员已经离职,没人能够维护起来,最终可能导全部重构,企业付出的代价更大。而有活跃社区的开源软件,可以持续改进软件,企业可以借助社区的力量不断帮助企业架构升级,保持架构的活力。而且即使现有的产品功能不满足需求,由于源代码是完全开放的,你可以在原有基础之上进行二次开发,进行有针对性小规模的迭代,而没必要从头开始开发一套新的,而且可以向强大的开发社区寻求帮助。