为什么要DevOps?

Boss:「项目经常延期」「做东西太慢」

产品:

  • 「老板的想法总变」

  • 「事情太多,忙成狗」

  • 「开发说这个实现不了」

开发:

  • 「需求总变」

  • 「UI 方案给的太晚」

  • 「活儿太多」

测试:

  • 「需求变了没提前通知」

  • 「测试时间总被压缩,还要背锅」

  • 「重复测试太多遍」

运维:

  • 「每天这么多版本上线,活干不完,出事儿第一个背锅。」

 

     上面的这些问题在做互联网应用时,我们都深有体会。为什么说是互联网应用,而不是传统的IT软件?传统IT软件在研发时,更多的是项目型或者产品型的,其发布频率或者需求变化的频率是相对较慢的,软件版本的变化基本上可以按部就班的进行,这也是传统的研发模式普遍应用的根本原因。

     传统的研发模式,测试介入时间晚,自动化程序要求低,是允许有较多的试错空间,正适合发布过程缓慢的传统软件。

image

    而互联网企业与传统的软件公司之间存在非常好大的差异。首先,互联网公司对外提供的是服务,不是软件产品。整个系统的生命周期是自己可控的,特别是系统发布上线后,可以根据应用情况快速修正方案,最大限度的提升服务质量和用户体验。其他,互联网服务的竞争压力很大,需要更短的时间把新点子、新想法落地,与竞争对手拉开差距。这些问题都会推动,互联网服务的开发要更敏捷、更迅速。但敏捷迅速,不能以降低质量为代价。所以,对系统的交付速度、交付质量有了非常好高的要求。这也是DevOps中CI、CD所要解决的问题。

    在DevOps末实现,系统发布频率高,测试频率高,自动化程序要求高,试错空间有限。全面的自动化测试,是实践持续集成的基础。其目的就是为了按时、高质量的交付软件产品和服务。

image

posted @ 2017-05-09 09:34  凌晨三点半  阅读(1382)  评论(0编辑  收藏  举报