在列出DevOps 工具鏈以前,介紹一下什麼是DevOps,雖然DevOps這個概念如今尚未標準的定義,但咱們能夠追溯一下其過去九年的歷史發展過程(從2009年~2017年),列出幾個相對明確又有所不一樣不一樣的定義,從而可以比較全面瞭解DevOps的內涵。
【2009】 DevOps是一組過程、方法與系統的統稱,用於促進開發、技術運營和QA部門之間的溝通、協做與整合;
【2011】快速響應業務和客戶的需求,經過行爲科學改善IT各部門之間的溝通, 以加快IT組織交付知足快速生產軟件產品和服務的目
【2015】DevOps強調溝通、協做、集成、自動化和度量,以幫助組織快速開發軟件產品,並提升操做性能和質量保證;強調自動化軟件交付和基礎設施變動的過程,以創建一種文化和環境,經過構建、測試和發佈軟件等方法,能夠快速、頻繁地、更可靠地發佈軟件。
【2016】 DevOps的目標是創建流水線式的準時制(JIT)的業務流程,以得到最大化業務成果,例如增長銷售和利潤率,提升業務速度、減小運營成本。
【2017】一個軟件工程實踐,旨在統一軟件開發(Dev)和軟件操做(Ops),與業務目標緊密結合,在軟件構建、集成、測試、發佈到部署和基礎設施管理中大力提倡自動化和監控。DevOps的目標是縮短開發週期,增長部署頻率,更可靠的發佈。
--2018-02-07 朱少民 軟件質量報道ios
在很長一段時間開發和運維是一個硬幣的兩面,看起來雙方分工清晰,須要較少的協同。然而現代的軟件開發、部署運行愈來愈多的採用分佈式架構、集羣環境,這就要求開發人員同運維人員的技能出現了必要的交集,雙方須要緊密協做才能確保應用的正常運行。隨着愈來愈多的企業IT部門的團隊在項目中採用敏捷過程進行應用的迭代開發,DevOps流程和工具集的集成應用將不只幫助團隊有效的提高產品代碼質量,同時大大提升交付速度。安全
開發人員需求:
持續代碼修訂、快速修復缺陷
快速響應需求、加快特性交付架構
運維人員需求:
減小頻繁更新、確保應用持續穩定運行
自動化基礎設置配置管理,持續監控告警
提供能夠自助的應用部署服務app
不一樣的需求致使的衝突:
須要改變:軟件開發就是一個變化的過程(新功能、Bug缺陷修復),業務要求快速變化迭代
害怕改變:一旦軟件部署到生產環境,確保其穩定運行,避免變更
框架
簡單地說,DevOps是敏捷研發中持續構建(Continuous Build,CB)、持續集成(Continuous Integration,CI)、持續交付(Continuous Delivery,CD)的天然延伸,從研發週期向右擴展到部署、運維,不只打通研發的「需求、開發與測試」各個環節,還打通「研發」與「運維」。DevOps 適合「軟件即服務(SaaS)」或「平臺即服務(PaaS)」這樣的應用領域,其顯著的特徵就是:
覆蓋了產品管理、項目管理、持續集成、自動部署、交付流水線、精益度量 6 個領域能力;
打通用戶、PMO、需求、設計、開發(Dev)、測試、運維(Ops)等各上下游部門或不一樣角色;
打通業務、架構、代碼、測試、部署、監控、安全、性能等各領域工具鏈;
有助於定義設計方法、開發方法、測試方法、安裝方法、環境管理方法、配置管理方法、應用部署方法、反饋收集方法、代碼改善方法和創新方法。運維
咱們看到DevOps鏈接軟件開發和運維,同時有效的減小了兩個關鍵角色需求的衝突,搭建了雙方協同的橋樑。DevOps不是一種方法學,也不是一種框架,而是一個打破封閉孤立,體現自動協同的原則。實施DevOps能夠將其劃分爲以下的生命週期階段:
分佈式
自動化是整個DevOps實現的核心,對應生命週期的每一個階段均可以選擇開源工具框架或商業產品。工具
下面咱們就展開DevOps的工具鏈:
性能
更完整的結構化描述:
測試
DevOps經常使用工具集清單:
Operating Systems
Linux (RHEL, CentOS, Ubuntu,CoreOS)
Unix (Solaris, AIX, HP/UX, etc.)
Windows
Mac OS X
Infrastructure as a Service
Amazon Web Services
Azure
OpenStack
Aliyun
Virtualization Platforms
VMware
VirtualBox
Vagrant
Containerization Tools
Docker
Rocket
Kubernetes
Linux OS Installation
Kickstart
Cobbler
Stacki
Foreman
Configuration Management
Ansible
Puppet
Chef
Salstack
Compile and Build Systems
Gradle
Maven
Ant
Integration System
Jenkins
Hudson
Bamboo
Application Servers
JBoss
Tomcat
Jetty
Glassfish
Weblogic
Web Servers
Nginx
Apache
Queues, Caches
ActiveMQ
RabbitMQ
Memcache
Databases
Percona Server
MySQL
PostgreSQL
MongoDB
Cassandra
Redis
Oracle
MS SQL
Monitoring, Alerting, and Trending
Nagios
Graphite
Ganglia
Cacti
PagerDuty
Logging
PaperTrail
Logstash
Loggly
ELK
Splunk
Process Supervisors
Monit
Runit
Supervisor
God
Security
Snorby Threat Stack
Tripwire
Snort
Miscellaneous Tools
Multihost SSH Wrapper
Code Climate
文章參考: