大家好,我叫王碩,來自于 GrowingIO。
剛才聽上一個演講嘉賓講精益看板很有感觸,作為運(yùn)維來講,在某些公司有時候會非常痛苦,因為出了問題大家都會先找你,恨不得你就是那個干壞事的人,背鍋的人,有些公司出大問題,老板會站在你身后看你去解決問題,而且日常會有很多插入的工作,最終會導(dǎo)致工作不是那么開心。我之前就職的兩家公司都是外企,更講究有效率的工作和加班,其實還是比較不錯的,即使加班也會有加班費(fèi),法定節(jié)假日加班是 3 倍工資。每天工作不會讓你干滿 8 個小時,6 個小時已經(jīng)不錯了,如果你能高效干 4 個小時已經(jīng)挺好了。如果你去參加開發(fā)者大會經(jīng)常會聽到敏捷這個詞,在之前的公司當(dāng)中,我們就是用 Scrum 來高效的管理 DevOps 團(tuán)隊的。
今天我講的演講主題是如何基于 AWS 做自動伸縮系統(tǒng),AWS 是云計算的鼻祖,是最開始做云計算的。我們在 AWS 還沒有提供自動伸縮服務(wù)之前我們就已經(jīng)做出了自動伸縮系統(tǒng),而且是使用了 Spot Instances,也就是競價實例。
在進(jìn)入正題之前先介紹一下 GrowingIO,GrowingIO 是基于用戶行為的新一代數(shù)據(jù)分析產(chǎn)品,無需埋點即可采集全量、實時用戶行為數(shù)據(jù),數(shù)據(jù)分析更精細(xì),幫助管理者、產(chǎn)品經(jīng)理、市場運(yùn)營、數(shù)據(jù)分析師、增長黑客等提升轉(zhuǎn)化率、優(yōu)化網(wǎng)站 / APP,實現(xiàn)用戶快速增長和變現(xiàn)。這是一件非常有挑戰(zhàn)的事情。放眼今天我們來看整個運(yùn)維行業(yè),如果你只是一個傳統(tǒng)的 Ops,在大公司做一顆螺絲釘是完全沒有問題的,但是如果你想去一家創(chuàng)業(yè)公司,你想讓自己變得有競爭力,香港站群服務(wù)器 美國服務(wù)器,你必須成為 DevOps,你必須具有很強(qiáng)的開發(fā)背景。而今后不僅僅你要具有很強(qiáng)的開發(fā)背景、運(yùn)維背景等相關(guān)的知識,你還要具備 Growth 思想,大數(shù)據(jù)分析的能力,而 GrowingIO 能夠幫助你成為這樣的人,歡迎加入 GrowingIO。
進(jìn)入正題,為什么要做自動伸縮系統(tǒng),首先集群要承載高峰期的壓力,其次也要減少低峰期的服務(wù)器成本。DevOps 要干的事情很多,Cost Saving 是其中很重要的一個方面,這是我們做自動伸縮系統(tǒng)的一個目的。
接下來講一講 AWS 的 Instnaces 類型,首先最常見的一種是 On-Demand Instances,不管是按小時計費(fèi)還是分鐘計費(fèi),說白了起來就計費(fèi),基本上國內(nèi)的云廠商都會支持這種方式。第二種是 Reserved Instances,國內(nèi)的云廠商大部分也支持這功能。第三種是 Spot Instances,比如說一個機(jī)器你出一塊錢我出兩塊錢,價高者得,這是一個競價的過程。國內(nèi)實現(xiàn)這個功能的廠商并不多。我們?nèi)绻虢档头?wù)器的費(fèi)用,就要很好的利用 Spot Instances。我們就是通過這種方式,節(jié)省了很多服務(wù)器的費(fèi)用,當(dāng)然具體細(xì)節(jié)還涉及到很多復(fù)雜的東西,有可能很小的一個機(jī)型,通過不同的競價反而價錢會比較高。比如說 A 機(jī)型本來要小于 B 機(jī)型,但也許通過競價,價錢要比 B 機(jī)型價錢高,這里涉及到競價算法的事情。
講一講我們遇到的痛點有哪些。首先,AWS 這么大的云廠商,我們都可能遇到某個機(jī)房機(jī)器不夠的情況,你的自動伸縮系統(tǒng)要有能力 Launch 不同類型的機(jī)器、甚至不同機(jī)房的機(jī)器。第二,有些機(jī)器有可能因為某些特殊的原因,他是不能夠被關(guān)閉的。第三個是網(wǎng)絡(luò)原因,AWS 在全球市場是做得非常成功,但是在巴西市場做的不是特別好,經(jīng)常有網(wǎng)絡(luò)方面的問題。
講一講我們做這個系統(tǒng)的幾個原則。第一點,我們盡可能的 Launch 競價實例,這樣成本最低。第二,如果其他機(jī)型沒有了,AWS 機(jī)房沒這個機(jī)型了,我們要有能力 Launch 其他的機(jī)型。第三,如果某個機(jī)房沒機(jī)器了,我們可以在另外一個機(jī)房 Launch 服務(wù)器。第四點,在縮容的過程當(dāng)中,我們要優(yōu)先關(guān)閉 On-Demand Instances,說白了就是優(yōu)先關(guān)貴的。最后一點,要保證整個集群要有至少那么幾臺 On Demond 機(jī)器來保證正常工作。
接下來講一下 DevOps 今后的發(fā)展方向。如果你只是一個傳統(tǒng)的 Ops,其實不太具備市場競爭力,就今天來看,如果你具有很強(qiáng)的開發(fā)能力,目前來講你還能夠找到一個比較好的工作,未來你一定要是具有大數(shù)據(jù)分析的能力,再加上 DevOps,你才能夠具備一定的市場競爭力。我之前是在 LinkedIn 工作,做社交的公司都會有做一個 PYMK 的東西,People You May Know,其實就是做人脈的推薦,你可能對這個人感興趣,他把這個人推薦給你了,或者說國內(nèi)的很多做酒店的,比如說攜程之類的,他也會給你推薦一些酒店。但是 DevOps 有什么場景需要這些大數(shù)據(jù)分析呢,我們之前做傳統(tǒng)運(yùn)維,你無法預(yù)測服務(wù)器未來會發(fā)生什么。今天每天服務(wù)器產(chǎn)生這么多數(shù)據(jù),不管是系統(tǒng)級別的還是服務(wù)級別的,你怎么樣去預(yù)測這臺服務(wù)器明天會不會出現(xiàn)問題呢?能不能基于大數(shù)據(jù)分析,預(yù)測未來哪些服務(wù)器可能會出現(xiàn)問題,哪些服務(wù)可能會出現(xiàn)問題呢?我們在做面向用戶這種產(chǎn)品的時候經(jīng)常會講用戶的畫像是什么,對于 DevOps 來講,你的服務(wù)器相關(guān)的服務(wù)的畫像又是什么?這是一個非常值得思考的問題,也是今后 DevOps 需要做的事情,DevOps 已經(jīng)轉(zhuǎn)型至 AIOps 了。