天天看點

我眼中的DevOps

 DevOps 在IT行業内近幾年來在不少企業得到廣泛應用,那麼DevOps到底是什麼呢?接下來讓我們一起做一個簡單的了解吧。

DevOps簡介

    DevOps 是由開發(developments)和運維(operations)兩個單詞組成,可以看做是開發、測試和運維之間的一個交集,通過一些列固化的流程來使得整個項目的開發周期變得更便捷和可靠。其核心是CI/CD(持續內建和持續釋出),即通過自動的觸發代碼建構、釋出、測試、監控等一系列自動化的操作,來提升工作效率,代替反複且容易出錯的手工操作。它的出現是由于軟體行業日益清晰地認識到:為了按時傳遞軟體産品和服務,開發和營運工作必須緊密合作

DevOps簡單流程介紹

    下面給大家簡單的介紹一下一個比較簡單的devops流程,也是我在第一家公司裡面的流程:

我眼中的DevOps

1、開發人員送出代碼到源碼管理倉庫(git/svn),源碼管理的話 ,現在公司大部分都自己搭建了gitlab伺服器,并對接了公司的ldap域認證,對每個使用者的權限進行嚴格的控制

2、代碼送出後,自動出發代碼編譯操作,檢查是否能編譯通過,能編譯通過,就接着出發代碼掃描(包括代碼編寫風格、是否有安全漏洞之類、文法錯誤之類的),有寫單元測試腳本的話也順帶執行一下單元測試腳本。在這個過程中,針對不同的程式設計語言,需要內建不同的插件或工具去進行掃描。

3、釋出代碼到指定的環境。測試階段的話,一般檢測到代碼變更後,可以在建構後自動釋出到測試環境,生産環境的話,則需要在驗證通過之後才能釋出。在這中間會搭建倉庫用來存儲版本釋出的相關部署包。

4、釋出成功後,運作測試人員寫好的驗證腳本進行回歸驗證,如果這個過程中有任何一個環境出現報錯的話,可以以郵件或者其他方式提醒使用者

補充說明:以上隻是列舉了一個最簡單的流程,全流程都是可以實作自動觸發操作,不需要手動操作。在這中間還可以根據自己公司的實際業務情況,進行一些環節的删減操作,在這小編再列舉一下小編待過的第一家公司的devops流程實作的一些功能:

    統計開發人員每天、每周送出的代碼量,某個項目針對某個版本的代碼變化量,代碼行數、代碼未解決的bug數量

    自動釋出測試環境,自動執行測試用例

    自動掃描代碼,檢查是否有安全漏洞,可以采集一些資料做一個簡單的報表 ,給公司的QA分析各個項目每月的版本品質情況以及研發的效率。

自己搭建DevOps平台需要用到的一些工具

    下面就簡單的介紹一些我了解過的工具(當然也有一些其他的工具我沒接觸過的)

源代碼管理工具:git、svn

持續內建工具:jenkins

倉庫管理:nexus、artifactory  (管理jar包,dll檔案,docker鏡像等)

代碼編譯工具:maven、ant、gradle

配置管理/自動化部署工具:chef、ansible等

其他:要準備對應的伺服器、搭建伺服器監控平台

本次就先分享這麼多 ,要搭建和維護好devops平台,還需要去了解一下shell、batch腳本,以及一些其他腳本,友善處理一些複雜的操作。接下來我将根據自己的記憶,陸續分享一些在這個過程中用到的技術點,大家在學習devops相關内容時遇到問題 ,也可以與小編一起讨論,小編也很願意與大家一起去學習這個行業的一些技術。

完整的devops流水線肯定遠遠不止我描述的這些,以上隻是列舉一下我之前在公司中接觸到的部分内容~~

繼續閱讀