前言:
1.随着各大商业软件公司的不断介入,原本认为是黑客和发烧友才会热衷的linux操作系统已经越来越多的介入到商业网络应用,并逐渐成为主流的商业网络应用系统。这里,仅对B/S结构下的商业应用平台搭建做简单描述。
2.由于B/S结构的应用对客户端要求少,具有良好的客户端兼容性和可移植性,已经越来越多的深入到企业应用级系统平台的搭建上。诸如CRM,OA,ERP,SCM等传统的C/S结构应用也在向B/S模式转移,甚至B/S结构的Call Center前端也已经出现在市场上。因此对该模式下的商业应用投以更多关注是有必要的。
3.所谓低成本,包括如下几个层面,硬件成本,商业软件采购成本,开发成本,实施成本,维护成本。并非单纯的软件采购成本。另外,高可靠性商业应用的低成本<>个人及小企业应用的低成本,读者请自辨。
4.所谓高效率,是指每日可以轻松处理上百万甚至上千万次的web请求并作出快速正确的响应及相应数据操作。
平台构成
1.操作系统 - 推荐Redhat Enterprise Server 3.0 x86 标准版本报价$1499美金。
稳定性,可靠性一流的低成本操作系统包括Debian, FreeBSD及商业化的RedHat Enterprise Server 3.0
鉴于Debian的版本更新经常落后于主流硬件的更新,该产品往往适合个人及中小企业,在简单硬件条件下的的Web应用,FreeBSD也存在同样问题,并且维护实施成本偏高。RedHat 9.x是个人版本,在稳定性和可靠性方面与商业unix和BSD存在较大差距,并且已经得不到任何升级和技术支持,而RedHat近年推出的Enterprise Server3.0是一款完全商业化的软件产品,在性能,可靠性,稳定性和系统支撑性上均得到了极大的提升,在一些数据评测中,已经达到和超过了主流商业Unix的水平。除此之外,因为个人版本的redhat非常普及,相关管理维护成本非常之低,易于过渡.
对于同样的高可靠性,大流量应用,Windows和商业unix的License报价都是惊人的,而这个产品的报价相对而言,已经是非常低廉的了。
2.服务器选购 - 推荐采用x86系列的机架服务器组合
实际上由于集群技术的普及,使用x86机架服务器组合的模式已经越来越流行,升级费用低,而且可以很容易实现冗余容错,以及数据的有效分载,而单纯追逐大型计算机的时代已经过去了,前阵子联想出了一个超级计算机,其实就是上百台x86服务器的集群在那里跑而已。从成本而言,集群服务器可以控制单次投入,实现根据业务量进行逐批投入,逐批升级,对企业的应用预算也有相当的好处。
几个值得推荐的品牌是,SuperMacro, PowerLeader,这两个品牌都有多年的服务器生产经验,在领域内业绩斐然,质量上乘,Dell,Compaq和HP也有类似的服务器,并且质量上乘,但是在同等条件下稍微显得昂贵一些。
3.数据库 - 推荐采用Mysql 商业授权495美金
如果说高可靠性的数据库,当然首推Oracle,但是caoz以为,除非你拥有资深的,代价极端昂贵的Oracle管理工程师,否则,一些只懂简单sql指令的数据库管理员,会让强壮的Oracle慢如蜗牛。高级的数据库产品,只有在水平很高的数据库管理员的基础上,才能发挥出其威力来,而mysql虽然在商业应用领域尚无影响,但是在北美多次商业数据库评选中,在执行效率方面一直处在仅次于Oracle的位置上,这是很惊人的。
mysql4 以上版本对效率的优化工作的改进是惊人的,并开始支持子查询,这曾经是一个饱受诟病的缺陷。mysql5版本开始支持内建过程,对系统效率优化又前进了一步,这还不是最让人吃惊的。前阵子mysql公司收购了SAP的数据库产品,SAP的数据库产品据守在世界500强的多个企业内得到广泛部署,是一个真正经受了大数据量,高可靠性商业运算考验的数据库产品,这次并入mysql旗下,对Mysql自身的开发和升级也是影响深远的。
另外值得推荐的一个关键因素是,商业mysql不但授权费用低,而且熟练的mysql工程师比比皆是,维护成本低,开发成本低,在合理部署和正确设计的前提下,效率和稳定性同样可以达到很高的水平。
4.Web 服务器 - 推荐采用apache 免费
apache 并不是最快的 web服务器,也不是最可靠的,但它流传最广的。各种软件与其支持和匹配更有效。而且apache经过简单调整,单服务器日处理上千万次请求是很容易的,通常不会构成瓶颈压力,因此从维护成本角度考虑,apache可能是一般的网络管理员最熟悉的应用了。
5.开发语言 - 推荐采用php 免费
C语言显然是最有优势的开发语言,从执行效率和对系统的操作能力而言,其优势是显而易见的。但是作为web应用,C语言的应用场合并不十分宽广,FastCGI实际上的效率并不比php有优势。而PHP的开发成本和维护成本依然是C语言无法比拟的。廉价而熟练的php工程师几乎满街都是,而熟练的C语言工程师通常都代价不菲。
当然,作为免费工具的PHP语言依然有其一定的效率瓶颈,但是随着一些商业公司的加入,特别是Zend.com,已经使php越来越焕发出新的力量!
另外,可以注意一点,数据库mysql的官方站点,是用php编写的。
6.优化环境
a.Zend Optimizer 进行预编译,减少系统开销。 免费
b.Zend Accelerator 感觉是Optimizer的加强版本,但是可以共存,极大减少系统资源开销,并提升处理效率。 按caoz测试,可以有效将php执行效率提升2倍以上,并减轻服务器系统负载1/2以上。报价请参看http://www.zend.com
c.Zend Cache 利用自动缓存技术,能够让数据操作少但是调用量巨大的一些界面得到很快的响应并极大减少系统开销。根据caoz测试,可以有效提升php执行效率6倍以上,并减轻服务器系统负载3/4以上。报价请参看http://www.zend.com
总结:
推荐上一套组合,除了这些工具组合可以很好的完成高并发海量数据的处理以外(当然也要看系统设计者的水平和设计思路的把握能力),还有一个非常重要的因素,就是在系统实施初期,可以用很少的成本实现,比如用free的mysql,用redhat 免费的9.x版本,不用商业的zend accelerator和zend cache,用单台机架服务器;换言之可以用很少的成本搭建企业所需要的商业应用,随着企业应用水平的提升,应用环境的扩大及用户数量的增加,系统可以在无须变动任何编码的情况下,逐渐升级,从软件到硬件均是如此,这样成长起来的商业系统,其可靠性和稳定性因为夹杂了大量的使用经验和教训总结,因此可能更胜于那些一上来就搭建在昂贵平台下,做了复杂设计却没有任何实施经验的系统。
一个企业搭建商业应用,当然希望应用能随着企业的壮大平滑升级,这样企业的投资才能够得到有效保护,业务数据和用户资料才能够得到平滑的过渡,在这样的一个商业平台思路下,进可以借用商业软件创进高端,退可以根据免费软件做稳低端。不失为一种明智的选择。