### 一、DevOps介紹
軟件開發最開始是由兩個團隊組成:
- 開發計劃由[開發團隊]()從頭開始設計和整體系統的構建。需要系統不停的迭代更新。
- [運維團隊]()將開發團隊的Code進行測試后部署上線。希望系統穩定安全運行。
這看似兩個目標不同的團隊需要協同完成一個軟件的開發。
在開發團隊指定好計劃并完成coding后,需要提供到運維團隊。
運維團隊向開發團隊反饋需要修復的BUG以及一些需要返工的任務。
這時開發團隊需要經常等待運維團隊的反饋。這無疑延長了事件并推遲了整個軟件開發的周期。
會有一種方式,在開發團隊等待的時候,讓開發團隊轉移到下一個項目中。等待運維團隊為之前的代碼提供反饋。
可是這樣就意味著一個完整的項目需要一個更長的周期才可以開發出最終代碼。
----------
基于現在的互聯網現狀,更推崇敏捷式開發,這樣就導致項目的迭代速度更快,但是由于開發團隊與運維團隊的溝通問題,會導致新版本上線的時間成本很高。這又違背的敏捷式開發的最初的目的。
那么如果讓開發團隊和運維團隊整合到成一個團隊,協同應對一套軟件呢?這就被稱為[DevOps]()。
[DevOps](),字面意思是Development &Operations的縮寫,也就是開發&運維。
雖然字面意思只涉及到了開發團隊和運維團隊,其實QA測試團隊也是參與其中的。
網上可以查看到[DevOps]()的符號類似于一個無窮大的符號

這表明[DevOps]()是一個不斷提高效率并且持續不斷工作的過程
[DevOps]()的方式可以讓公司能夠更快地應對更新和市場發展變化,開發可以快速交付,部署也更加穩定。
核心就在于[簡化Dev和Ops團隊之間的流程,使整體軟件開發過程更快速。]()
整體的軟件開發流程包括:
- PLAN:開發團隊根據客戶的目標制定開發計劃
- CODE:根據PLAN開始編碼過程,需要將不同版本的代碼存儲在一個庫中。
- BUILD:編碼完成后,需要將代碼構建并且運行。
- TEST:成功構建項目后,需要測試代碼是否存在BUG或錯誤。
- DEPLOY:代碼經過手動測試和自動化測試后,認定代碼已經準備好部署并且交給運維團隊。
- OPERATE:運維團隊將代碼部署到生產環境中。
- MONITOR:項目部署上線后,需要持續的監控產品。
- INTEGRATE:然后將監控階段收到的反饋發送回PLAN階段,整體反復的流程就是[DevOps]()的核心,即持續集成、持續部署。
為了保證整體流程可以高效的完成,各個階段都有比較常見的工具,如下圖:

最終可以給[DevOps]()下一個定義:[DevOps 強調的是高效組織團隊之間如何通過自動化的工具協作和溝通來完成軟件的生命周期管理,從而更快、更頻繁地交付更穩定的軟件。]()
自動化的工具協作和溝通來完成軟件的生命周期管理
- DevOps介紹
- 持續集成流程
- git工作流實踐
- 新人準備git環境
- git工作流最佳實踐
- jenkins基礎入門
- jenkins簡介
- jenkins安裝(docker)
- 源碼拉取
- maven構建
- 應用發布
- 結合gitlab版本管理
- jenkins-docker部署
- harbor鏡像發布
- jenkins集成SonarQube
- SonarQube代碼檢測
- 集成SonarQube
- jenkins-pipeline
- 構建pipeline任務
- pipeline基礎結構
- pipeline核心語法
- jenkinsfile構建
- 完整案例
- 整合釘釘發送通知
- 腳本使用憑證信息
- jenkins結合k8s使用
- k8s架構及基礎概念
- k8s操作命令
- jenkins部署k8s
- 附錄(其他未完成)
- jenkins高可用服務搭建
- gitlab-docker環境搭建
- 開發人員安裝git
- JDK與maven
- docker安裝gitlab
- docker安裝
- docker-compose安裝
- harbor安裝
- SonarQube安裝
- 2.暫時沒寫的內容
- 構建結果郵件發送
- 已有項目上傳gitlab