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

原文这里 《使用开源操作系统及数据库系统的可行性分析》

http://www.cnblogs.com/81/archive/2009/06/11/1501684.html

//------------------------------------------------------------------

chengg0769的观点:

1. 实际项目中,真的难于把数据库要多少万人民币这个话说出来。项目就这么小,客户准备的资金就这么点。

2. 数据库db大小有点项目中几年下来也才1-2G,有点一上去就是50G,所以XE版本的免费版怎么考虑都不适合。现在哪一台服务器不是多个CPU和N条内存。是傻子都知道1CPU和1G内存概念。

3. 过去,很长一段时间,某些非window的数据库,都是命令模式,现在到2010年7月,这种情况几乎不存在了。数据库在管理工具方面已经有很大进步了。就mysql来说,php的开源管理mysql就做的非常好。至少可以断言初学者写web时很少用以前的管理工具了。

4. 对客户管理员来说,要接受一个项目的运营管理,都不是会mssql那么简单。db的安装,还原操作只是最低层面的。在db层面以上,甚至是做二次开发,需要在此项目上投入非常多的时间和精力。而不是开源数据库管理员比mssql管理员工资高的问题。一个低档次的管理员既管理不好开源数据库,也管理不好msql甚至access。而真正有实力管理数据中心并融入到管理系统中甚至参与二次开发等。我相信对维护成本的人力部分而言,是没啥差异的。

5. ms在win7以及netbook上的xp版本授权上的新动向,ms还在追求更好的正版化率。国内d版数量太多了。所以很多网友甚至会偏袒ms的操作系统和数据库。认为只有购买一条途径,从原文的评论可见此类意见。未来的5-10年,版权问题更为重视,版权的棒子最终会落到我们每个客户和开发者头上的。对于业已成熟的软件,只有购买正版和迁移两种方法。如何抉择,值得考虑。

6. 对于新兴的公司如google从一开始就考虑开源和免费软件。他的做法在今天看来是绝对正确的。

7. 这个问题是基于很多因素考虑的。并不是一个纯技术思路出发的人所能权衡的问题。说到底是BOSS决定的问题。在此转载,请勿PK。

--------------------------------------------------------------------//

说明:

鉴于目前情况,我认为在公司的开发和集成项目中有必要使用或部分使用开源平台,而不需要固定地使用D版Windows+SQLServer,因此花了一天时间写了这份可行性分析,请大家帮忙看看有什么错误或补充的,是否有必要提交给上层。说句过河拆桥的话:痛恨D版,希望国家加大打击力度。

在项目中使用开源操作系统和数据库系统的

可行性分析

名词注释:

OS:

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

DB:

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

背景:

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

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

选择开源dbos的必要性

一.显见的必要性

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

数据库系统一般都按CPU和并发用户数收费,MsSQL价格要比Oracle低些,标准版本比企业版本要便宜一点,DB2SyBase的价格不太清楚,一般来说,价格都在几万到几十万、上百万不等,下面链接是Microsoft提供的MSSqlServer2000Oracle10g的价格对比:http://www.microsoft.com/china/sql/prodinfo/compare/oracle/pricecomparison.mspx

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

WindowsServer2008标准版:999美元(含5个客户端访问许可)
WindowsServer2008企业版:3999美元(含25个客户端访问许可)
WindowsServer2008数据中心版:2999美元/CPU

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

二.预见的必要性

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

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

三.隐见的必要性

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

选择开源dbos的可能性

一.技术可行性

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

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

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

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

二.市场可行性

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

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

三.维护的可行性

系统上线后免不了要进行维护,特别是数据库系统的维护。数据库的安全性的核心问题是磁盘Raid冗余保护,另外就是备份策略,恢复则不是日常工作。Raid和备份策略配备好后手工参与的工作量并不高,或者通过开发Windows平台上的第三方工具来实现数据库备份策略来降低维护难度。

对于命令行的FreeBSD/LinuxPostgreSQL来说,非专业人员维护的确存在一定困难,但维护操作并非一定需要命令行,FreeBSD/LinuxPostgreSQL都有图形操作接口,在图形操作界面上维护和微软平台上并无太大差别。

从另一方面上讲,软件使用方对软件知识的缺乏时,维护工作将更加依赖于软件开发商,因此软件开发商将更容易获得软件的维护合同。

开源os/db与我公司开发路线的配合

我公司的开发主要走Microsoft路线,如果客户没有特殊要求一般是WindowsServerVS.netMsSQLServer的经典组合,应用服务器当然是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+PostgreSQLPostgreSQLWindows平台上仍是一个很好的数据库系统。

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

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

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

开源平台的选型

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

一.数据库系统

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

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

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

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

2.Firebird,是在Borland公司Interbase6基础上发布的开源版本,很小巧(只有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进行了较大修改,增加了很多先进的功能,形成了UnixBSD分支,叫BSDUnix

3.Novell将Unix商标赠送给X/Open──一个由众多Unix厂家组成的联盟,这样这个联盟内的所有成员均可使用Unix商标。从此之后,Unix不再是专有产品了。因为Berkeley不是组织成员,故BSD协议的Unix不允许再叫Unix了。

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

5.目前FreeBSD的最新版本是7.2

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

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

结论

根据我公司技术实力、技术路线,在目前市场环境下,本着对客户负责、对公司有利的态度,使用或部分使用FreeBSD/Linux+PostgreSQL方案是可行的,对信息系统的未来可持续性发展也是有利的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值