DevOps简介 DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。 DevOps的概念 DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。 DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维 DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出 实现DevOps需要什么? 硬性要求:工具上的准备 上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下: 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion 构建工具:Ant、Gradle、maven 自动部署:Capistrano、CodeDeploy 持续集成(CI):Bamboo、Hudson、Jenkins 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail 容器:Docker、LXC、第三方厂商如AWS 编排:Kubernetes、Core、Apache Mesos、DC/OS 服务注册与发现:Zookeeper、etcd、Consul 脚本语言:python、ruby、shell 日志管理:ELK、Logentries 系统监控:Datadog、Graphite、Icinga、Nagios 性能监控:AppDynamics、New Relic、Splunk 压力测试:JMeter、Blaze Meter、loader.io 预警:PagerDuty、pingdom、厂商自带如AWS SNS HTTP加速器:Varnish 消息总线:ActiveMQ、SQS 应用服务器:Tomcat、JBoss Web服务器:Apache、Nginx、IIS 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker 在工具的选择上,需要结合公司业务需求和技术团队情况而定。(注:更多关于工具的详细介绍可以参见此文:51 Best DevOps Tools for #DevOps Engineers) 参照文档: https://www.cnblogs.com/liufei1983/p/7152013.html