上云之前
在選擇使用阿里云之前,整個(gè)技術(shù)部門采用的是自購服務(wù)器+機(jī)房托管的方式來部署所需要的程序。并且考慮到不同區(qū)域的業(yè)務(wù)以及災(zāi)備的問題,一共在南北兩個(gè)城市的IDC機(jī)房都部署有服務(wù)器來支撐日常業(yè)務(wù)的運(yùn)行。在IDC模式的運(yùn)維工作上面,首先帶來的問題是日常的巡檢和維護(hù),當(dāng)某一個(gè)機(jī)房的設(shè)備如果出現(xiàn)了硬件損壞的情況,運(yùn)維通常可以聯(lián)系機(jī)房進(jìn)行臨時(shí)的設(shè)備替換,并重新申請(qǐng)購買新的設(shè)備,并到機(jī)房去安裝。 這樣的話,首先就是當(dāng)損害一旦產(chǎn)生,某些服務(wù)或者程序所提供的算力會(huì)在某一段時(shí)間內(nèi)降低,而且對(duì)于設(shè)備損壞重新購買所申請(qǐng)的費(fèi)用,在預(yù)算控制上面也是一個(gè)比較難以估計(jì)的問題。再者,當(dāng)新設(shè)備回來后,還是得需要運(yùn)維人員到機(jī)房現(xiàn)場(chǎng)去替換設(shè)備,這樣隨之而來的也就產(chǎn)生了一些不必要的差旅費(fèi)用,這些臨時(shí)費(fèi)用的產(chǎn)生,對(duì)于整個(gè)部門的預(yù)算管理都是一種挑戰(zhàn)。
假設(shè)上架的服務(wù)器都沒有問題,穩(wěn)定的渡過了3年的時(shí)間,或者因?yàn)闃I(yè)務(wù)做得特別好,需要對(duì)機(jī)房進(jìn)行擴(kuò)容,這個(gè)對(duì)于在傳統(tǒng)機(jī)房部署上又是一個(gè)比較頭疼的問題。從選擇什么樣的機(jī)器,機(jī)房是否有足夠的機(jī)柜,機(jī)柜間的網(wǎng)絡(luò)狀況,給供應(yīng)商簽署合同,發(fā)貨,機(jī)器到貨上架,整個(gè)流程會(huì)非常的長,如何選擇最經(jīng)濟(jì)合適的方案來采購機(jī)器以匹配現(xiàn)有的業(yè)務(wù),這個(gè)應(yīng)該是對(duì)決策者比較考驗(yàn)的問題。 如果我們把整個(gè)IDC機(jī)房的運(yùn)行時(shí)間和設(shè)備采購的成本以放到5年來看,我們會(huì)發(fā)現(xiàn)下面的一個(gè)情況。

從上圖我們可以看得出來,根據(jù)逐年的業(yè)務(wù)提升,總是會(huì)發(fā)現(xiàn)IDC的服務(wù)無法滿足業(yè)務(wù)的要求,從而再次對(duì)IDC機(jī)房進(jìn)行擴(kuò)容,擴(kuò)容后的某一段時(shí)間內(nèi)是可以滿足業(yè)務(wù)的需要,但是再某些時(shí)候IDC機(jī)房所能提供的能力又大于業(yè)務(wù)的需求,造成了資源的浪費(fèi),圖形中的兩條線并不是平滑匹配的。
為了解決以上的問題,我們?cè)?018年的時(shí)候開始考慮使用云計(jì)算的方案來替代我們現(xiàn)有的IDC的機(jī)房結(jié)構(gòu)。
準(zhǔn)備上云
上云之需求
說到為什么要上云,其本質(zhì)上并不是說要去追尋什么現(xiàn)在主流的上云趨勢(shì)。而是要實(shí)實(shí)在在解決我們?cè)谏弦粋€(gè)章節(jié)中遇到的問題,總結(jié)來說,上云需要解決:
- 預(yù)算控制問題
- 日常運(yùn)維的快速響應(yīng)問題
- 算力擴(kuò)容問題
- 業(yè)務(wù)與機(jī)器平滑匹配的問題
帶著以上的幾個(gè)問題,我們也開始著手去調(diào)研過一些云廠商的產(chǎn)品與服務(wù)。最后從提供的產(chǎn)品,價(jià)格的方面考慮還是選擇了阿里云。最初在選擇的時(shí)候我們調(diào)研到了阿里云的以下幾個(gè)產(chǎn)品能夠滿足我們的需求:
- ECS (提供與日常服務(wù)器一致的功能)
- EMR (提供hadoop集群功能)
- RDS (提供Mysql和Redis的功能)
但如果只是僅僅考慮到以上的幾個(gè)產(chǎn)品就去上云感覺無非就是把云服務(wù)當(dāng)成了普通的服務(wù)器來使用,并沒有什么太大的優(yōu)勢(shì)。但是結(jié)合到阿里云提供的一些其他產(chǎn)品,整個(gè)系統(tǒng)的結(jié)構(gòu)會(huì)發(fā)生大的變化,所以我們最后選擇使用的產(chǎn)品有: - VPC
- NAT 網(wǎng)關(guān)
- RDS
- SLS
- OSS
- MaxCompute
- CDN
- PAI
- EMR
-
SLB
最終組成的業(yè)務(wù)架構(gòu)圖如下:
image.png
首先通過EIP按照業(yè)務(wù)的需要向外暴露服務(wù),整個(gè)服務(wù)都裝在VPC當(dāng)中,通過NAT網(wǎng)關(guān)的DNAT和SNAT進(jìn)行指向,進(jìn)入的流量由SLB的規(guī)則分發(fā)到指定的ECS當(dāng)中進(jìn)行業(yè)務(wù)的處理,ECS當(dāng)中的PHP,Python, Go 等程序可以通過讀寫RDS當(dāng)中的數(shù)據(jù)進(jìn)行處理,處理后的日志文件交由SLS統(tǒng)一收集并推送到Maxcompute 當(dāng)中進(jìn)行一些業(yè)務(wù)計(jì)算。計(jì)算后的最終結(jié)果再次寫入到RDS當(dāng)中供前端程序展示。計(jì)算中間結(jié)果存入OSS當(dāng)中進(jìn)行備份保存。
在配置沙河環(huán)境的時(shí)候同樣采用了以上的思路,只是具體機(jī)器配置上比正式環(huán)境的略低幾個(gè)檔即可。
以上的所涉及到的各個(gè)產(chǎn)品與服務(wù)將在后面的章節(jié)具體介紹。
