DevOps是啥? DevOps工程师到底做些啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps是啥? DevOps工程师到底做些啥?相关的知识,希望对你有一定的参考价值。

DevOps是IT服务管理的一种模式。过去的数十年间,IT运维发展经历了数个阶段。从早期的手工运维到标准化运维、自动化运维,到如今的DevOps、AIOps。

简言之,DevOps试图打通开发和运维的部门墙,从而打通整个IT价值交付的全生命周期,从产品需求到上线运维的全过程实现效率的提升。

DevOps最显著的作用是提高了企业产品的交付质量、缩短开发周期、减少故障。而降本增效是每一个公司在数字化转型之后的很大的挑战,DevOps无疑直击痛点。

而作为一名DevOps 工程师,除了要具备软件工程师基本的编程能力以外,还需要特定的人际交往、工具使用等技能。换句话说,DevOps 工程师需要“软”、“硬”技能兼备,具体如下:

一、沟通与协作技巧

DevOps 是一种横跨软件开发、测试和部署的协作方法。它将原本具有不同目标的开发、测试和运维小团队聚集在一起,以实现更高效和高质量的代码发布,这就要求 DevOps 流程中的不同角色之间不能有任何交流障碍。因此,良好的沟通技巧(无论是口头还是书面)对于优秀的 DevOps 工程师来说是必不可少的。

协作能力也很重要。DevOps 是团队合作的开发模式,每个工程师都是团队成员,需要在整个软件迭代过程中支持其他同事的工作。这不仅仅要求我们成为一名优秀的队友,还要在适当的时候给新人一些建议,包括但不限于指导和建议团队成员交付代码的最佳方式、编码时使用哪些工具以及如何测试最新功能。这就要求我们自身也要对这些 DevOps 流程中的必要技能有所了解。

二、熟悉和理解 DevOps 工具链

除了协作和沟通这样的“软”技能之外,DevOps 工程师还必须知道如何使用各种复杂工具协同工作以支持软件交付目标,这是成为一个优秀的 DevOps 工程师所必备的“硬”技能。

DevOps 工程师需要知道如何使用和理解以下类型工具的作用:

版本控制工具

详细地说,集合了代码审查、合并功能的版本控制工具是能让多个开发人员之间完美协作的主要DevOps 工具。由于 DevOps 流程汇集了来自各个部门的专家,所以他们需要了解源代码控制系统,以及系统跟踪不同应用程序中的更改。此外,它还维护应用程序的多个版本。

目前 DevOps 流程中常用的版本控制系统都基于开源分布式版本控制系统 Git,例如 GitHub、Gitee、GitLab 以及各大厂商基于 Git 定制的内源协作工具。

持续集成工具

持续集成(CI)是 DevOps 的关键技能之一,它是构建 pipeline 的重要部分。DevOps 要求运营和开发团队使用统一的系统。因此,持续集成所做的就是将开发人员的代码与 master 合并在一起。有了这样的技巧,就可以有效地合并数据。因此,DevOps 工程师一定要知道如何使用一些常用的 CI 工具,例如 GitHub Action、Jenkins、Bamboo、TeamCity、Travis CI 等。

容器与编排工具

容器作为现代微服务与云原生架构的核心技术,提供了关于 DevOps 的三个基本功能,包括持续的实验、流动和反馈。容器技术的不可变基础设施实现了操作系统层虚拟化,不仅方便运维程序升级和部署,还升华成了向应用代码隐藏环境复杂性的手段,成为推广分布式服务的必要前提。

目前,Docker 仍然是应用最广泛的容器技术,而以容器编排引擎 Kubernetes 为核心的云原生技术栈则是各大互联网企业构建容器技术基础设施的事实标准。

自动化工具

自动化是软件开发过程中必不可少的要素之一。几乎所有的手工任务都可以使用各种脚本语言自动完成。例如,Ruby、Bash、Python、Node、Shell 等等。可以说,使用自动化开发工具已经成为了很多 DevOps 团队加快开发和部署过程的关键。想要成为 DevOps 工程师,掌握自动化工具很有必要。

监控和报警工具

DevOps 持续集成和持续部署的实现离不开持续监控的辅助作用。许多微服务都是由数百个组件组合而成,其中一个服务的故障可能导致整个系统崩溃。当然,手动找到核心故障问题是很复杂和耗时的。其中一个解决方案就是持续监控关键特征,如 RAM 使用、请求数量、异常数量和存储空间。因此,需要根据系统的关键特性设置一个警报系统。例如,当存储空间使用率达到 80% 时应该触发警报,以便 DevOps 运维开发人员可以在整个系统崩溃之前解决问题。


三、具有成熟编码标准的特定编程技能

然编程能力是每个开发者最基本的能力,但 DevOps 工程师在这方面仍然有一些更特殊的要求。

通常来说,DevOps 工程师需要在专精 1-2 门编程语言的基础上熟悉多种语言,例如 Java、javascript、Ruby、Python、php、Go 等,这是由微服务时代同一系统不同服务可以由不同语言、不同框架实现的特性而决定的。DevOps 工程师至少需要了解这些语言的特性并具备在操作系统环境中编写和调试它们的能力。

四、技术支持和维护技能

优秀的 DevOps 工程师不仅需要开发方面的技能,有时还需要为客户提供维护和技术支持。这意味着 DevOps 工程师应该乐于为内部和外部客户提供支持,并在出现问题时进行故障排除。

参考技术A DevOps(“开发”和“运维”的组合),是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
DevOps的目标是缩短系统开发周期,同时以更快、更好和更便宜的方式持续交付业务价值,是让开发人员和运维人员更好地沟通合作,通过自动化流程,使整体过程更加快捷和可靠。DevOps工作方法论成功覆盖的三个关键因素:文化变革、实践改进和流程,以及利用自动化技术。DevOps认证培训首选的是艾威培训,艾威源于美国,始于1998,国内最早从事DevOps 培训的机构之一,经过多年的DevOps认证培训,艾威已经掌握了DevOps考试的脉络,通过率也是最高的。感兴趣的可以去艾威咨询看看。本回答被提问者采纳

说了这么多年DevOps,到底是啥?

“你在团队里是做什么的?”

“DevOps。”

“DevOps是什么呢?”

“DevOps是一种文化、一种实践,目标是加快软件迭代速度,让团队更快交付价值。”

“能不能具体点,你们日常工作的主要内容是什么?”

“......”


当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?

随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。

2009 年左右 DevOps 应运而生,简单地来说,就是在消除“等待”,让“变化”高效落地。

但是,DevOps 也是一条崎岖的“山路”,DevOps 相关工具那么的多,我还要做 10 个紧急的用户需求的!哪有精力从零开始研究啊...

这个时候,选好 DevOps 利器,把时间和精力留给核心工作才是关键点。那么有哪些工具可以帮助落地 DevOps,提高业务持续集成与交付呢?如何通过基于 AWS 的持续集成和发布流程来提高您的产品的生产效率?

9 月 25 日周二下午 14:00-15:30 ,InfoQ 邀请到 AWS 技术客户经理张浙在线和大家深入探讨「DevOps on AWS,哪些开发工具将加速软件发布过程?」。

    大咖是谁?
    

      张浙,AWS 技术客户经理

张浙主要负责 AWS 大客户的项目协作、架构设计及技术支持工作。在加入 AWS 之前,曾担任于 Oracle 中国虚拟化及云计算部门北方区首席销售顾问和 Red Hat 中国技术顾问等职位。在开源领域从业十年左右时间,对开源软件企业化实现、开放云平台构建及企业传统业务向云端迁移方面有丰富的项目和技术经验。

大咖有哪些独家秘笈要分享
  • 亚马逊如何做 DevOps?

  • 企业级落地容器与 DevOps,选用 K8S 都有哪些“姿势”?

  • Kubernetes 是如何助力 DevOps?

  • 有哪些工具可以帮助落地 DevOps,提高业务持续集成与交付;

  • 通过演示代码,“划重点”教你如何提高您的产品的生产效率。

直播时间

时间:9 月 25 日 14:00-15:30

地点:在线直播

点击「阅读原文」扫描下图二维码报名,您将在直播前获得包括直播链接在内的短信提醒。

       

以上是关于DevOps是啥? DevOps工程师到底做些啥?的主要内容,如果未能解决你的问题,请参考以下文章

说了这么多年DevOps,到底是啥?

女神特辑 | 关于DevOps和职场,4位DevOps领域杰出女性都关注些啥?

到底什么是DevOps工程师?|「云头条」

DevOps到底是什么?

DevOps转型到底值不值?

DevOps 是什么不是什么