什麼是DevOps,以及如何使用Microsoft在組織中實施DevOps

介紹

DevOps是當今的熱門話題。但是,對此有很多困惑。根據美國一家全球研究和諮詢公司Gartner進行的研究,雖然90%的受訪組織表示自己正忙於DevOps,但有44%的公開承認他們仍在努力尋找含義。在本文檔中,我將向讀者介紹DevOps的基本概念,並教給他們有關如何使用Microsoft 365 Suite和Microsoft Azure應用DevOps的指南。

什麼是DevOps?

DevOps術語是開發和運營的結合,其根源是豐田生產系統的製造方法,敏捷軟體方法和約翰·博伊德的OODA Loop。DevOps的關鍵概念建立在建立團隊之間的協作文化基礎上,這些團隊過去一直在相對的孤島中工作,開發人員在其中創建應用程序,而IT運營團隊將它們部署到他們管理的基礎架構中。筒倉之間的這種分離以及職責和程序會帶來嚴重的延誤和不準確,例如,通過採用票證之類的正式電子郵件與其他團隊進行溝通。這種文化的實施通常涉及採用雲計算。儘管如此,它還包括組織結構調整,軟體架構變更,

「 DevOps是人員,流程和產品的結合,能夠為最終用戶持續交付價值。」

Donovan Brown,Microsoft DevOps PM。

豐田生產系統

1930年,豐田公司根據操作模型「豐田之路」引入了一種新的生產方法,稱為精益生產。該模型基於14條原則,旨在為人們提供不斷改進其工作的工具。這些原則中的兩個是KaizenJidoka

改善

由於可以改進每個流程,因此該原則激勵每個員工尋找改善公司各個級別的運營和人員的方法,以支持這一改進過程。這種參與產生了過程成功的責任,從而提高了士氣和質量。為了成功,Kaizen要求設定明確的目標和指標。需要強調的是,Kaizen不僅基於僅由專家或管理層開發和實施的改進,而且還涉及所有人。我們可以將改善原則定義為持續改進

吉多卡

Jidoka原則強調質量高於一切,使操作員能夠發現異常狀況並立即停止工作。豐田通過創建安東簾線並強制其員工在生產出現問題時拉動簾線來實現這一原則。這條Tether不過是一根繩子,而被拉動後,它會立即停止組裝線上的所有工作。一旦停止所有生產,團隊負責人將立即調查拉繩的原因,然後與團隊一起解決問題並重新開始生產。即使這聽起來可能瘋狂而無濟於事,但豐田汽車公司意識到,如果不加註意,裝配線上未解決的問題會帶來巨大的複雜性,並導致大量金錢的浪費。

DevOps和OODA循環

早在1950年代,美國空軍上校約翰·博伊德(John Boyd)開發了一個周期,以幫助人們在無法預測的混亂環境中成功開展工作。OODA Loop致力於使人們能夠快速,果斷地做出地面決策,它包括四個階段:

·觀察

·東方

·決定

·行為

儘管它是像許多其他發明(例如互聯網)一樣在軍事環境中開發的,但它已在民用領域中得到了應用,如今,OODA Loop與敏捷的軟體開發方法相關聯。敏捷不是要讓一種設計進入最終產品,而是要儘快製造出最低限度的可行產品,以便可以對其進行測試和快速重新設計,以更好地適應市場和競爭對手。

實施DevOps

既然我們知道了什麼是DevOps,以及在我們公司中實施DevOps實踐的好處是什麼,那麼讓我們看一下實施過程實際上是如何工作的。在本節中,我將指導您如何使用以下技術堆棧將DevOps應用於您的組織:

·Microsoft Office 365

·Microsoft Azure

·Microsoft Azure板

·Microsoft Azure管道

·Microsoft Azure存儲庫

·Microsoft Azure測試計劃

Microsoft Office 365

由於大多數開發人員已經熟悉Microsoft Suite,因此所有通信和文檔都將從Google Suite移至Microsoft Office 365。

Microsoft Office 365的全球利益

·Office 365除了在Web瀏覽器中使用之外,還提供了廣泛的桌面應用程序。另一方面,Google Suite僅基於網路。

·即使這兩種方法都允許我們創建文檔,電子表格和演示文稿,但與Microsoft相比,Google生態系統還是有局限性,尤其是對於工作表之間具有大量關聯的複雜Excel文件。

·從管理控制台輕鬆管理用戶和組許可權以及軟體許可證(圖1)。

1wjdG9dYb0ya8jYqKhFH0tQ

圖1:Office 365 Admin Central的示例

微軟團隊的好處

切換到Office 365的一個顯著優勢是引入了Microsoft Teams,這是一個協作中心,它將用戶,對話,在線會議,內容和工具集成在一個獨特的應用程序中。除了Microsoft廣泛使用的應用程序之外,該軟體還提供了廣泛的第三者擴展,可以集成到Teams中。例如,開發團隊可以使用Visual Studio Team System(VSTS)選項卡直接在Microsoft Teams上具有特定的儀錶板甚至看板。該工具將允許團隊成員實時更新其項目狀態,而無需在網站之間導航(圖2)。

172EloZ5nGEwxTfFp0egrNw

圖2:Microsoft Teams與Microsoft VSTS之間集成的示例

將每個協作應用程序都放在一個界面中,以及OneDrive和SharePoint提供的文檔的可訪問性,可提高性能並減少浪費的時間。例如,如果將新團隊成員分配給現有項目,則足以將他/她從Office 365管理中心添加到與那些項目相關的Office 365組中。這樣,他/他就可以立即訪問該項目的每個存儲庫,SharePoint或OneDrive上的文檔以及Microsoft Teams中的團隊。這樣可以節省大量時間,並且可以提高流程的效率和安全性。使用Microsoft Teams的另一個重要優勢是透明度。對於許多組織而言,最大的挑戰是使每個人都了解最新情況。

蔚藍

即使雲和DevOps彼此獨立,但云在基礎架構和可伸縮性方面提供的敏捷性對於希望採用DevOps文化的公司而言也至關重要。由於其中心化的特性,像Azure這樣的雲計算環境通過提供用於測試,部署和生產以及持續集成和持續開發工具的獨特平台,可以降低複雜性。結果,IT部門將工作重心從配置硬體或修補操作系統等任務轉移到了增加業務特定價值上。我建議增加雲的使用量,並增加董事會,管道,回購協議和測試計劃之類的服務的日常使用量(圖3)。

1WT8PAxsZxSr2O_5qSU1cYg

圖3:Azure DevOps雲服務

我選擇Microsoft Azure而不是其他供應商(例如AWS或Google Cloud),因為:

·微軟開發了Azure DevOps,以幫助企業通過董事會,回購協議,管道,測試計劃和工件等特定服務輕鬆遷移到DevOps文化。

·Microsoft Azure與其他應用程序(如SharePoint,Dynamics 365和Office 365)高度集成。

·它在全球範圍內為數據中心提供高可用性和冗餘,從而使其可以提供99.95%的SLA(服務水平協議)。

·Microsoft Azure提供了基於DADSC(檢測,評估,診斷,穩定和關閉)方法的安全控制系統,該方法可提供可靠的保護以防止數據丟失,並被Gartner認可為Cloud IaaS(基礎設施即服務)的行業領導者)。

·儘管其競爭對手在線提供的文檔很少且令人困惑,但Azure提供了數千個在線演練以及非常豐富的文檔,可幫助新手快速學習平台。

利用雲計算服務而非本地環境帶來的其他好處是可伸縮性,成本效益,安全性和靈活性。Azure開發槽代表了靈活性的示例。這些特定的插槽使開發團隊可以在與生產插槽不同的插槽上部署新版本,通過更改定向到每個插槽的用戶的百分比來對其進行測試,然後只需單擊一下即可替換插槽,從而快速釋放產品(圖) 4)。此過程極大地減少了錯誤餘量,並減少了完成發布過程所需的時間。

1Q7ZZmIZS2iXgIMohBGBdYQ

圖4:在Azure開發插槽之間交易所的示例

還必須提及的是,由於使用了Azure Active Directory,如果將新成員分配到了特定的Office 365組,則該成員還將獲得Azure特權,使他/她可以訪問特定資源,創建新服務以及進行更多操作。更多。此功能使新員工的入職速度更快。Azure還提供了許多工具來為Linux環境以及Docker等容器開發應用程序。

Azure板

Azure Boards是一項Web服務,通​​過將整個開發分為幾個用戶案例(或積壓項目),每個團隊都由小任務和相關問題組成,它使團隊更易於管理工作負載。該應用程序具有看板,可視化工具(圖4)和積壓的積壓訂單,可幫助團隊輕鬆查看和共享進度。同樣,這些工具藉助其自定義的儀錶板和集成的報告,可以幫助項目經理跟蹤項目的狀態和趨勢。根據相關的軟體開發框架(基本,敏捷,Scrum和CMMI),此服務還提供了彼此不同的不同模板。但是,隨著業務的增長,所有這些都易於擴展。

Azure開發板和DevOps

如前幾章所述,DevOps與精益生產和即時製造技術緊密相連。因此,由於看板具有通過增量發布和少量新功能或漏洞修復來促進產品開發的能力,因此看板非常適合DevOps。由於看板周期的時間是以小時或一天為單位來衡量的,因此大型複雜的開發項目被分解為小型且易於理解的任務(通常由卡代表),這些任務按列排列在板上,每個代表不同的狀態。看板的重點是完成任務,限制進行中的工作並交付即時價值。

1do_TZefB4LJ5HX5OL43nnQ

圖4:Azure開發板示例

Azure存儲庫

另一個重大改進是引入了Azure Repos。由於這項服務,可以輕鬆地在分配給項目的每個工程師之間訪問和共享代碼。由於Azure Repos同時支持GIT(分散式版本控制)和Team基金版本控制(中心化版本),因此每個項目都可以使用最適合其需求的版本控制系統(VCS)。使用VCS的好處很多,以下是一些示例:

· 協作:團隊中的每個人都可以隨時自由地處理任何文件。VCS允許您將所有更改合併到標準版本中,從而消除了任何有關最新版本的問題。

· 存儲版本:VCS會將所有過去的版本和變體打包在一起。在需要時,您可以隨時請求任何版本,甚至只需單擊一下即可恢復以前的版本。

· 不可能丟失:由於代碼在線,因此即使計算機損壞也無法丟失。

該服務還與Visual Studio完全集成在一起,從而使每個開發人員都可以直接從Visual Studio執行先前的操作(圖5)。

1dAtu1MpMCCQ6PdW8oYe6-Q

圖5:從Visual Studio 2019上傳到TFVC存儲庫中的代碼示例

Azure管道

在每次功能開發之後,傳統的代碼提交和與分支合併的方法可能變得非常複雜,甚至可能導致錯誤。Azure管道通過結合持續集成和持續交付(CI和CD)來解決此問題。使用此Web服務可以通過在多個目標(例如註冊表,虛擬機,Azure服務等)上自動構建,測試和部署項目代碼來確保代碼的一致性和質量。可以通過自動構建和自動測試來驗證與共享存儲庫的每個集成,從而使過程更快,更安全(圖6)。

Azure管道和DevOps

藉助持續交付(CD),可以自動準備代碼更改以發布到生產環境。然後,可以通過將在構建階段準備的修改(由連續交付執行)自動部署到測試環境或生產環境中,從而在持續集成時擴展連續交付。這樣,開發人員將具有通過標準化測試過程傳遞的可部署的構建工件。持續集成的主要目標是通過減少查找和解決錯誤的時間,減少驗證和發布新軟體更新的時間來提高軟體質量。

12kwhg3j4x4gLhvTmvs_MPA

圖6:使用Azure Pipeline開發的管道示例

Azure測試計劃

萬一特定項目需要手動測試,Azure測試計劃服務提供計劃手動測試,用戶驗收測試所需的所有功能,並且由於它與Azure板的集成,因此可以快速收集利益相關者的反饋。此Web服務的主要目的和優點是擁有一個跟蹤執行的每個測試,仍需要執行的每個測試以及每個測試中的步驟的工具(圖7)。

16lNc9Sz3cF4_GsJ3gC10Jg

圖7:測試用例列表示例

投資回報

簡而言之,DevOps旨在幫助您更快地交付更高質量的產品,這意味著您將獲得更高的客戶滿意度,並且需要更少的工程師來分配每個項目。例如,在其業務中實施DevOps文化後,Fidelity Worldwide Investments報告稱部署時間從3天減少到2小時,從而在2014年為他們節省了200萬美元。採用諸如Scrum,Agile和CMMI之類的軟體開發框架將提高生產率,提高產品質量並減少公司的工作量,這將間接地減輕工作壓力。例如,在對開發流程進行重組後,位於美國俄亥俄州哥倫布的美國大型保險和金融服務公司集團Nationwide Insurance的質量提高了50%,

結論

採用上述服務將使目標公司逐漸接受DevOps文化,這意味著將浪費更少的時間,改善溝通,並組織和簡化任務管理。該代碼將更加可靠並且不易出錯,這將提高客戶對產品的滿意度,並降低團隊稍後不得不再次修復項目的機會。如果存在任何類型的硬體故障,在基於雲的環境上運行還將保留文件和版本,並且更有可能防止安全漏洞。多虧了Microsoft Office 365和Microsoft Teams,項目所有者與不同組以及與客戶端之間的通信將變得更加容易。所有這些都能帶來更高的客戶滿意度,更高質量的產品,

你可能還喜歡