DevOps生命週期,你想知道的全都在這裏了!

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"在大多數情況下,軟件應用程序開發由於其規範性和複雜性而變得很耗時。 爲了在短時間內交付高質量應用程序,軟件開發人員正在遵循一套通用的實踐,稱爲DevOps生命週期。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"那麼,DevOps在軟件應用程序開發領域中扮演着什麼角色? 讓我們深入瞭解其含義、用途以及DevOps生命週期中的每個關鍵階段。"}]},{"type":"heading","attrs":{"align":"center","level":1},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#FFE240","name":"user"}}],"text":"●"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#1170F3","name":"user"}}],"text":"什麼是DevOps"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#ffe240","name":"user"}}],"text":"●"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"在DevOps之前,從業人員使用"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"瀑布模型"},{"type":"text","text":"或"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"敏捷開發模型"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}}],"text":"進行軟件項目"},{"type":"text","text":"開發:"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"瀑布模型或順序模型是軟件開發生命週期(SDLC)中的一種開創性方法,在這個模型中,軟件開發成爲一個線性過程,不同的階段和任務被依次定位;而敏捷開發涉及各種方法的使用和SDLC中多個團隊的協作。瀑布模型的線性和敏捷開發的跨功能性"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"無法確保快速、連續地交付無缺陷的軟件應用程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"軟件行業日益清晰地認識到:"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"爲了按時交付軟件產品和服務,開發和運維工作必須緊密合作。"},{"type":"text","text":"這樣的情況下,DevOps應運而生。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOps是一個簡單的縮寫詞,源於“development(開發)”和“Operation(運維)”兩個詞,它涉及以特定的方式實踐應用程序開發的任務。更廣泛地說,軟件開發和IT運維的結合被稱爲DevOps。"}]},{"type":"heading","attrs":{"align":"center","level":1},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#FFE240","name":"user"}}],"text":"●"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#1170F3","name":"user"}}],"text":"DevOps的優勢"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#ffe240","name":"user"}}],"text":"●"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOps在促進IT運維和軟件開發之間的敏捷關係方面的有效性受到幾個因素的支持。通過在軟件開發和IT運維部門的多個業務部門內實現更好的通信,DevOps通過以下優勢的結合改進了軟件的總體生產:"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"穩定的運行環境、超快速的交付、堅實的合作、時間優化(特別是在修復/維護階段)、持續創新。"},{"type":"text","text":"這樣的技術優勢使得DevOps成爲世界上軟件應用程序開發中備受追捧的方法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"要了解DevOps如何實現這些優勢,瞭解DevOps的完整生命週期是很重要的。讓我們分解DevOps中的關鍵階段,並找出實現完美、連續和快速軟件開發的過程。"}]},{"type":"heading","attrs":{"align":"center","level":1},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#FFE240","name":"user"}}],"text":"●"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#1170F3","name":"user"}}],"text":"解密DevOps生命週期"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#ffe240","name":"user"}}],"text":"●"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOps主要用於電子商務網站、雲本地應用程序和其他大型分佈式平臺的應用程序開發。它由多個階段組成,這些階段統稱爲DevOps生命週期:"},{"type":"text","marks":[{"type":"strong"}],"text":"持續發展、持續集成、持續測試、持續反饋、持續監測、持續部署、持續運維。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"這七個階段是能確保DevOps優化從提出到生產再到完整交付的整個開發流程的主要組成部分。 下面是對DevOps生命週期的階段性、完整的分解和分析。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#262626","name":"user"}}],"text":"持續開發"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOps生命週期的第一個階段是"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"規劃和軟件編碼"},{"type":"text","text":"。其中規劃包括理解項目的遠景,並基於這些遠景設想軟件。做規劃不涉及任何主要工具,而維護代碼需要使用一系列工具。 開發應用程序源代碼的第一步是從不同的編程語言中進行選擇。 JavaScript,C / C ++,Ruby和Python在DevOps中主要用於編碼應用程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"維護代碼的過程稱爲源代碼管理(SCM),其中使用了諸如Git、TFS、GitLab、Subversion等版本控制工具。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"在SCM過程中,Git是支持分佈式版本控制的首選工具。它通過循環的非線性工作流對數據保證做出貢獻。對於涉及大量合作者參與開發活動的大型項目,Git通過提交消息在團隊之間建立可靠的通信。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"藉助版本控制工具,可以在連續開發階段構建應用程序代碼的穩定版本。 開發人員還可以使用Garden,Maven和類似工具將代碼打包爲.exe(可執行)文件。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#262626","name":"user"}}],"text":"持續集成"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"源代碼會被修改多次,這些頻繁的更改每週甚至每天都在發生着。 "},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"下一階段的代碼集成是整個DevOps生命週期的核心。"},{"type":"text","text":" 在持續集成中,將構建支持附加功能的新代碼,並將其集成到現有代碼中。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"在這個階段,源代碼中的錯誤會在早期就被檢測到。爲了生成爲應用程序帶來更多功能的新代碼,開發人員運行用於單元測試、代碼評審、集成測試、編譯和打包的工具。 將新代碼持續集成到現有源代碼中有助於反映最終用戶在使用更新後的代碼時所經歷的更改。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"Jenkins是被廣泛應用的可靠的DevOps工具,用於獲取更新的源代碼並將構建構建爲.exe格式。 這些轉換是無縫進行的,更新的代碼將打包並進入下一階段,即生產服務器或測試服務器。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#262626","name":"user"}}],"text":"持續測試"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"一些開發人員在持續集成階段之前執行持續測試階段。根據應用程序代碼中的更新,可以圍繞DevOps生命週期中的持續集成階段重新定位此階段。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"在這個階段,對開發的軟件進行不斷的Bug測試。 使用Docker容器來模擬測試環境。 通過"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"自動化測試"},{"type":"text","text":",開發人員可以節省往常在手動測試中浪費的精力和時間。 自動化測試生成的報告可改善測試評估過程,分析失敗的測試用例變得更加容易。 經過UAT(用戶接受測試)過程後,生成的測試套件更簡單且沒有Bug。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"TestNG,Selenium和JUnit是用於自動化測試的一些DevOps工具。 這些工具還可以在預設的時間線上安排測試用例的執行。質量保證工程師(QA)可以使用這些工具對其他幾個代碼庫進行並行測試。它確保了應用程序實現功能完美和網絡互聯。最後,被測試的代碼被重新發送到持續集成階段以更新源代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#262626","name":"user"}}],"text":"持續反饋"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"持續測試和持續集成是確保應用程序代碼持續改進的兩個關鍵階段,而持續反饋是分析這些改進的階段。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"開發人員可以"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"在最終產品上評估這些修改的結果"},{"type":"text","text":"。 最重要的是,測試這些應用程序的客戶可以在此階段分享他們的經驗。 在大多數情況下,DevOps生命週期的這一階段爲應用程序開發過程提供了一個轉折點。 及時評估反饋,開發人員開始着手進行新更改。 這樣,客戶反饋很快就能得到積極的迴應,這爲發佈軟件應用程序的新版本鋪平了道路。"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/56/56bde1f1928f5a78c15f1962b0b4d3e3.png","alt":null,"title":"","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#262626","name":"user"}}],"text":"持續監測"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"監測應用程序的性能對於應用程序開發人員至關重要。 在此階段,開發人員記錄有關應用程序使用的數據,並持續監測着每個功能。 “服務器無法訪問”或“內存不足”是可以在這個階段被解決的一些常見系統錯誤。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"持續監測有助於保持應用程序中服務的可用性。它還能確認重複出現的系統錯誤的威脅和根本原因。在這個階段,安全問題可以得到解決,還能自動檢測和修復缺陷。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"與軟件開發團隊相比,IT運維團隊在這一階段的參與程度更高。他們的角色在"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"監視用戶活動、檢查系統是否有異常行爲以及跟蹤錯誤的存在"},{"type":"text","text":"方面至關重要。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"Sensu,ELK Stack,NewRelic,Splunk和Nagios是用於持續監視的關鍵DevOps工具。 這些工具可實現對系統、生產服務器和應用程序性能的全面控制。 在這些工具的幫助下,運維團隊可以積極參與,以提高應用程序的可靠性和生產率。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"當在此階段檢測到重大問題時,應用程序將在DevOps生命週期的所有早期階段快速重新運行,這就是爲何在這個階段找到解決各種問題的方法會變得更快的原因。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#262626","name":"user"}}],"text":"持續部署"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"通常來說,持續部署階段發生在持續監視之前。但是,開發人員要確保這個階段在DevOps生命週期中始終處於活動狀態,尤其是在應用程序上線並開始接收大量流量之後。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"在此階段,最終確定的應用程序代碼將被部署到生產服務器。配置管理是這一階段的關鍵過程,它"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"在所有服務器上執行應用程序代碼的精確部署,建立並管理應用程序性能和功能條件的一致性。"},{"type":"text","text":"將代碼發佈到服務器,爲所有服務器安排更新,並且這些配置在整個生產過程中保持一致。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"Ansible、Puppet和Chef是用於配置管理的一些有效的DevOps工具,它們經常執行新代碼的快速和連續部署。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"容器化工具用於通過配置管理過程實現連續部署。 Vagrant是一種容器化工具,可在從開發和測試到階段和生產的不同環境中發展一致性。 同樣,連續部署的可伸縮性由Docker等工具處理。這些工具通過複製和打包來自測試,登臺和開發階段的軟件耦合,消除了各種生產故障和系統錯誤。 最終,該應用程序可以在不同的計算機上流暢運行。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#262626","name":"user"}}],"text":"持續運維"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOps生命週期的最後一個階段是最短且最簡單的階段。 持續運維的目的是"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#000000","name":"user"}},{"type":"strong"}],"text":"使發佈的應用程序和後續更新的過程自動化"},{"type":"text","text":"。 持續運維中的開發週期更短,從而使開發人員能夠不斷加快該應用程序的上市時間"}]},{"type":"heading","attrs":{"align":"center","level":1},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#FFE240","name":"user"}}],"text":"●"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#1170F3","name":"user"}}],"text":"DevOps生命週期可交付成果"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#ffe240","name":"user"}}],"text":"●"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOps生命週期的每一個階段都由兩個共同因素控制:最大程度的自動化和連續性。多功能工具取代了額外的步驟,大大縮短了檢測故障所需的時間。DevOps運行在一個生命週期中,這個生命週期提供了軟件應用程序的最佳版本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/9d/9deef3405c571293f40e2a5c3d4a5457.jpeg","alt":"backlit-blogging-business-coding-debe43cec7c8cc569296ab1ed0436e97.jpg","title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"最終產品使企業能夠"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"恢復迅速開發的速度"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"並同時"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"改善用戶體驗"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"高投資回報率(ROI)"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"簡化了成本控制"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":",開發和運維團隊可以有機合作。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"與"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"持續部署"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"解決方案相結合,將編程代碼發送到1000多臺生產服務器上是可行的。在DevOps生命週期中,有一些高級模式是爲部署而設計的。類似的特性用於交付按需部署和審覈。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"隨着技術的不斷創新,DevOps繼續以最高的質量和速度發展。如今,它已成爲全球數百萬公司"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"數字化轉型"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"之旅的戰略組成部分。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOPS生命週期顯然"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"打破了團隊合作的障礙"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。 當可以使用DevOps構建負責任的業務環境時,無需進行任何冗餘的工作。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"DevOps工具生成的報告提供了"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"業務洞察力"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"並"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"增強了SDLC中的可見性"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。通過端到端的價值管理,DevOps系統地提高了交付速度。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"有了DevOps,項目管理和規劃的任務將最終完成。DevOps既能應用於大型企業,也能服務於中小企業。組織、安排、調整和跟蹤項目都變得更容易。DevOps生命週期的所有階段都保持"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"完整的可跟蹤性"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"大多數軟件開發人員都可以從DevOps提供的分支工具中受益。它可以"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"高效"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"地設計應用程序UI和管理UX代碼、"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"安全"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"地開發和存儲項目數據。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"由於代碼中的每次更改都會影響生產階段,因此用於自動監視和發佈管理的工具分別有助於"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"檢測錯誤"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"和"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"模擬用戶響應"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"由於使用了單一的分佈式版本控制工具,並且通過提供具有快速迭代自由度的高價值業務產品,"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"工作流不會中斷"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"使用DevOps包管理工具可以爲軟件應用程序"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"創建可靠的供應鏈"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。應用程序及其依賴項被捆綁到容器中,容器將進一步管理。開發人員可以通過安全的容器註冊表和存儲庫輕鬆地構建代碼包。DevOps通過自動化軟件開發管道加速了自由、不間斷的流程。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"自動化測試使團隊可以完全接受DevOps生命週期的不同階段,因爲這有助於"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"維持高標準的產品質量"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"。 編碼,驗證,更改,構建新代碼,甚至將它們集成到源代碼中都非常容易。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"除了自動化測試之外,還有代碼質量分析、動態分析安全測試和靜態分析安全測試等過程來收集重要的反饋並將其傳遞給開發人員和測試人員。這增強了開發和操作團隊"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"提高代碼質量"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"的能力。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"關鍵基礎設施配置信息(密碼和登錄ID)的訪問受工具保護,這些工具將它們僞裝成祕密變量。爲了獲得"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}},{"type":"strong"}],"text":"額外的安全性"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":",DevOps提供了有限的訪問權限—只有經過授權的用戶和進程才能獲得訪問權限。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"憑藉其獨立的開發環境和更快的開發方法,DevOps成爲技術市場的重要貢獻者。 它是通過創建動態應用程序來解決技術業務挑戰的最重要的工具集。由於這種方法給開發人員和用戶都能帶來好處,DevOps的採用率持續增加。國內大廠如阿里、騰訊、華爲、等都有自己的雲端DevOps解決方案。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/b5/b5879f5231a8c5ce35108ffd0a7f224b.png","alt":"禪道ZTF截圖.png","title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"以開源和私有部署爲主要特點的"},{"type":"link","attrs":{"href":"http://www.zentao.net/?u=erin&f=wx","title":null},"content":[{"type":"text","text":"禪道"}],"marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"項目管理軟件也已經內置了對Git、Subversion、Jenkins的集成,同時還提供了zentao ztf的自動化測試框架,打通了項目管理工具和持續集成工具中間的溝壑,禪道與ZTF的結合貫穿整個DevOps生命週期。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#3C3C3C","name":"user"}}],"text":"儘管DevOps目前是在全球大多數企業的軟件開發項目的技術背景下進行的,但在未來幾年,它將繼續在現代靜態網頁和動態軟件應用程序的開發中得到多樣化的應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"bgcolor","attrs":{"color":"#ffffff","name":"user"}}],"text":"參考文獻:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Amol Muratkar"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"bgcolor","attrs":{"color":"#ffffff","name":"user"}}],"text":"."},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"What is DevOps Lifecycle and How to Manage Yours [OL].(2020-03-26)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https://dzone.com/articles/what-is-devops-lifecycle-how-to-manage-yours","title":null},"content":[{"type":"text","text":"https://dzone.com/articles/what-is-devops-lifecycle-how-to-manage-yours"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作者:陳琦,資深敏捷測試顧問。擁有20年豐富的敏捷軟件研發實踐經驗,現致力於軟件測試自動化和DevOps相關領域的實踐和研究。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章