DevOps涉及領域普遍,其含義因人而異,在不一樣的理解和需求場景下,有着不一樣的實踐形式。
DevOps能夠理解爲是一個職位、一種組織形式、一套工具集合、一組過程與方法。
但從商業價值角度來講,DevOps是指經過Dev(開發)和Ops(運維)的緊密合做來實現和提升商業價值的工做方式和文化。
不只包括了新技術和新工具的使用,還包括相關的團隊組織建設和文化,實現持續改善的運維結構,以及開發流程設計等。
經過開發與運維之間的協做,可以消除對我的的依賴、減輕團隊之間的損耗,提升質量和開發速度,並經過互相理解來加強變動的靈活性,快速知足商業需求。安全
各類支撐DevOps的思想、改善對策和工具共同組成了DevOps,難以在普遍的場景中明確地指出DevOps實踐的準肯定義。
但一般都會包括實現「基礎設施即代碼」和組建適合DevOps的體制這兩部分。服務器
「基礎設施即代碼」是在DevOps實踐中支持開發和運維緊密合做的一個很是有效的方法。
「基礎設施即代碼」,能夠簡單理解爲:網絡
組建適合DevOps的體制,運維團隊和開發團隊共享信息,在變動時互相審查,深刻了解對方的工做內容,進而理解並達成共識。
擁有共同的目的意識,雙方經過自主行動來不斷接近共同目標。架構
此外,DevOps是融合在業務中的持續性的改善和實踐,而不是爲了一次性完成全部的改善。運維
理解傳統開發模式和敏捷開發模式的不一樣,以及各自的問題。工具
瀑布模型明確劃分了開發階段和各階段的產出物,沒法有效應對新增需求。
敏捷開發以小規模團隊爲前提,每次只發布最低限度的功能集,而後聽取反饋,進行持續改善。測試
開發和運維之間的產生「混亂」:運維產生技術負債、抵觸變動和基礎設施不足,開發忽略非功能性需求,運維和開發逐漸「割裂和對立」。優化
開發部門確保需求的實現,運維部門確保系統穩定、快速地運行,但最重要的根本任務是確保商業的有效性,商業價值的實現
經過工具和文化來支持開發和運維緊密合做,消除專業性和複雜性,減小工做量,同時使信息可視化,以此來下降變動帶來的風險。
團隊中任何成員均可以基於相同的信息迅速開展工做,同時經過自動化和持續集成來大幅縮短應對變動所須要的時間,高效知足商業需求。操作系統
文化的含義:尊重(Respect)、信任(Trust)、正確認識失敗(Healthy attitude about failure)和避免指責(Avoiding Blame)。設計
基於REST API能夠根據指定的參數來進行自動化配置。
REST API能夠用URL表示資源,經過HTTP協議來獲取資源的狀態或者變動資源的配置。
在設計上支持和外部系統進行集成,能夠將更新信息發送到外部溝通工具,也能夠直接共享URL來訪問指定的信息。
例如通用的WeChat、Skype等,面向企業的Cisco Jabber、Chatwork等。
將聊天機器人與聊天工具、業務系統集成,能夠代替部分的人工做業,提高反應速度。
除了開源的持續集成和部署工具Jenkins,還有云的持續集成工具服務,例如Circle CI和Travis CI。
在持續交付階段,可採用藍綠部署方法來確保部署的安全性。
主流的監控工具主要是指Zabbix。
經過組合不一樣的中間件,能夠將日誌做爲監控信息來進行分析處理。