DevOps工具集最佳实践分享

来源:互联网 发布:BFGS算法程序 编辑:程序博客网 时间:2024/06/05 17:50
在很长一段时间开发和运维是一个硬币的两面,看起来双方分工清晰,需要较少的协同。然而现代的软件开发、部署运行越来越多的采用分布式架构、集群环境,这就要求开发人员同运维人员的技能出现了必要的交集,双方需要紧密协作才能确保应用的正常运行。随着越来越多的企业IT部门的团队在项目中采用敏捷过程进行应用的迭代开发,DevOps流程和工具集的集成应用将不仅帮助团队有效的提升产品代码质量,同时大大提高交付速度。

DevOps来源于“Development”和”Operations”两个IT词汇的组合,云星数据提供全面的开发运维自动化解决方案,帮助企业客户实现敏捷高效的IT开发运维流程。从简单的服务器创建、各类应用系统部署、自动化测试、持续监控、动态伸缩等自动化工具集成,到先进高效的敏捷交付方法论、最佳实践的采用,最大限度地自动化研发团队、系统运维团队成员的互动协作。此外,旗下RightCloud CMP平台产品将接管云基础设施的配置,优化和监控,自动化引擎的运行调度,使客户能够专注于他的任务,而不会因为系统的基础设置而分心。

开发人员需求:
  • 持续代码修订、快速修复缺陷
  • 快速响应需求、加快特性交付

运维人员需求:
  • 减少频繁更新、确保应用持续稳定运行
  • 自动化基础设置配置管理,持续监控告警
  • 提供可以自助的应用部署服务

不同的需求导致的冲突:
  • 需要改变:软件开发就是一个变化的过程(新功能、Bug缺陷修复),业务要求快速变化迭代
  • 惧怕改变:一旦软件部署到生产环境,确保其稳定运行,避免变动


我们看到DevOps连接软件开发和运维,同时有效的减少了两个关键角色需求的冲突,搭建了双方协同的桥梁。DevOps不是一种方法学,也不是一种框架,而是一个打破封闭孤立,体现自动协同的原则。实施DevOps可以将其划分为如下的生命周期阶段:

自动化是整个DevOps实现的核心,对应生命周期的每个阶段都可以选择开源工具框架或商业产品。

将DevOps工具集环境作为整体服务交付是一件非常有挑战的事情。通过上图可以看到不同阶段的工具使用不同的编程语言开发,需要不同的运行环境(OS、数据库、中间件服务器等)。经过外部客户项目和内部产品研发的经验积累,我们选取了如下的工具集的组合来落地实施DevOps,并且通过RightCloud混合云平台提供的资源组功能将其包装为一个服务,用户只需要简单的申请订购该服务,平台会在指定的云环境(公有云、私有云)下创建云服务器实例、自动部署配置相关工具软件即刻交付项目组进行使用,开始敏捷迭代之旅。



附: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