1. 程式人生 > >DevOps工具集最佳實踐分享

DevOps工具集最佳實踐分享

在很長一段時間開發和運維是一個硬幣的兩面,看起來雙方分工清晰,需要較少的協同。然而現代的軟體開發、部署執行越來越多的採用分散式架構、叢集環境,這就要求開發人員同運維人員的技能出現了必要的交集,雙方需要緊密協作才能確保應用的正常執行。隨著越來越多的企業IT部門的團隊在專案中採用敏捷過程進行應用的迭代開發,DevOps流程和工具集的整合應用將不僅幫助團隊有效的提升產品程式碼質量,同時大大提高交付速度。 DevOps來源於“Development”和”Operations”兩個IT詞彙的組合,雲星資料提供全面的開發運維自動化解決方案,幫助企業客戶實現敏捷高效的IT開發運維流程。從簡單的伺服器建立、各類應用系統部署、自動化測試、持續監控、動態伸縮等自動化工具整合,到先進高效的敏捷交付方法論、最佳實踐的採用,最大限度地自動化研發團隊、系統運維團隊成員的互動協作。此外,旗下RightCloud CMP平臺產品將接管雲基礎設施的配置,優化和監控,自動化引擎的執行排程,使客戶能夠專注於他的任務,而不會因為系統的基礎設定而分心。 開發人員需求:
  • 持續程式碼修訂、快速修復缺陷
  • 快速響應需求、加快特性交付
運維人員需求:
  • 減少頻繁更新、確保應用持續穩定執行
  • 自動化基礎設定配置管理,持續監控告警
  • 提供可以自助的應用部署服務
不同的需求導致的衝突:
  • 需要改變:軟體開發就是一個變化的過程(新功能、Bug缺陷修復),業務要求快速變化迭代
  • 懼怕改變:一旦軟體部署到生產環境,確保其穩定執行,避免變動

我們看到DevOps連線軟體開發和運維,同時有效的減少了兩個關鍵角色需求的衝突,搭建了雙方協同的橋樑。DevOps不是一種方法學,也不是一種框架,而是一個打破封閉孤立,體現自動協同的原則。實施DevOps可以將其劃分為如下的生命週期階段:
自動化是整個DevOps實現的核心,對應生命週期的每個階段都可以選擇開源工具框架或商業產品。
將DevOps工具集環境作為整體服務交付是一件非常有挑戰的事情。通過上圖可以看到不同階段的工具使用不同的程式語言開發,需要不同的執行環境(OS、資料庫、中介軟體伺服器等)。經過外部客戶專案和內部產品研發的經驗積累,我們
選取了如下的工具集的組合來落地實施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