大话2免费版一级星盘炼化表

    1. <form id=zhudObCNh><nobr id=zhudObCNh></nobr></form>
      <address id=zhudObCNh><nobr id=zhudObCNh><nobr id=zhudObCNh></nobr></nobr></address>

      收藏!如何有效實施DevOps?

      原創
      当今IT行业的竞争日益激烈,各家公司都在寻找优化软件研发过程的方法,因为交付比对手更具竞争力的産品已经越发成为一件成本高昂的事情。这也是DevOps发挥作用的地方,因为它可以在工程管理的各个方面提供帮助。
      瀑布開發模型已被廣泛使用多年,但它的開發、測試和運維在整個生命周期中是相對分離的。而今,隨著敏捷方法的不斷發展,持續集成和DevOps在某種程度上就變得越發重要。

      實施原則

      CAMS模型很好地闡述了DevOps的基本原則,其核心目標是實現過程自動化,以提高生産效率;通過持續地度量、反饋和改進,以確保快速交付的質量。
      讓我們來進一步了解CAMS模型:
      Culture(文化):DevOps提倡把溝通、技術、方法和工具緊密地聯系在一起;
      Automation(自動化):通過自動化來提高各環節活動的工作效率;
      Measurement(度量):需要及時對關鍵過程和質量指標進行度量和反饋;
      Sharing Feedback(反馈共享):通過共享反饋和建議,以獲得持續改進,應用最佳實踐來促進組織發展。

      實施步驟

      DevOps生命周期包括持续开发、持续集成、持续测试、持续反馈、持續監測、持续部署和持续运维。以持續交付爲核心目標,DevOps將各項研發活動進行有機結合,以簡單化、高效化整個項目過程。

      采用敏捷方法

      通过实施短平快的敏捷研发过程,将整个项目过程分解为若干Sprint迭代,可以增加发布频次,使産品的新特性、以及可能存在的问题得到尽早地检测、发现和响应。提高生产率和交付质量,以期从有限的研发投入中,获得更大的收益。DevOps生命周期包括持续开发、持续集成、持续测试、持续反馈、持續監測、持续部署和持续运维。以持續交付爲核心目標,DevOps將各項研發活動進行有機結合,以簡單化、高效化整個項目過程。

      集成CI/CD工具實現基礎設施自動化

      DevOps使用微服務對系統進行更細粒度的拆解和管理,相對獨立的模組服務被分發到不同的容器中。在這個階段,最常用的工具包括Ansible、Puppet、Chef、Kubernetes。爲了獲得最佳的配置管理和應用部署效果,這些工具可以很容易地與CI/CD工具(如Bamboo、GoCD和Jenkins)進行集成,從而有效地實現持續集成。

      容器化

      Docker是著名的容器引擎,通過將相對獨立的業務模組分解到不同的容器中,提供盡量松耦合的無狀態服務。通過容器,可以無縫、高效地將已驗證的軟件從測試服務器遷移、部署到生産環境中。 同整個IT基礎設施相隔離的容器具備更好的可遷移性和可控性,這也是容器化作爲DevOps基礎設施管理的一個重要原因。

      部署階段

      這個階段,涉及應用在生産環境服務器上部署和運行。經過驗證的軟件,最終將被部署到生産環境中,服務于終端用戶。自動化的配置和部署是這一階段的關鍵活動, 它執行快速、准確的部署,並建立功能、性能、穩定和安全性等方面的統一化監控和管理。
      任何更新必須以不幹擾已部署且運作良好的功能的方式進行發布,遵循“快速失敗”的方法,新部署的特性或變更,將及時地接受用戶的使用和驗證。這個階段可用于部署的一些工具有Ansible、Chef、Puppet等。

      持續監測

      使用监测工具,让掌控生产服务质量状态变得更为简单和快捷。这个阶段也需要分析从内部团队和用户那里获得的反馈,并及时作出响应和跟踪处理。持續監測有助于 對問題做出快速發現和響應,保持服務的可用性、穩定性,它還能協助我們追蹤和確認頻繁出現的問題的最新演進、潛在威脅和根本原因。在這個階段,性能和安全性問題可以得到有效捕獲和處理,借助一些工具也能做到自動修複運維中的某類問題。
      相比開發團隊,運維團隊在這一階段的參與程度更高。這個階段的主要工作在于監控用戶活動和系統響應的有效性、及時性,檢查系統是否有異常行爲,以及跟蹤問題引發風險的進展。此時類似Nagios、Prometheus、Zabbix的自動化工具將發揮重要作用。

      確保團隊間的持續反饋

      通过不同团队、角色间的有效沟通和协作,交付件、技术和过程方面的问题得到精准的定位和高效的解决,从而带来生成过程和産品质量的整体持续提升。这也需要各个团队与公司整体的DevOps目标保持高度的一致。
      如在 禅道項目管理軟件中,明确地将産品、项目、测试三者概念区分开,産品人员、开发团队、测试人员,三者分立,互相配合,又互相制约,通过需求、任务、Bug来进行交相互动,任务直接指派到所属团队及个人,这种团队内的及时沟通反馈有助于效率的提高。
      禅道自主研發的自動化測試框架(禅道ZTF)與禅道無縫集成,可將禅道用例和自動化測試腳本一一綁定,執行的結果能提交到禅道中作爲測試結果,執行失敗的腳本也可以自動創建Bug。自動化測試框架實現了與Jenkins持續集成功能打通。用戶發起任務後,通過ZTF自動執行測試腳本,把單元測試的結果回傳給禅道,二者合作打通了持續集成閉環。整個團隊內部實現持續反饋, 使流程更靈活,調試過程更簡化,更是降低了Bug修複的成本。

      結論

      綜上所述,DevOps的實踐效果有賴于上述各項活動的有效開展。引入並推廣DevOps需要花費大量資源和成本,但一旦成功實施,便將受益匪淺。根據最近一項對2.5萬多名專業技術人員的調查,大多數成功實施DevOps的公司 ,在保持質量的前提下,持續叠代和發布的效率往往得到了指數級的提高。
      盡管DevOps實施起來並不總是那麽容易,但有了規範的流程和良好的實踐,就能夠顯著提高生産率、降低成本、提高交付質量。據此,我們也可以預見,DevOps在未來將會被越來越廣泛地應用。

      參考文獻:
      Mitesh Patel .How to Do DevOps Effectively? [OL].(2020-05-08)
      https://dzone.com/articles/how-to-do-devops-effectively


      DevOps幹貨
      HoME大话2免费版一级星盘炼化表