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