通常在一个公司里,由于各个部门需要管理各自的工作,而且工作类型也不十分一致,所以会采用不同的工具来管理各自的工作,比如开发部门主要需要管理需求,管理缺陷,管理测试,所以他们会采用这类相关的工具,而销售和技术支持部门呢,可能会采用CRM系统,行政部门呢,也许会采用内部IT协作系统,不同的工具都处理着不同部门相关的工作,理论上来说,这样挺好的。
但是,大家是在同一个公司,也就意味着大家不可能总是在自干自的,很多时候总是需要各个部门一起协调工作才能处理好一些事情,比如说,开发部门开发出来的产品,通过销售部门卖给了客户,客户发现问题或者有新需求,一般是在销售/技术支持系统中提交,但是开发部门这个时候还不知道了,由于不同工具间无法进行交互,销售或者技术支持还得登录到开发部门所在的系统中去提交问题,而且问题的处理的进度也只能一次次的去开发系统中查看,然后再回到销售系统中反馈给客户,这样一来一去,效率低下,往往造成客户的满意度下降,最后甚至需要几倍的成本和精力才能把问题解决掉。
业界为了解决这个问题,所以提出了一个DevOps理论,这个理论主要解释如下: