美文网首页敏捷开发与项目管理想法
PM 需要知道的那些技术 - DevOps(1)

PM 需要知道的那些技术 - DevOps(1)

作者: 北十九 | 来源:发表于2019-11-25 22:36 被阅读0次
DevOps

最近跟一个资深的运维工程师、AWS 专家老朱(人称叔),聊到了 DevOps 这个话题。

到底什么才是 DevOps?过去启动项目,10人规模左右的研发团队,总会配置一个 ”DevOps 的角色“,来负责搭建基础设施、CI 环境,负责产品包的部署和上线的一些工作。所以 DevOps 是一种新的角色么?是不是在以前的 Ops(运维工程师)的基础上,掌握了更多自动化运维的工具,就可以称为 DevOps 了?

老朱摇摇头,不对,DevOps 并不是一种角色。

“是更加自动化么?”
“与其说是自动化,倒不如说是软件交付的新的方式,或者说是一种文化。自动化就是自动化,以前运维工作也会自动化,并不是从现在开始的。”

随即在网上搜索了 DevOps 的定义,AWS 主站上的定义是我比较满意的一个:

DevOps 集文化理念、实践和工具于一身,可以提高组织高速交付应用程序和服务的能力,与使用传统软件开发和基础设施管理流程相比,能够帮助组织更快地发展和改进产品。这种速度使组织能够更好地服务其客户,并在市场上更高效地参与竞争。

DevOps 是一种高速交付软件的一种方式。那么接着下一个问题就来了:高速交付的方法千千万,为什么会称之为 DevOps 呢?这个概念如何发展到现在的样子的?

在旧有的观念里面,Dev 和 Ops 是严格分离的,一般都归属于不同的部门,研发部和运维部,在工作中交集不多。一般只有需要产品上线或升级的时候,开发部门才会拿着开完测试完的产品包,交到运维部门运维工程师的手中(可能是个 U盘...),然后由运维工程师部署上线。在这种组织里,Dev 只负责开发 Feature,开发的越多越好,越快越好;而 Ops 负责运行维护开发好的软件,他们并不希望经常会有上线或者变更,所以越少越好,因为对运维工程师来说,每次的更新都是一次风险。

随着外界商业环境的加速变化,以及敏捷、云、容器化、持续交付的发展,从代码的提交,到代码上到真实产品环境的时间越来越短,开发和运维的工作也产生了越来越多的交集。一群野蛮人(一部分开发,以及一群想要改革经常背锅现状的 Ops),带着先进的流程和工具,冲进了运维团队,势必要进行一场轰轰烈烈的改造,建立一条自动化的管道,将程序员笔记本里的代码,像输血一样,运送到正在运行的产品中,并可以监控带来的变化和影响,及时获取各个环节的反馈,快速调整。DevOps 就是在这样的背景下,应运而生的理念。它试图融合开发和运维,打破部门的壁垒(避免互相甩锅),让大家能像一个团队一样来工作。

Pipeline & Feedback Cycle

虽然开发和 Ops 沙文主义会告诉你,没有 DevOps 工程师这种角色。但很多公司都在招聘 DevOps,甚至在组建 DevOps 部门。 由于市场的存在,大家总需要一个名词来代指拥有这些技能的工程师,与传统的 Ops(运维工程师)区分开,所以大家还是习惯于使用 DevOps 来代指一个角色。这些工程师,习惯于与 Linux 打交道,与很多使用高级语言的应用开发不同,他们更习惯于使用脚本语言,比如 python、ruby,可以更灵活的进行自动化脚本片段的编写,以及往往会对某种云有深入的耕耘,比如 AWS,或者 Azure 等。

在这些工程师的工具箱里,也有很多趁手的工具可以用,后面会分章节,介绍下面这些工具和工具背后的理念。

  • 配置管理 - Terraform
  • 版本管理 - Git+Gitlab
  • 包管理 - Docker
  • 持续部署 - Jenkins
  • 运行时环境管理 - AWS ECS
  • 监控 - ELK + Grafana

未完待续

相关文章

  • PM 需要知道的那些技术 - DevOps(1)

    最近跟一个资深的运维工程师、AWS 专家老朱(人称叔),聊到了 DevOps 这个话题。 到底什么才是 DevOp...

  • PM 需要知道的那些技术(开篇)

    8年前科班毕业,入了软件的行。 从开发到项目管理 当时的自己,向往匠人精神,认为应该专注把一件事做好,像小野二郎先...

  • DevOps实践

    第一章 DevOps和持续交付简介 DevOps: 包含技术与非技术两方面,还包括动手能力和软技能。DevOps ...

  • DevOps指北

    DevOps是什么 DevOps与敏捷开发 DevOps成功实践需要哪些条件 DevOps是什么 DevOps是一...

  • Docker in Docker

    Docker Run Docker? Docker技术目前在DevOps中被广泛使用,我们需要将测试或者构建的代码...

  • docker DevOps-安装

    DevOps:Development和Operations的组合,可以把DevOps看作 开发( 软件工程)、技术...

  • 升级

    1.负责人思想: 目标、时间周期、自身能力。 2.行动 召集所需要的人员开会(根据需要:pm、运营、技术、设计)。...

  • 20. Interview-Devops + PM + Test

    1 项目发布流程? 2 项目管理怎么做的?用什么工具? 3 为什么需要 DevOps ?DevOps有哪些优势? ...

  • 软件项目的项目经理不懂技术,能做好项目经理么?

    针对PM是否需要懂技术,一直有两种声音:一种观点是不懂技术的人也可以做PM,但如果懂技术(不一定精通,但要了解)更...

  • 技术选型指南

    主要来源: 技术选型指南参阅: DevOps

网友评论

    本文标题:PM 需要知道的那些技术 - DevOps(1)

    本文链接:https://www.haomeiwen.com/subject/wekswctx.html