序言 同城異地災(zāi)備,主要是用來進行備份容災(zāi)的,從而當(dāng)一個數(shù)據(jù)中心掛了,另外一個數(shù)據(jù)中心經(jīng)過切換之后,能讓服務(wù)迅速的恢復(fù)。 同城雙活,則是基于多機房的情況下,流量經(jīng)過雙機房,一個機房掛掉,完全不影響業(yè)務(wù)。 微風(fēng)浮起,吹動星空一縷輕云 很正經(jīng)的吹牛逼從網(wǎng)絡(luò)的層面來說,單個機房的存在是一個單點故障,因為一個機房宕機,那么業(yè)務(wù)立刻中斷,從而無法進行升級。 云服務(wù),最重要的就是可擴展性,而什么版本支持?jǐn)U展。。。從集群的角度來進行擴展。。。 從最開始,業(yè)務(wù)不斷的發(fā)展,各種流量擁上來,導(dǎo)致業(yè)務(wù)的吞吐量的劇增,從而促使底層的技術(shù)要不斷的進行擴展,從而云平臺的版本是否支持,必須要進行升級。。。 隨著業(yè)務(wù)的進一步發(fā)展,需要提供高可用水平,從而需要從單機房擴展為多機房,從而也就有了同城容災(zāi)。。。 對于運維來說,多一次升級,多一次變更,就會多一個故障,多一個鍋。。。大家排排坐,每個人分一點。。。熱升級了解一下,不可預(yù)知的中斷了解一下 同城異地最關(guān)鍵的點在于存儲,存儲如何跨機房使用,從而分為幾個方面進行探討: 1、 DNS解析 在業(yè)務(wù)大量使用DNS解耦的時候,而且使用雙機房的時候,那么就必然需要DNS具有一定的智能化,從而就有anycast類型的DNS,所謂的anycast類型的DNS,也就是能返回客戶端最短路徑的IP地址,從而讓用戶使用更少的時間得到需要訪問的IP地址。 換一種解釋的方法就是,anycast類型的DNS就是一種網(wǎng)絡(luò)尋址和路由的方法,其中來自單個發(fā)送方的報文被路由到拓?fù)渲凶罱墓?jié)點之上。 使用anycast類型的DNS,能大大的增強可靠性,可用性,整體提高服務(wù)的SLA的水平。 在DNS解析的時候修改的時候,一般是依賴于高可用的SLB服務(wù),從而在切換的時候,一般是對DNS進行動態(tài)的修改。
2、 數(shù)據(jù)庫同步 在數(shù)據(jù)庫方面,主要是使用mysql,而mysql則主要是使用主備模式,從而主的在一個機房,而備庫則在另外一個機房,在同步的時候,不可避免的情況就是如果一旦主機宕機,從而有可能是丟失數(shù)據(jù)的,因為mysql在數(shù)據(jù)同步的時候,是使用異步的方式進行,但是這種由于有操作日志的存在,從而數(shù)據(jù)也不會丟失,但是,有可能存在沖突的可能,從而需要有人為的介入進行修復(fù)。 主備復(fù)制的延遲考慮,一般主機房和備機房之間使用萬兆網(wǎng)絡(luò),從而對于一般的數(shù)據(jù)傳輸來說,延遲不是很高,基本上是可以忽略的。 在使用redis的時候,由于目前版本使用的redis2.8版本,從而不能跨機房做成集群的模式,從而導(dǎo)致redis也只能做成主備的模式,而redis作為高性能的緩存,丟失數(shù)據(jù)就無所謂了,主要還是在于高可用性即可,況且業(yè)務(wù)可以在降級的情況下使用,從而無須擔(dān)心。當(dāng)使用redis3.0或者以上的版本的時候,可以直接跨機房使用redis的集群功能,性能和單機房的速度差不多。 核心數(shù)據(jù)庫,要想高可用,并且不存在數(shù)據(jù)丟失,從而可以使用分布式數(shù)據(jù)庫,在數(shù)據(jù)寫入的時候,采用強同步的方式寫入數(shù)據(jù),對于master節(jié)點,可以采用三機房三中心的模式,使用paxos算法進行選主,從而達(dá)到高可用的目標(biāo),并且在數(shù)據(jù)寫入的時候,寫入三個分片,從而一個分片的數(shù)據(jù)損壞,在后臺進程中,數(shù)據(jù)能慢慢的自動彌補回來,從而達(dá)到強一致性的數(shù)據(jù)保存的效果。 在數(shù)據(jù)庫跨機房同步的時候,mysql可能出現(xiàn)腦裂的情況,也就是雙機房互聯(lián)網(wǎng)絡(luò)出現(xiàn)中斷,從而備機房檢測到主機房不可用,但是在這個時候,是不能自動進行切換的,需要人工介入處理操作。 3、 SLB高可用 在每個機房中,流量的入口總是SLB,從而保證SLB高可用也是相當(dāng)關(guān)鍵的,所有的VM的rs服務(wù)器都是掛接在SLB之后,一旦SLB不可用,那么所有的業(yè)務(wù)中斷。。。SLB故障了解一下。。。勞資內(nèi)心慌的一B。。。 要保證SLB的高可用,好像是主要靠交換機來進行保證,使用什么OSPF動態(tài)路由協(xié)議,從而保證每個SLB的流量都是分?jǐn)偟?,并且SLB之間可以進行會話同步,從而無論是長連接或者是短連接都不會出現(xiàn)太大的問題,業(yè)務(wù)報錯。。。那是必然的。 在使用SLB的時候,可以使用分層的方式來做,第一層使用LVS進行四層負(fù)載均衡,第二層使用haproxy做成七層負(fù)載均衡,也可以再加上一層,使用nginx來進行證書的解析,也就是專門用來解析https的請求,穿透到后端全部是http的請求,從而保證證書都是放在同一個位置進行解析。 4、 業(yè)務(wù)高可用 所有以上的目標(biāo),其實都是為了業(yè)務(wù)的高可用,那么再進行保證業(yè)務(wù)高可用的時候,因為使用的都是VM,從而在創(chuàng)建的時候,需要同步在備用機房創(chuàng)建VM,并且在發(fā)布程序的時候,需要同步進行發(fā)布,也就是主機房發(fā)布一套程序,而備用機房也發(fā)布一套程序,資源浪費,當(dāng)然,這種單純?yōu)榱擞嬎愣腣M,其實可以進行負(fù)載均衡,或者灰度發(fā)布,或者藍(lán)綠測試也不錯。 5.、網(wǎng)絡(luò) 網(wǎng)絡(luò)分為兩種,一種是虛擬網(wǎng)絡(luò)vpc,一種則是經(jīng)典網(wǎng)絡(luò),也就是物理機所在的網(wǎng)絡(luò)。。。 其實在創(chuàng)建VM的時候,就可以分配一個虛擬ip,一個是經(jīng)典ip,從而都可以進行訪問,而且也能起到隔離的作用。。。 快速迭代,快速變化,快速適應(yīng)。。。 無論是業(yè)務(wù)的發(fā)展,還是人的發(fā)展,感覺在更多的時候,技術(shù)都不是問題,而發(fā)展到最后一切都是人的問題。。。到底是人還是狗,WTF。。。 快速的迭代的時候,其實最主要的就是心態(tài)。。。。穩(wěn)住,不要浪。。。穩(wěn)住,怎么可能。。。我們的宗旨是要浪的天際。。。 一旦大招開啟,怎么可能停的下來。。。完全停不下來,毋寧死。。。向死而生。。。如果撤退了,死的更慘,死的更凄涼,所以。。。不能退 其實最可怕的不是事多,最可怕的是定位不準(zhǔn),最可怕的是職責(zé)不清晰。。。最可怕的該上的時候不上,不該上的時候死命的沖。。。。葫蘆娃救爺爺,一個個送,最后。。。一個個慫。。。 戰(zhàn)事在不斷的發(fā)展,如果你們都是優(yōu)秀的,那么就不存在問題了。。。確認(rèn)過眼神,都不是對的人。。。 識別問題,解決問題。。。將問題抹殺在萌芽之中。。。怎么可能,臨時解決的問題那么多,所謂的根源。。。不可能的。。。WTF 突然意識到面試的重要性。。。面試太簡單,說明未來的同事都是渣渣。。。面試越難,說明未來的同事的戰(zhàn)斗力越來越強。。。從面試看待整體的戰(zhàn)斗力了解一下。。。 對一個人,要求越高,從而期望也越大。。。如果對你沒有要求,你就是一灘爛泥,關(guān)我屁事。。。WTF 從戰(zhàn)略上的把控。。。退到全力輔助。。。再退到做好自己的本份。。。還能退到哪里?。。。我是誰,我在哪里,我在做什么。。。 全軍出擊,還是全軍潰?。坎⒉皇呛芏?,或許也懂。。。能觀望到未來的發(fā)展,并沒有一絲曙光。。。說好的藍(lán)天白云呢??? 調(diào)和一下糟糕的心態(tài)。。。所以只能說,你們都很棒,你們都很優(yōu)秀 內(nèi)耗消費的精力太多,導(dǎo)致都不能好好輸出了。。。大招還在CD之中。。。內(nèi)憂外患了解一下。。。 where is your focus?what is your attention?I lost my mind。。。。WTF what is the best solution?talk each other?maybe。。。 |
|