怎么使用starwind部署iscsi_2019 年总结 - 多环境多版本的部署
生活随笔
收集整理的這篇文章主要介紹了
怎么使用starwind部署iscsi_2019 年总结 - 多环境多版本的部署
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
自己幾乎經(jīng)歷了部署演進(jìn)的所有階段,手動部署、自動部署,部署到服務(wù)器、部署到容器。我們也在不斷演進(jìn)并追趕行業(yè)前沿的技術(shù)/理念。保守估計今年可以基本追趕到行業(yè)前沿的最低水平。
工作中經(jīng)歷了部署語言的多樣化,部署目標(biāo)的演化/進(jìn)化,有最最原始的手動復(fù)制,也有還算前沿的 Docker,總結(jié)起來,大致經(jīng)歷了以下的階段, - 單一開發(fā)語言部署單一操作系統(tǒng) - 多開發(fā)語言部署單一操作系統(tǒng) - 多開發(fā)部署多操作系統(tǒng) - 服務(wù)器部署 - 容器化部署
單一開發(fā)語言部署單一操作系統(tǒng)當(dāng)時所使用的開發(fā)語言為 http://asp.net的 mvc 單體應(yīng)用, 這就決定了使用的服務(wù)器必須是 Windows 操作系統(tǒng)的服務(wù)器(基于 mono 也可以用于 linux)。項(xiàng)目也屬于剛剛起步,應(yīng)用也比較少,需要的服務(wù)器也很少。這個時候,幾乎所有的發(fā)布就是手動編譯、手動部署(CV 操作)。這個時候最大的問題就是部署效率很低,但是因?yàn)閼?yīng)用很少,所以效率的高低并無明顯感知。 多開發(fā)語言部署單一操作系統(tǒng)
公司在發(fā)展,業(yè)務(wù)在推進(jìn),為了能夠讓更多的人協(xié)同工作,發(fā)揮不同語言的的優(yōu)勢,采用了前后端分離的開發(fā)方式。后端采用 http://asp.netweb api + 前端 nodejs。nodejs 可以直接部署到 IIS,所以服務(wù)器還是采用 windows 操作系統(tǒng)(其實(shí)性能也沒有網(wǎng)上噴的那么差,性能也挺好的)。發(fā)布的任務(wù)也越來越重,采用 Jenkins 解決手動發(fā)布的問題。在 windows 操作系統(tǒng)上安裝了 Jenkins,畢竟 windows 操作系統(tǒng),操作相對容易一些。 多開發(fā)部署多操作系統(tǒng)
服務(wù)器部署
隨著微軟推出了跨平臺的 .net core 并且推出正式版本,任何一個做技術(shù)的同學(xué)都有一種對追求新技術(shù)的癖好,我們也開始躍躍欲試,對他虎視眈眈。既然是一門跨平臺的語言,如果不用跨平臺部署那就失去他的意義了。當(dāng)然,并不是為了跨平臺而跨平臺,主要是希望通過跨平臺的過渡能更加靠近前沿/流行的技術(shù)。容器化部署
Docker 是現(xiàn)在最主流的容器引擎。但是對現(xiàn)有的項(xiàng)目來說,存在一個無法忽視的問題, Windows 操作系統(tǒng)無法對 linux 鏡像做操作(pull、build、run 等等),Linux 操作系統(tǒng)也無法對 Windows 鏡像做操作。這就導(dǎo)致,開始在 windows 操作系統(tǒng)上安裝的 Jenkins 不能滿足現(xiàn)在的需求。需要安裝多個 Jenkins 才能可以解決,但也勢必帶來一定運(yùn)維和溝通成本。最后通過更深入的了解 Jenkins,發(fā)現(xiàn)他提供了 Jenkins Master + Node 的方式,Node 可使用不同的操作系統(tǒng),幾乎完美解決了不同操作系統(tǒng)編譯和溝通成本的問題。
.net core 確實(shí)發(fā)展很快,不斷的迭代,每個一個新的穩(wěn)定版本都有很多新功能同時也修復(fù)一些 Bug。出了新的版本就代表舊的版本會在將來的某個時間點(diǎn)停止維護(hù),我們只能選擇在合適的時機(jī)升級版本。升級代碼版本,只要不到一秒鐘就說完了,開發(fā)團(tuán)隊(duì)就至少要花幾天的時間開發(fā)和測試,DevOps 的團(tuán)隊(duì)就需要花更長的時間準(zhǔn)備環(huán)境,以及保證服務(wù)器環(huán)境不出現(xiàn)兼容性問題。 兼容性問題? 不是已經(jīng)使用 Docker 了么,每一個 image 都是單獨(dú)的環(huán)境,哪里來的兼容性問題?兼容性問題來自于 Jenkins 的編譯上,怎么做到一個語言多個版本編譯的問題?我們已經(jīng)采用了 node 編譯的方式,使用更多不同的 node 啊!也可以用環(huán)境變量指定使用哪一個版本啊!
如果我現(xiàn)在不是 DevOps 職位是個開發(fā)職位的話,也覺著這樣完全沒問題。對于 DevOps 來說,這個方式的維護(hù)成本和溝通成本太高了。這只能最為保底的、最壞的解決方案。Docker 給出了解決方案 multi-stage builds,他幾乎完美的解決了這個問題,中間 stage 產(chǎn)生的 image 不會被提交到 repository。不用再擔(dān)心任何語言有任何版本的變化,也不擔(dān)心有多少個版本。
最后還有一個問題沒解決,由于使用 Docker 編譯,中間的 stage 并不會保留,導(dǎo)致每次都要拉取(mvn、nuget、npm)引用的包/代碼編譯不夠快(敏捷)。
希望你留下你對這個問題的思路/方案。
總結(jié)
以上是生活随笔為你收集整理的怎么使用starwind部署iscsi_2019 年总结 - 多环境多版本的部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone 14 如何在锁定屏幕上使用
- 下一篇: cam350怎么看顶层_蛋糕胚速学教程大