【編者按】本文作者為 kevin goldberg,主要介紹了在開發、運營應用的完整生命週期當中,可能用到的 devops 工具大集合。文章系 oneapm 工程師編譯整理。
devops工具包中合適的工具可以幫助你在企業內成功實施devops,增強敏捷發布過程和團隊協作。筆者想先宣告,devops不僅涉及工具,如果背後沒有合適的人員與文化,即使擁有最好的工具,也不能成功實施devops。不幸的是,沒有「文化」工具可供你使用,讓你能夠立刻在團隊之間培養協作和反饋。
合適的工具可以提供框架,幫助公司成功實施devops。你選擇的工具,應該鼓勵反饋,並防止進一步形成孤立。工具還應該幫助統一和協調團隊。確定採用的devops工具包,是實現devops目標和量化成功的關鍵第一步。雖然工具的特性集和解決方案是很重要的,也要確保重視工具組合起來的效果。無法整合的工具可能會需要過多的維護,成本,或產生衝突的資訊。
在乙個非常簡化的應用生命週期檢視中,筆者將過程劃分為四個主要步驟:規劃,設計,部署和維護。在每乙個步驟中,都有可以增強這一環節的工具。同樣重要的是,這個過程不是一次性的,這是乙個持續的迴圈。這種持續的反饋週期,是devops成功的必要基礎。
與其通過一系列的產品列表來選擇devops工具,你應該考慮自己的應用生命週期,根據特定的目標來做出選擇。
雖然有多款工具可以支援你的devops規劃,但幾乎每一種規劃都依靠相同的基礎:借助應用智慧型在雲中進行構建。如果沒有雲,自動化和敏捷性幾乎是不可能的——讓我們在雲的假設下繼續。
使用虛擬化支援,在雲中構建,你可以根據需求,適當調整,實現動態擴充套件的靈活性。雲的好處是成本與需求成線性比例,所以你只需支付自己使用的部分。
要有效管理devops環境,你需要聯合高管、開發人員與運維,並監測應用程式和終端使用者的效能。不同團隊和個人在乙個控制台相互協作,並獲得相關應用智慧型的訪問許可權,從而優化軟體戰略,對實現devops是至關重要的。
oneapm
開發乙個新的應用,或更新現有的應用,都應該從規劃開始。讓開發人員了解應用的商業目標可以鼓勵他們帶有目的地進行思考,同時開啟反饋迴圈。
同樣,重要的是,無論你最終選擇哪個工具,都應該能建立於你的應用基礎之上,或與之相整合。
企業和開發人員經常犯的乙個錯誤,就是在真空或孤立筒倉中設計應用程式。若沒有任何反饋機制,你只是在構建自己認為有用的功能。
其實,有各種各樣的工具和方法都可以優化這一階段的devops開發。現有應用的實時使用者監測和分析,可以有效判斷客戶的真正需求。它可能是乙個沒有必要的功能或特性,或者只是因為太複雜而沒有被使用,或者有效能問題,無法正常工作。你可以監測哪些特性和功能使用得最為頻繁,哪些根本不使用。最重要的是,通過分析使用量和效能,你可以識別潛在的問題。
配置管理工具,容器和自動化測試真正改變了開發格局。devops的流動性和快節奏是其基礎和優勢之一,但它也是乙個挑戰,需要維持穩定的網路訪問。 配置管理工具, 比如puppet,chef,和ansible讓企業可以管理it配置,通過模組元件和自動化實施,從而確保持續、可靠、穩定的環境。它們使你能將基礎設施作為**。
你的應用上線了,部署完成了,並不意味著你的工作就結束了。效能問題,停機時間,崩潰仍有可能困擾你的應用,進而影響業務。作為乙個新的devops團隊,你需要做好運營工作。當有問題時,收到告警,進而找到問題的根源是至關重要的,可以確保積極、無縫的使用者體驗。
devops是持續的,沒有明確的生命週期起點或終點。這一切都始於接受devops文化,建立雲和虛擬化的堅實基礎。除此之外,規劃、設計、架構、實施,部署,維護和執行應用的生命週期是乙個迴圈往復的過程。
devops環境太複雜和多變,很難通過人工流程管理;使用最傳統的方法監測,是無法跟上步伐的。為了有效地迴圈和往復,企業需要專為devops設計乙個監測解決方案。
本文** oneapm 官方部落格
DevOps教程 DevOps 生命週期
devops定義了運營與開發之間的敏捷關係。從產品的開始到最終階段,開發團隊和運營工程師共同實踐這一過程。我們的 devops 教程旨在幫助初學者和專業人士。不了解 devops 生命週期階段的話,就不能完整地學習 devops。devops 生命週期包括以下七個階段 此階段涉及軟體的計畫和編碼。在...
iOS App應用生命週期
ios應用的五種狀態 1 not running 非執行狀態 應用沒有執行或被系統終止。2 inactive 前台非活動狀態 應用正在進入前台狀態,但是還不能接受事件處理。3 active 前台活動狀態 應用進入前台狀態,能接受事件處理。4 background 後台狀態 應用進入後台後,依然能夠執...
iPhone應用程式生命週期
int argc,char argv,nsstring principalclassname,nsstring delegateclassname 來獲取應用程式的控制代碼。2 從給定的應用程式委託類,初始化乙個應用程式委託。並把該委託設定為應用程式的委託,這裡就有如果傳入引數為nil,會呼叫函式訪...