負載均衡項目實施中應該注意的事項

作爲一名項目施工人員,撫琴煮酒前前後後也實施過一些大大小小的項目了,有併發量大的CDN廣告網站,還有證券類資訊網站以及電子商務網站等,還有就是一些併發不大但要求作成HA的小型網站等,感覺其實在實施過程還是有蠻多技巧和心得的,特寫出來與大家分享一下。


一、準備工作一定要做好做細

做爲項目實施工作,還是比較有技術含量的,有的還因爲合同期限,有時間限制,所以一定要在公司將所要佈署的施工方案的技術活細化,最好是做個幾十遍,將各種各樣的意外都設想進去。衆所周知,Linux下軟件如果是源碼編譯安裝的話,有的也區分32位和64位的;更別說windows下的程序了,吃了一次虧後。我後期就直接建議上級領導,以後程序的開發環境和測試都統一爲64位了,佈署環境我們現在都統一爲64位的CentOS5.x及 windows2003 企業版+SQL Server2008,這說的是服務器的操作系統的統一性。再說下軟件版本的問題,比如說我們要用Nginx作負載均衡,這時候是用nginx 0.7x還是nginx0.8.15呢,我們經過了大量測試,並且作了相關的壓力測試,最後決定了用nginx0.8.15,在項目實施後發現其穩定性相當不錯,所以後期的項目實施中一直採用nginx0.8.15,其它的軟件版本類似,即測試的工作一定要作好做細做多,可能要浪費不少時間和精力,但這個工作一定要做,必須的。另外的是就是要跟客戶那邊的IT技術部門多溝通,弄清楚他們的機房帶寬,服務器是放在自己機房還是放在電信機房,值班人員是否24 小時監控,服務器的性能如何?是否是四核至強,單臺大約能承受多少併發(很遺憾,這個問題基本沒多少IT技術能弄得很清楚),最好的做法是給對方的IT技術一張關於網絡和系統的調查表,然後一定要得到對方肯定的反饋,我最喜歡的情況之一是對方什麼都沒,從路由器到服務器和存儲都是我們推薦,他們購買,這種情況就能對服務器性能一清二楚了。根據我所瞭解的系統管理員,一般都很熟悉windows系列,但一談到Linux和unix,尤其是Centos和 FreeBSD,基本就處於空白期了,所以一定要耐心跟他們覈對。另外有一個件事,一定要跟大家提個醒,我們帶過去的程序,如果是Linux的源碼和數據庫的文件估計還

好,但如果是windows的文件,尤其是執行文件(一般是移動硬盤直接攜帶),一定要用最新的殺毒軟件,我們一般是NOD32和卡巴斯基,但這樣還不保險。最後是跟對方的技術支持多溝通,用對方的殺毒軟件來進行檢查,這個我們是有教訓的;如果你的軟件有病毒,損失全由你方來承擔,而且這個對於系統管理員而言,太不專業了。由於我負責的多是 linux/unix機器(我安裝的MySQL機器也很多),我這邊基本是從沒出過問題;而同事攜帶的移動硬盤,由於用的人太多了,結果拿到客戶的機房一掃,居然有毒,所以這事最好是在己方公司做好,不要因爲細節影響大局。另外要多瞭解下對方那邊有無網絡安全方面的防火牆,一定要一臺防DDOS***的,目前這方面還比較好,客戶做的多是證券系統和電子商務的,非常注意安全,一般都有Juniper系列的防火牆。


二、在項目實施過程一定要注意多部門的溝通和配合

這一點其實也很重要,一套系統,一般包含的是程序+數據+圖片等文件,所以你作爲項目實施人員,平進一定要注意與這些部門多溝通多瞭解,我的同事們很不瞭解,我爲什麼總是跟開發的一起工作和探討問題。其實作爲系統工程師,即System Admin,你可以不精通C++或PHP,但一定要懂這些,比如php、比如java,另外跟數據部門也要多注意交流,看數據庫是運行在什麼平臺下?是 MySQL還是SQL server2008,這樣才能做的有的放矢,胸有成竹。公司內部的交流基本應該還算是比較順利的,難點就在於項目施工過程中的多部門協調和交流問題。我跟同事的做法是,我們會提前跟客戶的業務領導打招呼,約定在一個時間段將所有的施工人員召集起來開一個交流會。比方說,我在南京做的某證券系統,我們是從武漢出飛,三小時的動車。下了火車後我們直接就去客戶的辦公室,拿出了項目的施工拓補圖,迅速的跟所有的施工人員開了一個會,說了項目施工中的重點和困難。人確實很辛苦很累,但這事最好提前和迅速,鬼知道項目實施過程中會出現什麼樣的意外。第二天我們去電信機房時,還是有的吃驚。HP的工作人員一下子來了六位,剛開始我不是特別理解,後來明白了,4U的服務器確實長得彪悍,小弟我在北京時練就了一點本領,就是能扛着1U的服務器,奔流如飛。結果在4U的服務器前硬楞了,怕閃腰不敢上;還是HP想得比較周到,派的都是年輕小夥,呵呵。言歸正傳,我記得那個項目算是中等項目,一共有六位HP的工程師,華賽派了一位網絡工程師,天泰派了一位安全工程師,我們的客戶是派了三個IT技術支持過來,我們這邊是我和同事二人。人多力量大,毛爺斧說的好,各人各司其職,迅速的做事,效率還是蠻高的,HP用了KVM來安裝系統,8臺服務器同時安裝;那邊的二位工程師也很迅速的設定IP,做內網IP映射等。總之,我擔心的意外也沒發生,基本一天的時間,可以將所有服務器的系統安裝正常,開放Linux的遠程(SSH:22)和windows的遠程(我們是用Remote Admin),網絡方面基本也暢通。天泰的安全工程師也調試了一天,開啓了防火牆的透明(Transparent模式)後,留下了他的聯繫方式給我們就回上海了,臨走時說我們可以24小時找他。我們都笑了,白天上班時間還是可以找的,晚上就算了,免得大煞風景。這是比較成功案例,失敗的例子我也經常遇到,比如網絡不通或對方將我們的網絡設置錯誤等等,那就是比較折磨人了,這事我放在第三點來說。


三、迅速和穩定的處理項目實施中遇到的突發事件

這一點不好說,看項目實施人員的經驗和能力了。比如我有次去武漢某證券公司佈署Nginx+Apache(web)的1+3的小型網站時,忽然發現有臺HP360的主板壞了,怎麼也裝不上系統;我當機立斷,立馬放棄這臺,只部署成1+2方案,然後最後將情況跟負責我們的副總彙報了下,保證整臺系統還是按額定的時間上線,然後我又跟公司的Qs做了大量的壓力測試,發現能頂上,所以就暫時就定成1+2了;還有一次就比較鬱悶了,我們過去實施時,發現客戶已請了家外包公司將機房的網絡做好了,讓我無語的是,由於客戶要求做HA系統,所以我們將施工拓補圖上多畫了一個網段,即10.0.0.0網段,然而客戶這邊的IT老總意圖理解錯了,居然將整套系統做成了二個網段,還劃分了VLAN,當時就徹底把我雷翻了,本來明明就是在局域網的一套系統,怎麼搞得這麼複雜啊?沒辦法,只好花了一下午時間跟他解釋什麼叫Heartbeat,然後跟他解釋這世上還有一種東東叫雙絞線,等他明白過來,再讓外包公司的人過來重新佈線和分配交換機的IP時,寶貴的工期已足足過了三天;我那三天也沒辦法,只能先將系統和能佈署的全佈署上去,最後只等網絡ping通了,期間也想過增加一條靜態路由的方法,但對方的網絡工程師不停的做抽插網線的實驗,最後只有作罷。還有一件事也比較鬱悶,也是替客戶將所有系統佈署好後,發現80端口怎麼也通不了;仔細盤查了對方的網絡工程師,確定問題不出在對方這裏(熟練的網工難道還不會映射一個80端口?),我用遠程telnet 對方映射的外網IP 80端口時發現好無反映,忽然想到:是不是機房封了80?我的神額,這麼簡單的問題難道事先沒溝通好,暈死我了,立馬讓對方的老總跟機房備案,開通80,但時間還是浪費了不少...總之,在項目施工中,不斷的會遇到許多煩心的事,讓你焦頭爛額,讓你心跳加速,所以這也要看你的應變能力了。注意的是,耐心的跟對方溝通,畢竟人跟人之間需要交流;你要理解的是:就是你是某方面的權威,但在另一方面,你可能什麼都不算。所以,低調做人,高調做事,這也是項目施工中應該注意的。


四、在項目施工中多學習,提高個人的能力

實際的線上環境還是很鍛鍊人的,這也是現在不少公司爲什麼一定要招有項目實施經驗的人的原因。我個人感覺,一個成熟並安全的系統,還是很有技術含量的。你要了解網絡、程序、數據庫,還要了解什麼叫併發,什麼叫SSL(哪家公司支持多域名的SSL),什麼叫網架架構,你的網站安全嗎,監控怎麼辦呢?文件服務器壓力大嗎,單臺web崩潰了怎麼辦,PHP的session共享怎麼解決,MySQL數據庫做成什麼樣的,是主從複製還是做成MySQL- cluster(別被MySQL羣集忽悠了,還是主從複製更適用於你的線上系統,相信哥吧),你的SQL Server2008是單臺還是做成SQL Server 2008故障轉移羣集?shell很熟悉了吧,Apache下的正則熟悉不,能不能在十分鐘搞定,兄弟,別笑,我現在經常被我們的Manager鄙視,寫得太慢了,要努力加強啊(沒辦法,這幾年迷住了nginx,喜歡上了在它下面玩正則,唉),有時候,做系統集成這塊也挺累的,你要掌握的東西太多了,而網工相對而言壓力就小多了,你只要保證網絡通暢即可;小公司就不說了,一個IT技術支持就要做N多的事,有意思嗎?我不知道大家有沒有這種情況,我現在維護的電子商務網站,我跟同事經常會遇到老大就站在身後,看你處理故障的事情,如果2分鐘能處理的事,我絕對不會拖到第3分鐘,沒辦法,壓力逼着人成長。項目實施一般都是有合同時間期限的,所以需要大家在短期內做好佈署工作,測試這塊可以跟對方商量,對方也要花一段時間進行內測的;一個成熟安全的系統下來,你會發現你成長得非常快,平時不太注意的細節在線上就是重大的安全生產問題了。所以公司一般有外出部署項目,我一般會同意出去,雖然累,雖然項目提成少得可憐,但爲了成長值也就忍了。


五、最後就是系統的測試和監控了

壓力測試和性能測試一般由公司和對方的測試人員進行,這個大家一般都會給比較充分的時間,這個問題不大。特別是壓力測試這塊,公司很多Qs不是太懂併發,所以你可以耐心跟他們溝通,順便熟悉下他們用的Load Runner,那東東我瞭解了幾次,說老實話,很複雜,還是Apache自帶的工具和webbench簡單些,呵呵。監控這塊我強烈建議用Nagios,郵件和短信通知都要做,並求對方的系統工程師24小時開機,遇到緊急事件要即時處理。事實證明,如果都是做雙機HA,並且有DDOS防火牆的話,緊急事件還是比較少的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章