DevOps

DevOps 一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作, 通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

一篇文了解DevOps:从概念、关键问题、兴起到实现需求

优点

  • DevOps的一个巨大好处就是可以高效交付,这也正好是它的初衷

Puppet和DevOps Research and Assessment (DORA) 主办了2016年DevOps调查报告,根据全球4600位各IT公司的技术工作者的提交数据统计,得出高效公司平均每年可以完成1460次部署。

与低效组织相比,高效组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。在工作内容的时间分配上,低效者要多花22%的时间用在为规划好或者重复工作上,而高效者却可以多花29%的时间用在新的工作上。所以这里的高效不仅仅指公司产出的效率提高,还指员工的工作质量得到提升。

  • DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感

员工们变得更高效,也更有满足和成就感;调查显示高效员工的雇员净推荐值(eNPS:employee Net Promoter Score)更高,即对公司更加认同。

工具准备

上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:

代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

构建工具:Ant、Gradle、maven

自动部署:Capistrano、CodeDeploy

持续集成(CI):Bamboo、Hudson、Jenkins, TeamCity, Travis-CI

配置管理: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、Phabricator

在工具的选择上,需要结合公司业务需求和技术团队情况而定。

更多参见 51 Best DevOps Tools for #DevOps Engineers

文档工具

MD-Editor: VsCode, GitBook

任务计划:OminiPlan

原型绘制:Balsamiq

UML:plantUML, StarUML

图形绘制:Ominigraffle(Mac Only), XMind, 百度脑图(browser), OnProcess(browser)