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