機(jī)房搬遷整體方案是為了平穩(wěn)遷移所有業(yè)務(wù),在有限的資源和有限的切換時(shí)間(甚至秒鐘級(jí)別時(shí)間內(nèi))完成搬遷(銀行、ATM之類的公司不能比,在不提供新資源或者提供基礎(chǔ)幾臺(tái)資源的情況下搬遷), 保證機(jī)房業(yè)務(wù)和數(shù)據(jù)能夠安全、可靠、快速的搬遷。

二、 背景
現(xiàn)今IDC跟10年前IDC不同,第一是數(shù)量開始增多,第二是價(jià)格下降,第三是很多公司使用公有云替換了IDC,當(dāng)然也有使用公有云+IDC的公司。總之現(xiàn)在因?yàn)樾枨蟮牟煌鞣N方案都有。(使用公有云替換自己租IDC的公司,主要考慮自己維護(hù)管理機(jī)房、采購(gòu)服務(wù)器、后期維保服務(wù)器等不是專業(yè)的,專業(yè)的事交給專業(yè)的公司干,將公司的精力集中到公司業(yè)務(wù),當(dāng)然關(guān)鍵的還能提升運(yùn)維效率,如,一個(gè)項(xiàng)目立馬上線,如果普通中小企業(yè)無(wú)備用服務(wù)器的情況下,就需要立即購(gòu)買,可能會(huì)有選型、招標(biāo)過程,這樣整個(gè)采購(gòu)周期就很長(zhǎng),項(xiàng)目上線可能延遲。如果使用云幾分鐘就完成任務(wù))。
三、 遷移前的考慮
(其實(shí)這里搬遷到云上已經(jīng)包含其中,當(dāng)然有一些沒法搬遷的后面補(bǔ)充)
1、 機(jī)房標(biāo)準(zhǔn):環(huán)境了解,機(jī)柜位置了解,機(jī)房動(dòng)環(huán)系統(tǒng),pda插口是否滿足需求。
2、 一般租用的機(jī)房公司,他們是否給巡檢,是否有基本的上架,梳理線纜服務(wù)(實(shí)際工作中,上架、拉線、綁線很浪費(fèi)時(shí)間,最后還不是很美觀。)
3、 機(jī)房專線進(jìn)入是否方便,進(jìn)園區(qū)是否收費(fèi),機(jī)房所在公司是否在收端口費(fèi)用,端口費(fèi)用有多貴?
4、 網(wǎng)絡(luò)如何規(guī)劃,需要多少個(gè)接入交換機(jī),路由器、防火墻,是否滿足高可用,是使用大二層還是3層網(wǎng)絡(luò)?是使用基于單個(gè)主機(jī)冗余(交換機(jī)浪費(fèi),但是適用于中小企業(yè)),還是基于整個(gè)機(jī)柜甚至整排機(jī)柜的冗余?我們?cè)?jīng)的機(jī)房是基于主機(jī)冗余(單臺(tái)主機(jī)雙網(wǎng)卡綁定),現(xiàn)在新機(jī)房是使用基于機(jī)柜冗余(允許宕機(jī)一個(gè)機(jī)柜)
如果是公有云:考慮網(wǎng)絡(luò)規(guī)劃、網(wǎng)段、安全組等基礎(chǔ)環(huán)境配置,然后考慮專線跟IDC打通。
四、 搬遷團(tuán)隊(duì)(運(yùn)維人員+開發(fā)+業(yè)務(wù))
1、 是否雇傭?qū)I(yè)搬遷公司,還是自己搬遷+雇傭車。原則上是重要設(shè)備、高端存儲(chǔ)之類的設(shè)備雇傭?qū)I(yè)公司進(jìn)行搬遷,普通x86服務(wù)器,多節(jié)點(diǎn)的業(yè)務(wù),自己搬遷即可。(可以節(jié)省很大的成本)
2、 一般情況下搬遷團(tuán)隊(duì)是由公司運(yùn)維部門擔(dān)任,當(dāng)然一般搬遷都是公司大事,必須知會(huì)各個(gè)開發(fā)部門領(lǐng)導(dǎo)和產(chǎn)品,甚至開專門的動(dòng)員會(huì),這樣開發(fā)才會(huì)配合支持。
五、 原機(jī)房注意事項(xiàng)
1、 統(tǒng)計(jì)搬遷的數(shù)據(jù):機(jī)器數(shù)量、分別每個(gè)機(jī)器的u數(shù),分類搬遷。
2、 準(zhǔn)備打包箱子、標(biāo)簽紙、扎帶等
3、 小型機(jī)鏈接線務(wù)必輕拔輕放,包裝好。
4、 根據(jù)業(yè)務(wù)類型劃分搬遷次序,分配到責(zé)任人,責(zé)任人務(wù)必包含運(yùn)維、開發(fā)、產(chǎn)品。比如:支付系統(tǒng)、營(yíng)銷等
5、 識(shí)別特殊系統(tǒng),比如:有停機(jī)先后順序的,帶存儲(chǔ)的,掛載有nfs的系統(tǒng),帶狗的系統(tǒng),有物理機(jī)授權(quán)等。
六、 針對(duì)每套系統(tǒng)具體方案編寫
1、 按照具體業(yè)務(wù)列出具體系統(tǒng)中的每個(gè)模塊,如營(yíng)銷系統(tǒng)中的優(yōu)惠券、活動(dòng),采銷系統(tǒng)中的訂單、主數(shù)據(jù)等,越細(xì)越好。
2、 按照每套系統(tǒng)的每個(gè)模塊編寫文檔,內(nèi)容包含原主機(jī)ip、部署內(nèi)容、部署路徑或者目錄、緩存ip、數(shù)據(jù)庫(kù)連接ip,zk地址等等,所有詳細(xì)信息均要列出。
3、 與開發(fā)溝通編寫api部分模塊,具體到調(diào)用接口和http接口,所有接口都要列出(后期用于驗(yàn)證)
4、 網(wǎng)絡(luò)層面權(quán)限查看,是否有特殊限制,比如分支機(jī)構(gòu)或者分公司是否有權(quán)限訪問。
5、 域名查看,是否有公網(wǎng)。
6、 注意點(diǎn):如tomcat是否有用戶限制,最好方式是將tomcat直接打包原路徑解壓。即使是平臺(tái)管理也可以這樣操作。
7、 數(shù)據(jù)庫(kù)連接查看,是否有共用庫(kù)的情況,是否有大數(shù)據(jù)抽數(shù),是否有其他特殊權(quán)限。
七、 具體切換方案
1、 網(wǎng)關(guān)或者負(fù)載均衡按照原配置配置即可,后面切換dns即可。
2、 Web層大部分系統(tǒng)為基于互聯(lián)網(wǎng)的多web或者多模塊系統(tǒng),1:1部署即可,按照第六步統(tǒng)計(jì)結(jié)果進(jìn)行部署即可。
3、 Redis、mysql、mongodb采用數(shù)據(jù)同步
4、 Es采用加入集群同步數(shù)據(jù)方式,完成后把老機(jī)器踢出集群。
5、 如果有Oracle,采用OGG或者DG同步到新機(jī)房,提前配置應(yīng)用JDBC鏈接,當(dāng)數(shù)據(jù)追平時(shí),重啟應(yīng)用即可生效。這步說來簡(jiǎn)單,實(shí)際辦起來可能因?yàn)閿?shù)據(jù)大小,或者每天產(chǎn)生的數(shù)據(jù)過多,會(huì)導(dǎo)致性能問題。當(dāng)然還有一些其他的問題,細(xì)節(jié)上要注意,多想問題。
6、 最難的就是一些老系統(tǒng),比如一些win系統(tǒng),開發(fā)走了無(wú)人維護(hù),甚至一些系統(tǒng)是購(gòu)買的商業(yè)軟件,但是這個(gè)商業(yè)軟件公司已經(jīng)倒閉。這種系統(tǒng)最麻煩,一般采用硬搬,當(dāng)然要備份相應(yīng)的數(shù)據(jù)。
7、 小型機(jī)和存儲(chǔ)搬遷也是麻煩事,注意上面拆除小型機(jī),一些連接線要保存好,存儲(chǔ)這個(gè)該買保險(xiǎn)買保險(xiǎn)。
八、 具體切換
1、 按照上面7個(gè)步驟該準(zhǔn)備的準(zhǔn)備,越細(xì)越好。
2、 提前將新環(huán)境部署好,只等待dba同步數(shù)據(jù),等到數(shù)據(jù)同步完畢,每套系統(tǒng)按照具體的修改代碼提交,發(fā)布,鏈接到新機(jī)房的庫(kù)。
3、 數(shù)據(jù)庫(kù)檢查鏈接正常,即可驗(yàn)證業(yè)務(wù)。
4、 產(chǎn)品通知業(yè)務(wù)一起驗(yàn)證業(yè)務(wù)。
5、 回顧切換過程中的問題,形成總結(jié)文檔。
九、 總結(jié)
以上幾點(diǎn)均是我在搬遷工作中形成的一些經(jīng)驗(yàn),越細(xì)越不容易出問題,一般遷移切換選擇閑時(shí)進(jìn)行,比如晚上或者半夜遷移切換,往往第二天早上因?yàn)橐粋€(gè)配置疏忽造成業(yè)務(wù)受影響,所以重要系統(tǒng),重要配置最好雙人檢核,避免出現(xiàn)事故。