我为什么觉得DevOps好

79 阅读4分钟

写在前面

最近疫情严重,正好利用这个时间,把自己之前的Blog和印象笔记的东西搬搬家,整理整理,希望在疫情过去后,自己也能坚持把自己平时工作的关于技术和管理的实践多写写,一起交流。

产品研发得码多少人

首先打算写一个自己平时在工作中,对于日常的工作流程和工具进行一个整理,也就是DevOps。本人一直在创业公司,有很多人觉得创业公司不需要技术管理和流程,就不到10个人,为什么需要这么多乱七八糟的。在讲这个问题之前,我们想想,现在当下互联网或者物联网相关的产品,需要的角色有多少呢?

角色职责备注
RD研发各种客户端、云端、大数据等
QA测试点点点测试、自动化测试等
PM产品经理和程序猿相爱相杀的家伙
OP运营数据运营、内容运营、PR推广等
OPS运维最苦逼的技术人员
UI设计GUI、视觉设计等
BD商务负责吹牛逼的
硬件设计PCB、原理图设计如果涉及硬件产品
嵌入式嵌入式驱动开发如果涉及硬件产品
系统驱动系统驱动开发如果涉及硬件产品
结构设计结构设计开发如果涉及硬件产品
ID设计外观设计如果涉及硬件产品

我整理了下,我们需要的上面这么多角色,当然,在很多创业公司,都是一人兼多职(工资就一份)。但是和我们需要的产品发布和迭代节奏完全相反的是,老板肯定需要快速稳定的发布产品,1周恨不得更新一次feature list。

产品研发流程有多复杂

软件研发项目管理流程.jpg

上面的流程,基本是软件研发的基本流程,为了保证各种质量,涉及到各种角色和阶段,需要整体项目负责人有很强的管理和协调能力,才能保证项目的预期发布和质量管控。纯靠人去跟踪,基本管不好。

迭代速度 快!快 ! 快!

下面的桥段,大家肯定遇到过:

老板说:我们先做一个DEMO,BD需要这周末去个客户演示拿单子。演示完了,然后。。。。

老板再说:客户那边演示的不错,要求1-2周内上线(程序猿懵逼,下面就是产品和程序猿的互撕了)

我们有多少产品和项目是从DEMO改起来的,软件质量、架构体系、产品价值和前景,是否符合公司核心价值,这些都不是考虑范畴了,基本属于,后续全是坑。

任何公司的核心价值都是产品质量的优秀,优秀的产品,我们这里不谈什么是好产品,我们这里聚焦的点是,产品技术怎么保证稳定快速发布新产品。答案就是DevOps。

DevOps的核心价值

DevOps由开发(developments)和运维(operations)组成,字面意义就是鼓励跨部门协作。DevOps的出现其实是敏捷软件开发的产物,下面是敏捷宣言的经典摘录:

个体和互动 高于 流程和工具,
工作的软件 高于 详尽的文档,
客户合作 高于 合同谈判,
响应变化 高于 遵循计划,
也就是说,尽快右项有其价值,我们更重视左项的价值。

DevOps想要强调的是:个体和互动是非常重要的,用自动化代替重复人工工作,把更多的时间留给大家的沟通和交流,产生真实的价值。

举个简单例子,PM想尽快了解开发的进度(眼见为实,其实UI更需要眼见为实),那就要求RD和QA,需要在测试环境进行快速的增量交付,并且交付的内容可以让PM和UI等利益相关方,尽快看到,并且可以第一个吃狗粮。如果是跨部门的传统合作,试想下,难度是不言而喻的。但是DevOps可以通过一系列自动化和持续交付的工具,以及统一产品目标的理念,让部门壁垒消失,工具提醒人员,去做这个阶段需要做的事情,大家都在管道内,进行有条理的工作,管道的终点就是产品稳定快速发布。

DevOps的流程和工具

  • 流程:DevOps是为了产品交付服务的,交付肯定是有流程的,所以我们先需要明确流程
  • 工具:根据语言、技术人员素质、产品特点,选择合适的工具拓扑,其实最主要的工具包含以下几类:需求管理工具、代码库、构建工具、工件库、测试工具、部署工具、监控工具、问题跟踪

后面几篇文章,会陆续分享下,我在创业公司,是怎么搭建的这套DevOps体系和如何使用的。

谢谢阅读。