Devops與敏捷二者能否結合?
本篇目錄
DevOps與敏捷的結合
DevOps的实施主要集中在软件的各个方面,例如注重软件的可操作性、软件过程的自动化、可扩展性,以及每个版本的更好的部署方式以及它的监视和长期维护。DevOps的缺点是它不能支持敏捷开发中支持的代码的持续测试。与DevOps不同,敏捷主要关注産品是否满足客户的需求,因此专注于严格的测试。
与其单独使用DevOps和敏捷来进行开发,不如将它们结合在一起作为一股力量来汲取二者的长处,从而使软件行业受益。这可以通过将敏捷的冲刺与DevOps提供的集成团队合作来实现。因此,在软件开发中混合DevOps和敏捷方法是提高生产力和交付高质量软件産品的关键要求。这种方法可以优化软件的增量开发及其维护。
DevOps和敏捷結合的優勢
●为发布过程创建了一个模式,并提高産品价值。●允許更好的協作。
●降低發布版本的風險。
●解決錯誤和修複Bug的速度更快。
●增加透明度。
●産品质量提高,满足用户期望。
二者結合需考慮的問題
爲了避免遇到障礙,讓我們來看看對DevOps和敏捷開發的順利結合和實現更高的生産率構成威脅的挑戰。
1、在團隊內部建立良好融洽的關系,確保工作流程順暢進行。
團隊成員應該理解如何協同使用DevOps和敏捷開發方法,並且應該拓寬自身視野,找出在不引起沖突的情況下充分利用二者的方法,並爲增加軟件的業務價值做出貢獻。團隊成員不應該只關注開發周期,還應該關注軟件的維護、可操作性和交付等方面。團隊應該是富有經驗的,並且應該擁有每個版本、服務、適應變更、如何管理變更、工具自動化的知識。2、概述生命周期
随着DevOps和敏捷的集成,团队现在关心整个开发生命周期中的操作。因此,应该制定一个适当的开发生命周期来提高一致性,最小化开发时间,对每个版本提供全面的测试,并加快産品交付的过程。开发生命周期应该包括开发阶段早期的DevOps方法。3、爲沖刺調整DevOps
敏捷方法將開發過程劃分爲多個Sprint,但是現在不妨結合團隊具體情況來設計一種策略,將DevOps正確地包含在Sprint中。在sprint中遵循這些指導原則來集成DevOps
●在計劃沖刺時,征求運營和支持人員的意見並將這些意見納入計劃內。●同时考虑産品的特性、功能及操作。
●在接下來的沖刺階段要考慮到DevOps。
●試著讓devops團隊參與scrum的每日站會、計劃會議、回顧會議等敏捷開發流程中。
包含質量保證
敏捷包括對每個版本的持續測試和集成,但是除了功能測試之外,它不提供性能和負載測試,這是DevOps所需要的。因此對于每個版本都應該包括這些測試。所以QA應該包含在開發的每個階段。在DevOps下執行待辦列表
在協作期間,在DevOps框架下構建待辦列表,需要考慮到:軟件可擴展性、監控服務、部署能力、日志記錄、警報設置、測試軟件、安全問題、運營效能。
設備自動化
工作流自動化是將DevOps和敏捷方法結合在一起的一個重要部分。爲了避免潛在的漏洞,需自動化所有的編碼過程。
提供文檔
敏捷方法並不執著于文檔;相反,他們更專注于開發,而DevOps記錄了軟件版本的設計和其他規範。因而,文檔的提供依然不可或缺。
禅道DevOps解決方案
基于敏捷開發方法論Scrum的禅道項目管理軟件提供了DevOps解決方案,有助于規劃和集成DevOps和敏捷。
禅道對DevOps和持續集成的支持,包括Git、Subversion版本系統集成,Jenkins構建任務觸發,以及ZTF自動化測試調度幾個方面。通過禅道自研的
ZTF自動化測試工具,可很好地驅動8種單元測試框架、3種自動化測試框架來執行測試,並把最終結果回傳給禅道,進行統一的報告展示。禅道ZTF打通了項目管理和持續集成工具之間的溝壑,貫穿持續集成、持續測試、持續部署等DevOps生命周期的不同階段。

