使用开源操作系统及数据库系统的可行性分析

数据库
鉴于目前情况,我认为在公司的开发和集成项目中有必要使用或部分使用开源平台,而不需要固定地使用盗版Windows +SQLServer。

名词注释:

操作系统OS:

操作系统(Operating System),目前主流的商业操作系统有Windows系列和Unix系列,Windows系统的客户端版和服务器版价格相差较大,比如客户端Windows Xp只需几百到上千元,但Windows Server 2003/2008则需要几万到几十万元。开源的操作系统有FreeBSD、Linux,虽然免费,但由于易用性、惯性、软件兼容性等问题,目前还无法在桌面上与Windows竟争,应用主要集中在服务器。

数据库系统DB:

数据库系统(Database),常见商业db有MsSQL、Oracle、Sybase、DB2等,但使用代价高昂,大多根据CPU及并发用户数收许可费,少则几万,多则几百万。除此之外则是主流开源数据库系统,如PostgreSQL、MySQL、Firebird等,这些开源db也有很成熟的应用,在某些领域并不输于商业db,开源不等于低端。

背景:

你的单位是否接过Microsoft、Oracle、Borland公司的版权电话?是否收到过律师函?是否因此而被迫买过某软件?探讨这个问题时,一个绕不开的话题就是版权和许可费。现在知识产权保护越来越严,你现在没有收到律师函不代表明天、明年它不来,是早做准备还是到时再说。

在软件项目管理中有一个规律是:越早处理花费越小,在软件发布时发现错误,修改错误的花费用是需求分析时的50到100倍,在项目运行两年后被迫迁移os和db所花费用绝对超过项目启动前选择合适os和db和百倍,也许大到购买商业系统花费的数倍,这时就没有迁移的必要了。

选择开源db和os的必要性

一.显见的必要性

数据库是业务系统的核心,负责数据的存贮,在项目规划时除了开发工具、操作系统平台外,最重要的就是数据库的选型,但由于D版问题隐藏了成本,很多集成商或客户都直接选择价格最贵、功能最全的企业版本,而不管项目的实际需求(也许实际业务每天只有10M不到的数据),按真正的成本计算,此db的价格可能会超过百万,远远超过整个集成系统标的的N倍。

数据库系统一般都按CPU和并发用户数收费,MsSQL价格要比Oracle低些,标准版本比企业版本要便宜一点,DB2和SyBase的价格不太清楚,下面链接是Ms提供的与Oracle10g的价格对比:http://www.microsoft.com/china/sql/prodinfo/compare/oracle/pricecomparison.mspx

另外有些附加功能是另外收费的,如压缩、加密功能等。除了数据库的价格,如果选用商业服务器操作系统也是很大的开支,下面是Windows Server 2008的报价:

Windows Server 2008 标准版:999美元(含5个客户端访问许可)

Windows Server 2008 企业版:3999美元(含25个客户端访问许可)

Windows Server 2008 数据中心版:2999美元 / CPU

一般规模公司的服务器可能有5到10台,中等规模的企业服务器在20台以上也很正常。有时为了维护方便,很多单位对每个业务单独安装在物理机器上,自然需要多套os和db,乘上以上的单位价格就知道总共花费了。

二.预见的必要性

虽然现在使用盗版数据库和操作系统隐藏了真实成本,但环境是不断变化的,随着版权保护的渐行,打击力度加大,不仅会影响新建系统的db/os选型,而对旧系统也有影响,经常会出现先使用再购买的情况。

旧系统有时会有升级需求,升级OS和DB需要不菲的许可费。

三.隐见的必要性

对项目使用开源os和db不论对开发方自身还是客户都是很有必要的,有的客户对此并不明白,认为项目标的中包括OS和DB,实际上却需要自己购买,本着对客户负责和自身发展的观点,使用开源操作系统和数据库系统是很有必要的。

选择开源db和开源操作系统的可能性

一.技术可行性

操作系统:只是使用的习惯性问题,虽然FreeBSD/Linux推荐命令行方式,但如果不熟悉的话,可以安装X-Window界面降低适应曲线,并且作为服务器OS,安装配置完成后,人工的干预率是比较低的,完全不是问题。

数据库系统:与商业db相比,同是关系型数据库,理论是一致的,在SQL语句是只有少许差别,技术上没有问题,从以下几点说明:

1. 主流开源db完全支持所有企业特性,包括事务、热备份、故障点还原、复制、集群等,支持企业级应用。

2. 支持问题,有不少人认为开源db出问题后没人支持,但我认为这并不是大问题,当然如果你认为你的系统特别关键、特别重要的除外。可以回头想想,这么多年参与大大小小的开发和集成项目加起来可能有十几,使用的数据库集中在Oracle和MsSQL,有时也出现过问题,但基本不请原厂工程师来解决,因为代价实在太高,简单问题自己搞定,搞不定的系统注意勤备份,大不了丢失半天的工作也可以承受。以现在的眼光来看,这些服务器都可改为开源数据库。

二.市场可行性

在集成项目中,客户可能并不关心你使用什么db,只要好用即可,但你说要他再出10万元买一套SQL Server时估计马上就火了。根据客户的业务状况推荐相应的OS和DB(开源的或商业的)是一个比较好的选择。

开源数据库,只要能在技术和安全上给予保证,讲明利害关系,客户应该是接受的。虽然D版数据库也是免费,但毕竟是不合法的,也有悖于道德规范,还有就是存在一个非常巨大的潜在风险,万一某天Microsoft或Oracle追上门来可就惨了,特别是有些规模的企业更是受不了这个,你是把业务系统停掉算了,还是认购认罚,但这时的支出绝对不是小数目。

开源操作系统/db与我公司开发路线的配合

我公司的开发主要走Microsoft路线,如果客户没有特殊要求一般是Windows Server、VS.net和Ms SQL Server的经典组合,应用服务器当然是IIS。目前dotNet的应用服务器只能在IIS上部署,虽然在Linux上有Mono的实现,但在生产上使用还有些风险。更换开发路线代价是巨大的,也没有必要,但更换数据库服务器却是可行的。

数据库更换为PostgreSQL,此数据库原生的开发一直是在类Unix上,只到8.x版才移植到Windwos平台,在类Unix上运行要好过在Windows上运行,并且一些第三方的数据库工具只支持FreeBSD/Linux,因此如果能配合FreeBSD/Linux操作系统使用,也会节约一大笔操作系统软件费用。

如果使用开源平台,我们则根据项目的具体情况,服务器软件可以做以下配置来适应我们用dotNet开发的系统:

1. 如果系统有两个服务器,则数据库服务器用FreeBSD + PostgreSQL,应用服务器保留Windows + IIS + dotNet。

2. 如果只有一台服务器,但如果有后续有项目,则考虑增购一台服务器,到时多个项目的数据库服务器集中在一台FreeBSD + PostgreSQL上,应用服务器集中在Windows + IIS上。

3. 如果只有一台服务器,同时需要运行数据库服务器和应用服务器,并且不考虑其他因素,则可使用Windows + IIS + dotNet + PostgreSQL。PostgreSQL在Windows平台上仍是一个很好的数据库系统。

从开发的方便性上讲,dotNet可以非常容易地配合PostgreSQL,程序员可以很容易地转到对PostgreSQL开发,因为:

1. 有开源项目维护PostgreSQL的Ado.net的接口实现,调用方式与MsSQL、Oracle并无多少区别,程序员只需了解极少的非标准SQL即可。

2. 我公司自行维护的数据库组件已集成了对PostgreSQL的访问,我们以前开发的数据库系统都是通过此组件访问MsSQL,此组件已隔离了不同数据库的区别,因此系统都可以支持多数据库。

开源平台的选型

开源操作系统和数据库系统有较多选择,各有优、缺点。在这个问题并不是说要固定在某个选择上,我认为应有个基本的选择,但根据具体项目的实际情况选择最合适的。就个人来说我比较推荐FreeBSD + PostgreSQL。

一. 数据库系统

目前常用的开源数据库系统有PostgreSQL、MySQL、Firebird,下面做简单介绍:

1. MySQL,最新版本是5.4,目前属于Oracle公司,采用双重许可证。这也许是国内开源数据库中装机量最大的,在Web应用上非常成功。数据库存贮引擎是可选的,各个引擎有不同的特点:

MyISAM引擎:不支持事务操作,无法支持多语句的原子操作,读写操作非常快,适用于网站论坛类似的业务,对偶尔的信息丢失不敏感。

InnoDB,引擎:支持事务,这种运行方式和其他关系数据库差不多,但在此引擎下与PostgreSQL相比没有优势。

2. Firebird, 是在Borland公司Interbase 6基础上发布的开源版本,很小巧(只有5M左右)但功能强大,有关系数据库的所有特性,最新版本是2.12,但好像更新有些慢。

3. PostgreSQL,学院派的代表,出生于加州大学Berkeley分校,采用BSD协议发行,开始于1986年,目前最近版本是8.37。它历史悠久,功能很强大,号称最先进的数据库。支持目前多种主流操作系统平台。PostgreSQL功能及历史请参考网络资源:http://www.freebsdchina.org/forum/viewtopic.php?t=2896

二.操作系统

为了发挥PostgreSQL的性能,选一款类Unix操作系统是必须的,在开源操作系统上,主要有BSD系列和Linux系列,BSD系统中的代表是FreeBSD,而Linux上则百花齐放,两者相比,FreeBSD是个较紧密的组织,代码控制较严格,更稳定;Linux上则分支众多,有全免费的也是收服务费的。

FreeBSD的简单历史:

1. 1969年AT&T贝尔实验室开发第一个Unix版本并且免费分发代码。

2. 在70年代末,加州大学Berkeley分校对Unix进行了较大修改,增加了很多先进的功能,形成了Unix的BSD分支,叫BSD Unix,但后来Unix被注册,BSD协议的Unix不允许再叫Unix了。

3. 在90年代初BSD操作系统分裂了三个著名的操作系统,FreeBSD是其中的一个,1993年FreeBSD发布了1.0版本,由于版权官司,现在FreeBSD已不包括任何原Unix代码。

4. 目前FreeBSD的最新版本是7.2。

FreeBSD详细历史参考:http://1001night.blogbus.com/logs/2018269.html

FreeBSD与Linux的比较参考:http://www.freebsdchina.org/forum/viewtopic.php?t=1860

【编辑推荐】

  1. Java开源软件六大帮派
  2. Azure拥抱PHP是好是坏?从另一个角度看微软开源策略
  3. 5月22日外电头条:开源=省钱?开发者们意见纷纷
  4. Sun宣布扩大与MySQL开源数据库互操作性
  5. 微软公布CCI工具源代码 并加入微软开源许可
责任编辑:彭凡 来源: cnblogs
相关推荐

2019-10-21 17:17:48

Windows操作系统微软

2012-04-12 17:41:02

2009-06-15 09:57:46

HibernateIBatis

2012-04-09 09:39:59

虚拟化桌面虚拟化VDI终端

2011-02-28 17:12:20

Oracle数据库

2010-04-08 17:31:51

Unix操作系统

2009-12-25 14:26:40

无线接入技术集成

2010-09-17 20:09:25

2011-04-28 11:04:22

DataReader分页

2022-04-05 13:46:21

日志数据库系统

2009-09-21 16:40:42

Hibernate可行

2013-08-27 11:15:20

2011-04-13 15:07:30

数据库系统设计

2011-04-13 15:25:12

数据库系统设计

2023-12-20 16:12:37

数据库复制延迟

2010-04-21 13:40:04

Oracle数据库

2011-02-25 13:49:12

2011-06-07 17:01:44

2011-04-13 15:17:09

数据库系统设计

2019-03-01 18:27:09

MySQL安装数据库
点赞
收藏

51CTO技术栈公众号