自研DevOps實踐之路
做者:Andrew Wen
本文爲原創文章,轉載請註明做者及出處
今天想和你們分享下關於咱們本身內部作的DevOps實踐,實施過程當中有不少問題和坑,一路踩過來確實也不容易。
DevOps是很一個很大的概念,咱們第一階段只是實現了最基礎的部分。html
一切從一個笑話提及
這個故事是一個一直流傳在咱們研發中心的真實的案例。git
雖然如今幾位大神都已經離開咱們的團隊,可是在說故事前,我仍是都徵得案例的主角的贊成,把故事拿出來分享。docker
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
升級前三天,大神說「不就是幾個爛命令嗎?分分鐘跟大家搞定」,兩手一伸,擁抱這個世界。
而後,我寫了一個吊炸天的系統升級申請表,預計升級須要時間:3分鐘,故障回滾:咱們不可能有故障。架構
升級當夜,下班後,距離升級時間還早,就去把牛板筋火鍋吃完(牛板筋味道真他媽棒!),優哉遊哉的往公司去。框架
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
對這個案例的思考
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
咱們選擇的改進方法
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
docker的重要組成部分
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
如何構建咱們本身的docker鏡像
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
Dockerfile的編寫
![圖片描述 圖片描述](http://static.javashuo.com/static/loading.gif)
難道咱們每次都非得這樣手工操做嗎?
gitlab用途
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
別把法拉利開成了拖拉機
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
曾經咱們都是怎麼作的
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
如今咱們又是怎麼作的
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
可是,咱們的生產環境是在集羣上,不是單機
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
mesos 資源管理工做流
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
服務註冊於發現
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
mesos就這些嗎?太low了吧?NO
mesos特性
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
總體集羣資源管理及高可用
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
高可用
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
健康檢查及故障重啓
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
健康檢查
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
彈性伸縮
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
多項目共享,咱們能夠這樣來作
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
藍綠部署
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
在那麼多框架中,咱們爲何選擇了mesos
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
難道集羣就只是部署啓動就完了嗎?
分佈式應用之殤
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
集中監控
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
對granafa,稍微多說那麼一點點
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
集中日誌管理
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
一堆開源框架,你是要玩死咱們嗎?
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
回過頭咱們再來看看咱們的總體架構
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
是工具也是思想
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
架構的演進,Qcon上人人車分享他們的架構演進
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
DevOps
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
社區,生態
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
接下來,大家打算還要作點什麼
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
分享一句話
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
我在慕課網上製做了一個與此有關的課程,有興趣的朋友能夠去關注下分佈式
課程地址工具
![慕課 慕課](http://static.javashuo.com/static/loading.gif)