开源os/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