DevOps系列 1 總體架構

2022-08-20 22:36:14 字數 1665 閱讀 9851

細算下來,到目前為止,我從事.net開發已經差不多八年了,也算是乙隻見證了.net從興起到衰落(不知道這麼說會不會被打)再到逐漸有復甦跡象的老鳥了。在這個過程中,帶過團隊,也擔任過架構師(當時為了證明自己並非野路子,2023年還專門拿下了軟考《系統架構設計師》認證)。在企業內部wiki上也寫過不少文章,做過不少技術分享,但畢竟是小群體,文章寫得再爛(甚至只有提綱,或者隻字片語,或者只有一張圖),也可以通過溝通解釋清楚,就算真的寫錯了,也會有很多補救措施,不會產生什麼不良影響。而對外發布,對內容的完整性,嚴謹性以及文字組織能力的要求就要高得多,而這正是我不得不花精力填補的短板。

2023年注定是不平凡的一年,對於我們這些.neter來說更是如此,我不確定能否通過文字完整的出自己的思想,但是我會盡力,希望我的文字不會帶偏你的思路,當然,如果你能贊同我的觀點,並能從中得到一點點啟發,那將是我莫大的榮幸。

好了,閒淡扯完了,進入今天的正題吧!

在這裡,我準備結合自己的工作經歷和個人理解,針對當前比較火熱的devops話題出乙個文章系列。但是,在這之前,有必要從整體上梳理一下思路,圈定一下範圍,以保證整體思想的一致,並方便後續文章的展開。

這個系列並沒有涵蓋devops的全部內容,例如,沒有包含服務的鏈路追蹤、日誌監控、健康檢查等微服務相關的部分,也沒有包括集群和容器的監控、管理、健康檢查、報警等更偏向運維的部分,而是更多的聚焦在ci/cd上。微服務相關的部分後面可能單會獨寫乙個系列詳細**,而運維相關部分則不會過多涉及,即使是k8s容器編排也只會點到為止,因為這部分我自己接觸的也比較少,不敢瞎寫。

注意,這裡的jenkins並非部署了多套,而是在同一套jenkins中根據部署環境的不同劃分了多個分組,每個分組有各自不同的許可權和功能。

開發人員每次寫完**之後,push到源**倉庫(企業中一定會有自己svn或者git等私有倉庫,這是即使沒有devops或ci/cd概念也會存在的最基本的基礎設施,我後續會直接使用github,因此不會單獨介紹這部分內容),自動(或者定時輪詢)觸發jenkins構建,完成nuget包還原,靜態**審查,單元測試,上傳報告到sonarqube伺服器,如果構建失敗,或者**審查和單元測試報告不達標(實際工作中,由於各種原因,這個目標比較難以達到),則反饋開發修復,如果達標則構建映象並發布到開發環境的docker容器中;

開發人員功能開發完成,並通過開發環境容器測試通過後,將dev分支合併到master分支,並傳送提測通知到測試人員;

測試人員(可以在分支合併的時候自動觸發,或者定時輪詢)構建master分支,大體流程跟開發分支相同,不同點就是會發布到盡量貼近生產環境的docker集群,同時將映象push到harbor映象倉庫;

測試人員測試通過後,通知運維人員安排上線;

運維人員通過手動觸發jenkins的方式,先從harbor上pull對應版本的映象,並逐步分階段完成到生產環境docker集群的部署。

剩下的就是生產環境α測試和β測試及一系列的監控了。

devops更多體現的是一種思路和流程,可能每個團隊做法都不一樣,例如,有的團隊可能在dev分支上測試,而在master分支上構建生產環境映象;有的團隊可能因為環境隔離的原因,不得不部署多套jenkins環境等,但歸根結底目的是一樣的,就是達到全程自動化,減少人力勞動(不知道算不算自己砸自己飯碗)以及各種人力,環境等因素導致出錯的概率。

最後,希望.net生態越來越好!

Tomcat 總體架構

首先一定要先感謝 tomcat架構解析 一書的作者劉光瑞,對於我這樣的新手來說,這本書關於tomcat總體架構的介紹能夠讓我快速的了解整個架構的設計背景,達到了循序漸進的目的,在這裡非常推薦新手入手一本。最後這個章節主要是介紹tomcat整體架構的,整體內容主要在於模組介紹以及關聯,希望通過這個章節...

IMS總體架構

ims總體架構 如上圖所示,ims總體架構通常分為三層,接入層 呼叫控制層 業務應用層 上圖中,ims網路主要網元功能說明如下 當前我們主要關注圖中藍色圈點的幾個網元,包括 sip終端 p cscf i cscf s cscf hss as 後續分析總結中主要基於這些網元的互動進行詳細描述。參考文件...

Mysql總體架構

授權命令 grant 許可權1 許可權2 許可權n on 資料庫名稱.表名稱 to 使用者名稱 使用者位址 identified by 連線口令 該許可權如果發現沒有該使用者,則會直接新建乙個使用者。grant select,insert,delete,drop on atguigudb.to li...