代碼發(fā)布平臺的設(shè)計
代碼上線如果采用人工方式,那就有點熬人了。尤其像咋這種粗心又大意的小伙伴,一不小心發(fā)個bug甚至直接把rm指令當(dāng)mv的用,那妥妥的要挨打。所以我們需要一條途徑讓我們的代碼上線很easy,而且只能在規(guī)定的范圍內(nèi)進(jìn)行操作。于是乎我們就需要這樣一個發(fā)布系統(tǒng),市面上的發(fā)布系統(tǒng)也就是流水線了。當(dāng)然這個流水線吶是定制化的過程,就像鏈表一樣可以添加節(jié)點,刪除節(jié)點這樣子。現(xiàn)在的問題是咋也想自己搞這么一個發(fā)布系統(tǒng)拿出來賣錢,比如一套系統(tǒng)買個幾百塊錢,價錢低也架不住市場廣泛呀。但是問題是我們?nèi)绾卧O(shè)計這個一個發(fā)布系統(tǒng)吶,我們要用那些技術(shù)組件來做這樣一個利人利己的事?
發(fā)布系統(tǒng)本質(zhì)上就是替代人的因素。所以我們發(fā)布系統(tǒng)模擬的就是發(fā)布代碼的程序員。所以大概的過程如下:


上述流程貌似一氣呵成,實現(xiàn)了我們的需求,但是問題是我怎么知道項目啟動的結(jié)果是什么樣子的,啟動過程中有沒有報錯。說的簡單點就是,我想看到我項目啟動的一些信息,再簡單的來說我想收集的是日志,so,這樣的話,又該怎么做?
尤其是像我們的項目是夸機(jī)器部署,具有多個機(jī)器,日志收集這塊我們馬上想到之前學(xué)redis的分布式文件分發(fā)的那塊,我們完全可以采用list數(shù)據(jù)結(jié)構(gòu)來記錄目標(biāo)機(jī)器的日志。將日志直接打入redis中,然后設(shè)置過期時間。發(fā)布者通過請求從redis中獲取項目啟動日志并展示給項目的發(fā)布者。這樣我們的發(fā)布系統(tǒng)就如下圖所示:

