關(guān)于12306:傳統(tǒng)信息化系統(tǒng)面向互聯(lián)網(wǎng)應(yīng)用的挑戰(zhàn)
- 葉正盛的新浪微博:http://weibo.com/yzsind
大型信息化系統(tǒng)提供互聯(lián)網(wǎng)應(yīng)用越來越多,從移動電信的網(wǎng)上營業(yè)廳、銀行網(wǎng)銀,到現(xiàn)在的12306火車售票,可以說每一個系統(tǒng)的互聯(lián)網(wǎng)服務(wù)都給大眾生活帶來非常大的變化,每個系統(tǒng)都有具大的挑戰(zhàn),從支付方式、網(wǎng)絡(luò)安全到12306的高并發(fā)性能挑戰(zhàn)。
12306系統(tǒng)做的很爛,從去年春節(jié)的登錄不了,到今年十一的排隊,到后來的招標(biāo)價格,還有最近的SQL注入安全問題,這些都是最近非常熱的新聞。
不管是易用性和性能都很差,但是我認(rèn)為他的功能不錯,值得肯定的。有了12306后我從來沒有去過火車站買票了,有了12306后黃牛黨轉(zhuǎn)行了,可以說12306確實是給我們帶來了便利,不像一些電子政務(wù)系統(tǒng)都是擺設(shè)。
網(wǎng)上爆料說新12306軟硬件成本3.3億,微博上很多人說成本太高,甚至有人說幾十萬可以搞定,不管這幾十萬是純軟件還是包括硬件,那都是很可笑的,甚至侮辱了我們IT人員的價值。如果你認(rèn)為幾十萬能把這個事情搞好,那估計IT人員的年收入就幾K吧,你做一個支付寶系統(tǒng)估計也是小菜一碟。3.3億看起來很高,但是相對鐵路建設(shè)幾萬億的投資,高鐵每公里上億的造價,你感覺3.3億是多是少?3.3億在國家級信息化建設(shè)項目里不算高,像電信、電力、銀行這種行業(yè)1個省的信息化建設(shè)都需要這個投入。在我看來,整個系統(tǒng)最終成本也許遠(yuǎn)不止3.3億,因為這3.3億只是招標(biāo)公開的價格。因為我們不了解系統(tǒng)的復(fù)雜度,但從規(guī)模來看3.3億不算高,如果3.3億能把這個系統(tǒng)搞好,那帶來的價值何止3.3億。羊毛出在羊身上,如果這個系統(tǒng)建設(shè)只要500萬軟件費(fèi),除去 50%的市場開銷,只有250萬給實現(xiàn)系統(tǒng)建設(shè),250萬的軟件費(fèi)用能請到什么樣的人員設(shè)計開發(fā),還要服務(wù)3年,現(xiàn)在一臺好的小型機(jī)或存儲都需要這個價,高端中間件軟件或數(shù)據(jù)庫軟件采購也要上百萬。
前段時間微博上12306一個SQL注入的問題反應(yīng)出來,select * from TB_INFO_CLCS where flag = 'Y' and czdm ='G' and cxdm like '%' 6%' order by cxdm
這個SQL引來的討論真是有意思,有說SQL注入問題,有說前臺直接拋異常問題,有說hibernate問題,更有意思的是很多人說like '%%'性能問題,其實這也說明了有大部份的開發(fā)人還不一定比12306的人水平高或者只是跟風(fēng)。這也可能是有人說幾十萬能把系統(tǒng)搞定的原因吧。
去年春節(jié)可以說12306是上線比較匆忙,鐵路系統(tǒng)人員大變化等原因,可以理解,但是今年十一還是沒搞好,這就說不過去了,也許是12306本身的問題,也許是原有核心售票系統(tǒng)容量問題,但是對于用戶來說不管什么問題,都是鐵路系統(tǒng)的問題。
信息化系統(tǒng)提供互聯(lián)網(wǎng)應(yīng)用,有很多技術(shù)挑戰(zhàn),面對的是大眾用戶了,在系統(tǒng)性能、易用性、安全性等方面都是不一樣的技術(shù)挑戰(zhàn)。系統(tǒng)性能是大家最關(guān)注的話題,有很多種架構(gòu)來解決問題,但我認(rèn)為好的性能架構(gòu)不一定是設(shè)計出來的,但一定是測試與迭代出來的,前期把關(guān)鍵性能瓶頸評估與測試出來,再驗證改進(jìn)架構(gòu)的可行性。一定要評估緩存在測試中的影響,否則可能導(dǎo)致評估數(shù)據(jù)完全錯誤,悲劇就要發(fā)生了。安全性是技術(shù)積累的過程,需要有全面的資深安全人員把關(guān),讓程序員來全部考慮安全是不可靠的。如果你對信息化內(nèi)部系統(tǒng)說他有XSS漏洞,他會說你神經(jīng)病,就好像互聯(lián)網(wǎng)要解決一個拿modem撥號上網(wǎng)看優(yōu)酷高清電影說性能不好一樣的問題。
易用性是一個無限改進(jìn)的過程,很多人說12306的界面丑陋,易用性不好,但是我認(rèn)為還行,能查詢能訂票就很好了,不奢求。以前說過,易用性決定著一個系統(tǒng)的用戶增長速度(http://blog.csdn.net/yzsind/article/details/6795402),但對于12306來說用戶增長速度不是問題,因為它買票也不收取手續(xù)費(fèi),現(xiàn)在還不是要解決農(nóng)村人員如何買票的問題,或者是有競爭對的提供同樣服務(wù)的問題。
說了12306這么多,我談?wù)勱P(guān)于互聯(lián)網(wǎng)軟件與傳統(tǒng)信息化軟件的區(qū)別吧:
1、用戶數(shù)
大型互聯(lián)網(wǎng)系統(tǒng)面向的用戶一般都是大眾網(wǎng)民,如百度,QQ,淘寶,支付寶,微博,優(yōu)酷等等,當(dāng)然也有一些面向?qū)I(yè)化的用戶,如汽車之家,搜房網(wǎng),世紀(jì)佳緣,CSDN,ITPUB等等,幾個面向大眾網(wǎng)民的系統(tǒng)用戶數(shù)都達(dá)到億級別,面向?qū)I(yè)類網(wǎng)站也有上百萬甚至上千萬的用戶。信息化軟件的面向的用戶一般都是一個企業(yè)的內(nèi)部用戶,內(nèi)部用戶不太可能會超過50萬,大多都是在幾百上千的規(guī)模。所以兩種軟件在用戶數(shù)方面有幾個數(shù)量級的差距。
2、事務(wù)數(shù)
事務(wù)通常指完成一次交易,如移動客戶收一筆費(fèi),ERP系統(tǒng)一筆出庫,電子商務(wù)一個訂單,支付寶交易,買一張票等等,但由于許多系統(tǒng)并不是交易系統(tǒng),所以有些系統(tǒng)把數(shù)據(jù)寫入的操作計算為一個事務(wù),如發(fā)一個微博,發(fā)一個貼子等等。因為事務(wù)的完成內(nèi)容不同,所以并不能以事務(wù)數(shù)來衡量系統(tǒng)性能。有許多人認(rèn)為互聯(lián)網(wǎng)系統(tǒng)的事務(wù)數(shù)遠(yuǎn)比信息化系統(tǒng)高,但我不這么認(rèn)為,淘寶系統(tǒng)可以說非常復(fù)雜,一天交易筆數(shù)超過1000萬。傳統(tǒng)信息化系統(tǒng)也不少,以一個省電力繳費(fèi)為例,如果用戶數(shù)大約1000萬,60%的用戶集中在收到電費(fèi)通知單3天內(nèi)完成繳費(fèi),也就是一天可能會發(fā)生200萬筆繳費(fèi)交易,遠(yuǎn)比除淘寶外京東、當(dāng)當(dāng)這類電子商務(wù)系統(tǒng)量大。 我認(rèn)為事務(wù)數(shù)這個參數(shù)只是用來描述業(yè)務(wù)規(guī)模,不同系統(tǒng)通過事務(wù)數(shù)對比來說明性能沒有任何價值。
3、用戶行為
互聯(lián)網(wǎng)面向的是大眾用戶,信息化系統(tǒng)面向的內(nèi)部用戶,用戶行為差異很大:
大眾用戶沒有經(jīng)過培訓(xùn),內(nèi)部用戶一般都會有使用培訓(xùn);
大眾用戶99%的人不會去看幫助說明,內(nèi)部用戶80%看過說明文檔;
大眾用戶計算機(jī)水平參差不齊,內(nèi)部用戶計算機(jī)水平一般有基礎(chǔ)保證;
大眾用戶會使用各種瀏覽器訪問系統(tǒng),內(nèi)部用戶可以指定瀏覽器類型;
你無法控制大眾用戶什么時候來使用系統(tǒng),或者什么時候暫停使用;
當(dāng)系統(tǒng)出現(xiàn)問題時,你不好及時指導(dǎo)大眾用戶操作行為,但內(nèi)部用戶通過一定的行政方法可以搞定。
4、安全
互聯(lián)網(wǎng)系統(tǒng)的安全挑戰(zhàn)很大,信息化系統(tǒng)的安全環(huán)節(jié)一般很薄弱。
互聯(lián)網(wǎng)系統(tǒng)對公眾開放,并不限制用戶類型,一些黑客人員可以利用系統(tǒng)安全漏洞來獲取利益或者破壞系統(tǒng),包括獲取用戶隱私數(shù)據(jù)、非法修改交易數(shù)據(jù),甚至是刪除數(shù)據(jù)或者是讓系統(tǒng)不可用等等。
信息化系統(tǒng)一般不對公眾開放,可以限制用戶類型,所以從入口來講信息化系統(tǒng)安全性較好。
由于信息化系統(tǒng)的用戶是所謂的“良民”,所以很多軟件在安全方面很薄弱,包括如SQL注入、XSS等方面都不太考慮,因為即使有這些漏洞,內(nèi)部用戶也不敢去利用,因為利用漏洞操作已經(jīng)屬于犯罪行為,就好比同事抽屜里有1000塊錢,就算抽屜沒鎖,你也不會去拿這錢。
由于軟件本身的安全很弱,所以企業(yè)信息化系統(tǒng)很多都搞內(nèi)外網(wǎng)物理隔離,保證外網(wǎng)用戶不能訪問到內(nèi)部系統(tǒng),很多企業(yè)在硬件安全方案上投入更多。
很多軟件都有漏洞,包括商業(yè)軟件和開源軟件,有些漏洞在修復(fù)前就公布出來,互聯(lián)網(wǎng)系統(tǒng)會特別關(guān)注這些方面,因為不及時處理很可能會被黑客利用。信息化系統(tǒng)很少關(guān)注這方面的問題,甚至有些軟件從安裝上去后就沒有更新過。
5、24*7
互聯(lián)網(wǎng)系統(tǒng)一般都是24*7的服務(wù),信息化系統(tǒng)許多只做到了5*8的服務(wù)
對系統(tǒng)服務(wù)時間不同,系統(tǒng)的設(shè)計策略也完全不一樣,互聯(lián)網(wǎng)系統(tǒng)很在意系統(tǒng)的可用性,一般所有層面都會有集群或熱備,大部份升級都是在線操作,除非大的系統(tǒng)升級或基礎(chǔ)設(shè)施變化,才會考慮在凌晨停機(jī)維護(hù),減少對用戶的影響,停機(jī)時間也不會超過8小時。
一般信息化系統(tǒng)軟硬件升級都會停止服務(wù),很多時間還是在白天操作,有時還會看到停止使用3天的公告,除了對數(shù)據(jù)有備份外,其它的層面較少考慮備份。 信息化系統(tǒng)當(dāng)然也關(guān)注系統(tǒng)可用性,但是相對互聯(lián)網(wǎng)系統(tǒng)來說差遠(yuǎn)了。
6、可擴(kuò)展性
大家都知道系統(tǒng)可擴(kuò)展性很重要,互聯(lián)網(wǎng)系統(tǒng)由于前期收益不確定,所以投入成本也不高,同時還需要考慮用戶爆炸性發(fā)展,所以可擴(kuò)展性在系統(tǒng)設(shè)計時會考慮或者是做好升級方案。
信息化系統(tǒng)一般是基于確定的用戶規(guī)模設(shè)計,雖然供應(yīng)商會說系統(tǒng)可擴(kuò)展性好,但實際上他們更多是考慮滿足本期需求,如果將來有大的變化應(yīng)該是重新設(shè)計方案,這樣供應(yīng)商的收益更好,風(fēng)險也更小。
信息化系統(tǒng)很少在數(shù)據(jù)存儲方面考慮可擴(kuò)展性,基本上都是集中存儲,有時做一些垂直拆分,基本上不做水平拆分,因為水平拆分難度大,風(fēng)險高,有時硬件并不是由軟件供應(yīng)商采購。
7、用戶體驗
互聯(lián)網(wǎng)系統(tǒng)很強(qiáng)調(diào)用戶體驗,因為你沒有機(jī)會給用戶培訓(xùn),如果用戶感覺系統(tǒng)不好用很可能就流失,而信息化系統(tǒng)不太考慮用戶流失的問題,用戶體驗是無止境的,信息化系統(tǒng)更多是考慮統(tǒng)一的操作習(xí)慣就行了,界面也不會花哨,更多是統(tǒng)一界面樣式。用戶體驗對于信息化系統(tǒng)收益沒有互聯(lián)網(wǎng)系統(tǒng)那么明顯,高的用戶體驗實現(xiàn)成本高,并且還會影響系統(tǒng)的功能擴(kuò)展性。
8、用戶需求
互聯(lián)網(wǎng)系統(tǒng)更多是在挖掘用戶需求,信息化系統(tǒng)更多是實現(xiàn)需求。
用戶需求對于互聯(lián)網(wǎng)系統(tǒng)來說就是生命,就是收入的來源。
信息化系統(tǒng)從合同簽訂后,需要做的事情是實現(xiàn)需求,供應(yīng)商更希望減少用戶需求,減少需求可以減少項目風(fēng)險,也可變?yōu)檐浖壓贤M(fèi)用。
9、投標(biāo)競爭
互聯(lián)網(wǎng)系統(tǒng)的競爭是在產(chǎn)品出來之后比較,信息化系統(tǒng)競爭是在合同簽定前比較,那時根本還沒有產(chǎn)品。
互聯(lián)網(wǎng)系統(tǒng)的競爭比較激烈,每種系統(tǒng)都會有幾個競爭對手,而且競爭都是產(chǎn)品與產(chǎn)品的直接比拼。
互聯(lián)網(wǎng)系統(tǒng)沒有直接的投標(biāo)概念,大的信息化系統(tǒng)一般都需要投標(biāo)競爭,這個是整個工程挑戰(zhàn)最大的地方,供應(yīng)商的技術(shù)實力是一方面,更重要的是市場能力的比拼。
10、系統(tǒng)成本
互聯(lián)網(wǎng)系統(tǒng)的建設(shè)成本一般都是由自己承擔(dān)。
信息化系統(tǒng)成本一般都是使用方承擔(dān),包括所有硬件和軟件采購成本、人工成本,由于計算成本非常復(fù)雜,也需要對專業(yè)的了解,所以實際大部份是由系統(tǒng)提供方根據(jù)使用方的需求提供報價清單,然后雙方洽談達(dá)成,最后由系統(tǒng)提供方代采購和安裝部署,對于整個系統(tǒng)中有些通用硬件或軟件,使用方可能會采用分多個合同或供應(yīng)商招標(biāo)或統(tǒng)一采購的方式處理。
原文鏈接:http://blog.csdn.net/yzsind/article/details/8041983