作者 | Shane Boulden译者 | 杨雷2019 年,DevOps 越来越普及,想成为 DevOps 工程师的话需要具备哪些技能呢?

2018 年 DevOps 世界出现了一股 Kubernetes 浪潮,几乎每个供应商都开发了自己的 Kubernetes 产品,例如 NetApp Kubernetes,Puppet DevOps 仪表板,RedHat 的 OpenShift 等等。

RedHat 的 DevOps 认证专家 Shane Boulden,列出了 8 条最有价值技能的“DevOps Top 8”,方便 DevOps 从业人员或那些有志成为 DevOps 专家的人员带来一些经验教训。

部署和使用合适的 Kubernetes

Kubernetes 是 DevOps 应用必须掌握的一个平台,允许开发人员和运营商使用相同的 API 管理平台和容器化应用程序。直接学习上游存储库的代码通常的效果会让自己越来越迷茫,建议选择下游的底层从头到尾学习。例如,可以选择 OpenShift 容器平台,以及最新的 OpenShift 迭代,全面地学习 Operator 框架。

配置和管理基于微服务的可扩展应用程序

在 2019 年,部署和管理 Kubernetes 上的应用程序是 DevOps 从业者的基本技能。可以使用命令行工具(如“kubectl”)与 Kubernetes API 进行交互,甚至可以使用自定义脚本直接与 Kubernetes API 进行交互。例如,Python Kubernetes 客户端的' load_incluster_config ',或者下载 API 来使用应用程序内的 pod 元数据。

部署可扩展的监控解决方案,通过产生的指标数据能更好地进行监控性能。例如,Prometheus 和 Grafana。使用 node_exporter 通过 Prometheus 节点可以导出操作系统指标,使用 Micrometer 等库可以导出应用程序级指标。不论是开发人员还是运营商可以使用相同的监控基础架构,提高团队之间的工作效率。

掌握自动化工具

自动化一直是 DevOps 的核心,DevOps 领域的自动化专家能带来更高的可信度。在 2019 年,应该努力获得专家级的自动化工具知识,例如 Ansible,Chef,Puppet 或直接使用 Bash。应该能够与开发人员一起轻松实现配置管理、测试和生产部署等所有方面的自动化,并且希望至少尝试使用“蓝绿”(blue-green)或“金丝雀”(canary)等自动高级部署技术。

Ansible 可以在混合云中实现自动化配置和应用程序配置,利用 Ansible Operators 可以将自动化技能应用到 Kubernetes,并使用 Operator 框架管理复杂和有状态的应用程序。

容器化应用程序的最小化构建

创建基本的 Dockerfile 并调用应用程序“容器化”,如果只懂得这样处理就太落伍了。2019 年的 DevOps 从业者应该掌握如何优化容器化应用程序的构建,最小化容器的镜像文件,最小化运行时的依赖性。构建较小的映像意味着容器注册表中消耗的存储空间更少,并且最大限度地减少容器内的运行时依赖性使潜在攻击的攻击面最小。

不需要在已部署的容器中使用 GCC,但可能需要它来构建 Python 的依赖项。在这种情况下,最好使用多阶段容器构建 -- 不再需要构建一体化的镜像,只要在注册表中为生产部署提供分阶段的强化、精简的 Alpine 基础镜像。

使用多个不同容器 runtime 进行交互

多年来,Docker 一直主导着 Linux 的容器世界,提供了简单的容器图像格式和易于使用的 CLI。Docker 在 2019 年的影响力正在逐渐减弱,它在 2018 年对其产品进行了一系列令人困惑的变化,以便将该平台货币化,其开源项目 Moby 的状态仍不明朗。2018 年还启动了一些新的开源容器计划,例如 CRI-O,现在是 Kubernetes 的默认容器 runtime。对于 2019 年的 DevOps 从业者,Docker 仍然很重要,因为它牢牢扎根于开发人员和 IT 主管的词汇中。应该理解如何在 Docker 和其他容器 runtime 之间进行交互,比如 Docker 的 fat-daemon 模型和 Podman 的 fork/exec 模型,还要掌握它们如何与容器平台(如 Kubernetes)进行交互。

了解并可以管理委派的身份验证和授权

容器化应用程序的兴起意味着管理应用程序身份验证和授权的变化,尝试在容器内部打破 Kerberos 或 FreeIPA 客户端是很痛苦的,导致了许多黑客攻击来让工作正常进行。2019 年将使用 OpenID Connect 和 OAuth 2 等协议来创建易于扩展的应用程序架构,作为 DevOps 从业人员应该乐于使用 OpenID Connect 来提供身份验证,并管理应用程序的多因素验证。

成为操作系统专家级工程师

操作系统的角色在 2019 年没有改变,仍然是所有内容的基础,它决定了 DevOps 平台的成败。无论个人偏好是基于 Debian 还是基于 RedHat,或者是最新的容器优化的操作系统,成为核心操作系统管理和工程方面的专家仍然至关重要。例如,获得 RedHat 认证系统管理员和 RedHat 认证工程师的证书,为开发人员和运营商提供可信的保障,当任何事情发生时,可以直接访问操作系统并解决问题。

掌握最好的学习方式

DevOps 是一个不断变化、不断发展的世界,要努力继续缩短开发人员和运营商之间的反馈循环。随着框架的发展和流程的变化,了解如何最好地学习是很重要的。Shane Boulden 认为,无论是通过实践学习,还是直接阅读手册,都无关紧要,目标是尽可能高效地学习。

英文原文:https://medium.com/@shane.boulden/what-does-it-mean-to-be-a-devops-practitioner-in-2019-12f8f190b89e

2019 年 DevOps 实践中最有价值的8大技能相关推荐

  1. 2019 年 DevOps 实践中最有价值的技能

    作者丨Shane Boulden 译者丨杨雷 2019 年,DevOps 越来越普及,想成为 DevOps 工程师的话需要具备哪些技能呢? 2018 年 DevOps 世界出现了一股 Kubernet ...

  2. 2019年DevOps实践最有价值的技能Top 8

    2018年DevOps世界出现了一股Kubernetes浪潮,几乎每个供应商都开发了自己的Kubernetes产品,例如NetApp Kubernetes,Puppet DevOps仪表板,RedHa ...

  3. 复购分析实践中,Pandas 遇到了大难题

    作者 | 小z 来源 | 数据不吹牛 在电商等消费场景下,复购率是最耳熟能详的指标之一了.上到平台.下到品牌.店铺,各种复盘分析一定绕不开复购率,今天我们就从实战的角度聊聊复购率. 本文是Pandas ...

  4. 骞云科技DevOps实践

    随着公司业务的快速发展,需要加快开发流程的规范化和自动化,以提高产品的开发效率和交付效率.之前的开发测试和资源管理主要是半自动化的,个人生产力和资源利用率仍有很大提升空间.在DevOps的具体实践中, ...

  5. 跨境时尚电商SHEIN基于Kubernetes的DevOps实践

    SHEIN PaaS参考了很多优秀的社区实践方案,最终使用了基于GitLab + Jenkins + Kubernetes + Harbor 的一套CI/CD工具集,一年多以来,总结开发出了一套公司自 ...

  6. 骞云科技 DevOps 实践

    随着公司业务的快速发展,需要加快开发流程的规范化和自动化,以提高产品的开发效率和交付效率.之前的开发测试和资源管理主要是半自动化的,个人生产力和资源利用率仍有很大提升空间. 在DevOps的具体实践中 ...

  7. 在碰撞中成长 - 北京银行的DevOps实践之路

    2018年10/27日,在上海召开的微软年度最大规模的技术盛会-微软2018技术暨生态大会上,北京银行渠道系统负责人&敏捷团队负责人周兵女士和大家一起分享了北京银行的DevOps 实践转型经验 ...

  8. DevOps组织中应用架构师的新定位与实践

    [摘要] 针对应用架构师相关窘境,在现代化的应用开发中,DevOps组织需要定义应用架构师职责,使应用架构师与DevOps团队各角色更有效的沟通,交付更有价值的产品.在多数情况下,应用架构师不是Dev ...

  9. 【华为敏捷/DevOps实践】4. 如何从Excel做项目管理的方式中走出来

    文/华为云DevCloud 恒少 开篇小段子:业界有个小段子,研发不是请客吃饭,是倾家荡产. 是的,研发人员,尤其是从事软件的工程师门,普遍是比较傲娇的,在软件产品没有卖出去形成收入前,软件工程师的投 ...

  10. drupal_Drupal社区在DevOps采纳中的地位

    drupal 在本文的第一部分 ,我们解释了为什么DevOps是现代技术组织最重要的战略. 要了解有关如何使用DevOps的更多信息,我们启动了2019年Drupal社区DevOps调查 ,该调查正在 ...

最新文章

  1. 代理详解 静态代理+JDK/CGLIB 动态代理实战
  2. pgrouting进行路径规划之入门二
  3. finished with exit code -1073740791 (0xC0000409)解决方案
  4. Ubuntu Server 16.04 LTS上使用Docker部署Tomcat修改为80端口
  5. 关于 Angular Component ngOnDestroy 钩子函数的调用时机
  6. 卡内基梅隆大学和斯坦福计算机,卡内基梅隆大学并列全美榜首的专业--计算机专业...
  7. 线性代数拾遗(六):特征值与特征向量
  8. CGCKD2021大会报告整理(1)--宽度学习
  9. 使用 jQuery Mobile 与 HTML5 开发 Web App (六) —— jQuery Mobile 内容格式
  10. 华为机试——质数因子
  11. 百度历年笔试面试150题
  12. Java中int和Integer的区别
  13. 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类...
  14. 通过物理模型生成Java代码
  15. 递归的Fibonacci在数羊
  16. Java 接口和抽象类的异同点
  17. uniapp某个页面高度占满写法
  18. rpm包常见的格式详解
  19. python virtualenv_python之virtualenv的简单使用方法(必看篇)
  20. cesium-事件监听(获取点击位置的经纬度和高度)

热门文章

  1. linux 下查看硬件信息
  2. leetcode/力扣 贪心算法总结,代码随想录PDF下载
  3. hdu 4336 Card Collector 容斥原理 多校联合赛(四) 第六题
  4. Mac新手使用技巧,键盘键位分布和快捷键
  5. 如何让 Mac 朗读提醒信息中的文本?
  6. iOS开发tableview的几种刷新,指定刷新,全局刷新,刷新的动画
  7. MPAndroidChart 2.15使用记录
  8. 自动化接口用例从 1 到 1000 过程中的实践和思考
  9. 什么是Code Review(转)
  10. 在ASP.NET Web API2中启用Cross-Origin请求