通常在使用基于网络的应用时,用户除非遇到别无选择的情况,否则都会去寻找速度响应最快,最安全的网络。那么,作为CTO们最头疼的就是服务器宕机或者响应速度过慢。这一点,无论是web应用还是其他基于网络的应用比如ERP,CRM之类的。都会遇到,并且难于解决。如果有大把的钱可以用来点烟抽,那不在本文的议论范围内。

干IT很长时间了,接触过很多人和项目,不计其数。从web到wap;从教学网络到ERP,CRM;摸过思科华为Nortel屁股上的console孔,也跟F5BigIP合过影。总结经验,给我的一个很大的感触就是, 沟通问题。做技术的人不懂得商务,而商务不懂得技术,乃至到技术开发时都存在这样的问题。写程序的人不懂得数据库的引擎原理。数据库的人不懂得服务器的工作情况,搞服务器的又不懂写程序。这在大型的企业里表现尤为突出。无论是出于搞部门的技术壁垒还是模块化开发追求速度,每个人对整个系统的了解程度都只有一小部分,无法站在项目的高度总揽整个全局。而作为CTO自己,则每天忙于报表和汇报开会。无法深入细致的了解每个环节的情况。这就造成了各方面衔接都很差,白白浪费了很多资源。

技术人员私下会说,我对商务没有兴趣,只有无能的傻子才会去做商务。商务人员私下也会说,这些搞IT的,脑袋里除了水没有别东西。但互相指责和推诿不解决任何问题。

把自己接触过的一些公司和项目拿出来说说。
1.有的公司,apache的配置都是用默认的配置,只是靠堆服务器的数量来取胜,浪费了大笔的金钱在服务器和网络硬件上,90%的资源都没有利用上,这是谁的问题呢?

2.好吧,这家用的不是apache,而是用IIS+php+mysql或sql server的方式来构建一个企业级大型的CRM系统。这个系统售价达几十万。而即便是在局域网内,数据库0负载的测试环境下,点开一个页面也需要1-2秒的时间。这是哪里的问题呢?

3.接下来,一个中大型的网络环境内,在负载并不高的情况下,访问速度非常慢,这又是怎么回事呢?

4.oh shit,服务器被黑了,他妈的......

类似的问题还有很多,自己也见证过无数奇迹的人和事。当然,不可否认,青涩时期,自己也是这些奇迹的一部分。

1.一个优秀的系统管理员,绝对不会把系统用默认配置来做,这种情况只出现在两种人身上,不负责任和一窍不通,显然,这两种人,都不是合适的系统管理员。不看任何手册,书,文档的人,都不能去搞技术。但很遗憾,很多所谓的系统管理员都只会装系统。会装windows可以拿到3000;会装linux可以拿到5000;居然会装FreeBSD?高技术人才!一卡车服务器拉进去,两卡车服务器拉出来的事不是没有,但确实有这个必要吗?你是不是还没有把硬件的资源压榨到极限?带宽真的已经成为瓶颈了吗?

2.一个优秀的数据库管理员,不会用windows系统去应用大型的mysql数据库。而且必须了解InnoDB,MyISAM,Maria是如何运作,甚至要了解如何根据数据库的不同选择操作系统;而一个编程的人,如果不了解Join和单条检索的效率差距,就不是合格的编程人员,现在有不基于数据库的应用吗?但很多编程人员都不考虑这些问题,那是管服务器和DBA那帮家伙的事,不关我的事,我只管实现程序逻辑和算法。那么,你写Java,python的时候,是不是直接import *了呢?写php的时候,是不是用了connect而不是pconnect呢?

3.不了解广播风暴和路由环路的网络管理员,公司如何放心把网络交给他运作?网络慢?哦,那不是我的事,那是服务器发包太多。或者网络里有arp病毒。找装IT服务部门给你杀毒吧。

4.负责网络安全的人不止是要知道×××,IPSec,软件漏洞,停止服务和端口,还需要去了解很多编程的漏洞,绝大多数服务器被黑,被挂马,都与服务器本身和操作系统无关,而是代码编写不严格不规范造成的。比如discuz和dvbbs的安全漏洞都可以直接导致根帐号的泄露,还没有被发现的编程漏洞我相信还有更多。至少在中国,玩挂马的比研究SSH或Kernel源代码找漏洞的人多。

所以,其实这篇文章所探讨的不是技术高低与否或者设备牛逼与否。主要是人的因素,任何问题,离开人的因素都不是问题了。试想一下,如果人类突然从地球上消失了,那么,那些数据该如何呢?电站无人操作,燃料耗尽或发生爆炸,停电,之后那些昂贵的设备都是一堆废铁。再无用处,生锈腐烂,连处理的人都没有。所以,优秀的人,才是一切问题的核心。

那么怎样才能选择优秀的人才?我不是一个搞人力资源的,所以我无法从言行举止,相貌身材上选择一个合适的人。但至少要满足以下几点

你可以暂时不会或者不了解目前的项目,但你必须有迅速的学习和掌握的强烈意愿。

你可以暂时不了解自己专业以外的知识,但你必须迅速的学习和了解,并且要做比较深入的了解。

你可以暂时不与人沟通,但当你必须与人沟通时,说话不能结巴,你必须表达清楚你这么做的理由。

总而言之,需要保持对任何未知事物的强烈求知欲,哪怕这跟你的工作无关。

作为公司,时常组织小规模的培训活动是有好处的,每个人都必须上去讲一次课,而且要讲清楚原理,这对你自己也有好处。在我原来的公司,经常会组织一些培训和讲课,这就逼着自己不得不深入研究一下自己选定的讲题。

公司还需要经常组织技术交流,乃至部门间的交流,这种交流不应该在下班后完成,吃吃喝喝唱唱歌交流不出啥东西,只能增进感情,遇事好说话一点。

最后,我想举一个和珅的例子,在电视剧里,王刚扮演的和珅说过这样一句话"学可以不精,但不能不博,学而不博,那就是没见识,皇上问你吃,你不知道,问你穿你不知道,这就叫没见识,这样你呆不了三天,准被皇上轰走。"但在真实历史里,为何和珅能身兼数个一品大员?是因为和珅古今中外,无所不通,无所不学,无所不晓,皇上问大学中庸,对答如流。会见英国使臣,班禅达赖,和珅是翻译。精通满蒙藏汉回五种语言文字。又擅长理财之道,给皇上挣钱是一绝。试问,哪个董事长不喜欢这样的人才?他是个又懂技术又懂商务的高精尖人才。

好比某大型网站,采用SSD硬盘做数据库的存取操作。这本身没有问题,但我想提醒借鉴者,作为SSD硬盘,也是有技术参数的,比如通道数量,读取速度和写入速度之间的差距,SSD硬盘的读取速度快,但写入速度慢,如何更合理的分配读取和写入也是需要详细考量的,但首先要感谢先驱者们为我们提供了这些思路。

所以,作为公司,需要找好学的人,作为个人,需要博采众家,不能固步自封,坐井观天,这才是创建一个高效安全网络的核心问题。


//写得比较松散,想哪说哪,可以当散文阅读。