devops的7个发展趋势,DevOps工程师,DevOps技能自查表,DevOps工程师技能,DevOps的工作岗位的要求,Devops工程师需要具备的10项技能,Devops相关考试和认证

DevOps工程师

1. DevOps工程师的任务是什么?

设计、构建、测试和部署可伸缩的分布式系统,实现从开发到部署的自动化
管理代码库(如Git、SVN、BitBucket等),包括代码合并与集成、分支与维护、远程库管理等
管理、配置和维护基础设施
设计数据库体系结构和数据库对象,并同步各种环境
设计、实施和支持DevOps持续集成和持续交付pipeline
研究和实施新技术和新实践
将流程、系统和工作流文档化,更新操作手册
使用行业领先的服务创建和增强动态监视和警报解决方案
持续分析手动执行的任务,这些任务自动化
创建和增强基于Docker和Kubernetes的持续部署自动化

2. 谁能成为DevOps工程师?

DevOps是一个涉及的知识面非常广。例如,您可能来自编码或测试背景,也可能是系统管理员、数据库管理员或操作团队。在DevOps方法中,每个人都可以扮演一个角色。
如果你具备以下的知识和/或专长,你就已经准备好成为DevOps工程师了:
你拥有学士、硕士或理学学士学位(最好是计算机科学、IT、工程、数学或类似专业)
2年以上软件开发经验,熟悉SDLC生命周期和精益敏捷方法(SCRUM)
有较强的Linux/Unix和Windows管理背景
使用面向对象或函数式编程语言(如Python / Ruby / Java / Perl / Shell scripting / Groovy或Go)进行系统开发
系统级了解Linux (RedHat、CentOS、Ubuntu、SUSE Linux)、Unix (Solaris、Mac OS)和Windows服务器
Shell脚本和自动化的例程,远程执行脚本
具有数据库管理经验,熟悉Mongo/Oracle或MySQL数据库
强大的SQL和PL/SQL脚本
有使用Git、GitLab、GitHub或Subversion等源代码版本控制管理的经验
熟悉云架构,特别是Amazon Web Services(AWS)或谷歌云平台或Microsoft Azure
对docker/或Kubernetes的容器使用和实现有很好的理解
有使用Jenkins和GitLab进行CI/CD pipeline的经验
数据中心管理,系统管理,监控,网络和安全知识
有使用Ansible, Puppet and/or Chef进行自动化/配置管理的经验
了解如何使用配置监视工具(如Nagios或Prometheus)监视代码
基础设施和网络方面的背景
关于RESTful api的广泛知识
对网络和核心互联网协议(如TCP/IP、DNS、SMTP、HTTP和分布式网络)有扎实的理解
优秀的书面和口头英语沟通能力
自我学习,团队合作,愿意学习新技术,独立解决问题和交付结果的能力。

3. 相关的工具

编程语言(C、Java、Perl、Python、Ruby、Bash shell、PowerShell)
操作系统概念(资源管理)
源码控制(如Git、Bitbucket、Svn、VSTS等)
持续集成和持续交付(Jenkins, GitLab CI, CircleCI)
基础设施即代码(IaC)自动化(工具如Puppet、Chef、Ansible和/或Terraform)
管理服务器(应用程序、存储、数据库、基础设施、网络、web服务器等)
应用程序、数据库、Web服务器、存储、基础设施、网络服务器
网络和安全
容器的概念(Docker)
持续监视(Nagios和Prometheus)
云(比如AWS、Azure、谷歌云)

4. 软技能

作为一个DevOps工程师,你必须是一个积极的团队成员,需要有学习和成长的愿望,优化流程并找到更好的解决方案。 由于DevOps涵盖的范围很广,所以最好专注于您的关键技能,并根据需要学习技术和工具。 理解问题/挑战,然后找到一个与此类似的DevOps解决方案。

DevOps技能自查表

前篇提到了DevOps的工作岗位要求,但是没有来的及深入细节,本文根据个人10年多的经验,尽量详细地列举DevOps所需要用到的一些技术和相关参考网站。

Linux基础

Linux系统的基本概念;
必须会使用至少一个编辑器,例如VIM;
至少会一种shell,例如bash;
会使用rsh/ssh/scp/rhost/rsync;
cron相关设置和命令,crontab;
进程的状态,以及相关的命令ps, top, pgrep,pstree;
文件状态的查看排序,ls;
文件的查找, find;
文件权限,以及相关命令ls, chmod, chown;
文件的压缩解压种类,tar;
job相关命令 jobs,nohup,bg, fg, disown;
信号的种类INT,TERM,QUIT, 和kill的使用,例如 kill -9;
软硬链接的概念和命令,ln;
磁盘的使用和配额命令,df,du,quota;
内存的种类swap和buffer,相关命令top;
系统的检测命令,uptime,ps,top, free,pstree;
Daemon,service的工作原理,配置,使用,例如命令service;
用户的权限,group等的操作;
磁盘的自动挂载;
文件内容的查找命令grep,sed;
高级命令xargs;
文本数据库的操作命令,例如cut,tr,sort,uniq;
会使用pstree,strace等追踪进程相关问题;
网络和防火墙的配置;
wget,curl下载或者模拟http;

脚本编码能力

DevOps的工作内容就是流程的自动化,不是所有的任务都有第三方的免费工具,所以使用Perl或者Python将重复的工作脚本化自动化是一项主要的工作职责。其中包括:

文件读写处理,
正则表达式匹配,
多线程多进程并发,
日志分析和报警,
生成csv或者网页的报告,
各种任务的自动化检测和报警。
以及通用软件和系统的开发,
总之各种任务种类繁多,但是只要你有Perl或者Python这样的瑞士军刀,那就手到擒拿了。

开发和持续集成相关的工具

最近几年软件流程相关的工具百花齐放,虽然没有web技术框架那么夸张,但是也足够让人眼花缭乱了。工具会根据公司软件所在的领域不同,也会应为软件所使用的技术栈有所差异。

开发编译工具的使用,Makefile,gdb,gradle,cmake,vscode等;
源码管理工具,git,github,svn等;
持续集成工具,Jenkins,TeamCity, Bamboo等;
测试相关框架和自动化,Junit,selenium等;
软件质量相关工具,Jira,SonarQube 等;
artifact管理,dockerhub,jfrog,nexus等;
容器相关工具,docker,kubernes,swam,mesos等;
流程监控和报警,elesticsearch,kibana,prometheus,grafana等;
云服务的使用, amazon,openshift,google cloud platform等;
自动部署工具,chef,puppet,salkstack,ansible;

其他必须技能

web服务器作为基础架构之一,必须会配置,例如apache,nginx;
数据库在配置管理中,也是基础架构之一,必须熟悉使用和管理,常用的数据库MySQL,Mongo,Redis;
虚拟机的使用,VirtualBox, Vagrant;
Docker容器的使用以及容器编排工具的配置和使用;
Web开发能力,熟悉javascript和流行的web框架React等;
机器学习和人工智能相关的技术;

DevOps工程师技能

DevOps工程师技能

技术背景

DevOps工程师必须持有计算机科学、工程或其他相关领域的学位。2年以上工作经验。这包括开发人员、系统管理员或devops驱动的团队成员的工作。这是一个重要的需求,同时也是对所有IT操作的理解。

自动化工具的经验

了解用于测试和部署的开源解决方案是DevOps工程师必须具备的知识。如果您使用的是云服务器,请确保您的候选人具有使用GitHub、Chef、Puppet、Jenkins、Ansible、Nagios和Docker等工具的经验。此职位的候选人还必须具有使用公共云(如Amazon AWS、Microsoft Azure和谷歌云)的经验。

编程技能。

工程师不仅要知道现成的工具,还要有编程经验,包括脚本和编码。脚本编制技能通常需要Bash或PowerShell脚本的知识,而编码技能可能包括Java、c#、c++、Python、PHP、Ruby等,或者至少是其中一些语言。

数据库系统知识。

在部署阶段,工程师处理数据处理,这需要有SQL或NoSQL数据库模型的经验。

沟通和人际交往能力

虽然一个好的候选人必须精通技术方面,但是DevOps专家必须有很强的沟通才能。他/她必须确保团队有效运作,接收和分享反馈以支持持续交付。结果——一个产品——取决于他/她与所有团队成员有效沟通的能力。

参考

https://www.altexsoft.com/blog/engineering/devops-principles-practices-and-devops-engineer-role/

DevOps的工作岗位的要求

为什么需要DevOps

不是每个人都能理解可靠的版本管理和牢固的构建系统的重要性。 也不是任何人能使得软件的发布达到可靠性,可重复性和可审计的高标准。Devops的职责就是将软件的构建和发布的流程自动化并且使它像机器人生产线一样运转,从而精确无误地保证正确的版本在要求的时间运行在规定的服务器上。

实现了软件的构建发布部署流程的自动化;
自动化的流程提高了效率,实现了软件的快速发布;
自动化的流程避免了人为的失误,提高了软件发布的准确性;
自动化的流程能够尽早地发现问题,保证了软件功能的持续集成,而没有回退;
自动化的流程使得软件的发布可靠且可重复;

DevOps的工作岗位的要求

1、了解软件开发的整个流程,其中包括source->metrics->compile->test->package->deploy。
2、广阔的知识面,比如:Linux操作系统,软件开发技能,运维技能,数据库使用,软件架构实现等。
3、沟通交流能力,需要与开发人员,测试人员,项目管理人员,基础架构维护人员协同工作。
4、快速地解决问题的能力,扎实的计算机基础,熟练使用Shell,Perl或者Python脚本。
5、英语读写能力,使用google,stackoverflow,github等提高工作效率。
6、熟练使用基于web的支持分布式多平台的持续部署平台,例如Jenkins。
7、或者能针对公司特殊需求实现持续集成系统的定制化。
8、实现自动化流程的代码化,组件化,通用化,且能适应快速的需求变化。
9、软件开发能力,能够开发需要的通用系统或者web系统。
10、关注相关领域的最新方向和技术,持续学习和跟新系统。

Devops工程师需要具备的10项技能

Devops工程师需要具备的10项技能

Facebook、Amazon和Microsoft等公司正在大量使用DevOps技术来确保软件的一致交付,DevOps的的工作机会和所需要的技能集也是越来越多。

在这里,我们将讨论Devops工程师需要具备的10项技能,以享受成功的职业生涯。

1. 软技能和沟通技巧

正如下面所讨论的,DevOps是开发和运营的结合。因此,DevOps工作需要出色的沟通能力。此外,你不能忘记同理心。记住,你的同理心会显示你的心态。争论和冲突在团队中很常见,这个时候就需要同理心,能站在对方的角度去理解,和和谐合作然后快速地解决问题。

当谈到DevOps技能时,我们不能忘记诚信。DevOps工程师的职责是将来自不同It部门的人员聚集在一起。所以,在做这件事的时候,你必须保持最高程度的诚实。

2. 对不同的源代码控制系统有足够的了解

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

3.持续集成技能

2019版DevOps的关键技能之一是持续集成,也可以说是CI。它是构建pipeline的重要部分。DevOps为运营和开发团队使用一个单一的系统。因此,持续集成所做的就是将开发人员的代码与master合并在一起。有了这样的技巧,就可以有效地合并数据。因此,确保您知道如何使用CI工具,例如VSTS、Bamboo或Jenkins。

4. 容器的使用

容器提供了关于DevOps的三个不同的概念。这些是持续的实验、流动和反馈。这是DevOps的三个基本支柱。让我们详细了解一下。 - 当您在容器中时,就不需要考虑系统。在一个容器中,所有任务的执行都是可接受的。这是流。 - 容器还可以将软件分隔开,还允许您从客户那里获得快速的反馈。 - 此外,它使应用程序测试过程更容易。 - 要在这样的环境中工作,您需要学习Docker技术。这是要求最高的DevOps技能之一。

5. 具备各种基础设施自动化工具的技能和知识

自动化是软件开发过程中必不可少的要素之一。几乎所有的手工任务都可以使用各种脚本语言自动完成。例如,Ruby、Bash、Python、Node、Shell等等。通过自动化所有工作,您可以加快开发和部署过程。如果您打算在这方面继续前进,那么请确保您知道如何使用自动化技术。此外,不要忘记学习自动化工具。

6. 云服务知识

如果你询问一些最受欢迎的DevOps技能,那么这就是其中之一。随着时间的推移,软件开发行业的竞争越来越激烈。接下来,所有的公司都在尽他们最大的努力来完善这个过程。为此,他们现在大量使用各种云服务。因此,您需要了解不同的云平台及其服务。这对于DevOps和云架构工程师来说都是非常重要的。一些主要的云服务是Microsoft Azure、谷歌云、Amazon Web服务和IBM。

让我们了解一下为什么云在DevOps中如此重要: - 正如您了解了什么是自动化一样,使用不同的云服务,DevOps工程师可以使自动化过程更加容易。 - 云是备份所有数据的好地方。通过云服务器复制,可以恢复数据并开始工作。 - 云有助于业务流程。在细节上,它是一个自动化的过程。它在自动化过程中提供了更好的控制和协调。一些主要的编配工具是Ansible、Puppet和Chef。 - 云服务提供了一些有用的工具来监视各种应用程序。 - 它有助于更快地开发和部署应用程序。

因此,如果您希望作为DevOps工程师获得巨大的成功,那么就需要掌握这些技能。

7. 安全技能

每个公司都高度重视安全性,特别是在开发和部署编码时。黑客可以侵入系统,从而影响整个过程。因此,DevOps专家应该知道如何编写高度安全的代码来保护应用程序免受黑客攻击。这些攻击可能包括XSS攻击、SQL攻击等等。如果你有足够的安全知识和技能,那么你很容易在这个领域找到工作。

8.测试相关

DevOps工程师的主要职责是加速将软件交付给客户的过程。但是,如果软件中有很多bug呢?一般来说,在软件或应用程序中,质量是最重要的。因此,DevOps工程师应该对他们的工作进行持续的测试。因此,如果您正在考虑申请DevOps的工作,不要忘记获得这项技能。 为了让您更清楚地理解测试这个术语,这里有一些关于它的细节。所有著名的公司,如谷歌、Netflix、Amazon等,都执行不同的测试。例如,应用程序的负载测试、性能、安全性和回归测试。

9. 脚本的技能

所有DevOps工程师都需要掌握高质量的代码脚本编写技能。详细地说,您需要学习使用Ruby、Python、Java、Perl等编写代码。专家的职责是编写手工代码,替换手工过程,例如DNS代码、IP地址等。

10. 合作的技能

请记住,DevOps工程师从不为他们的个人目标而工作。他们在一个团队里工作。所以,如果出现任何问题,他们应该帮助别人解决问题。关键是移情的因素。另一个重要的问题是,工程师更喜欢分批工作。它让其他员工正确工作。

参考:

https://www.whizlabs.com/blog/best-devops-skills/
https://www.opcito.com/blogs/7-major-trends-that-will-rule-devops-in-2020/

Devops相关考试和认证

Devops相关考试和认证

Red Hat Certified System Administrator (RHCSA)

能够执行以下任务:
了解和运用必要的工具来处理文件、目录、命令行环境和文档
操作运行中的系统,包括引导到不同的运行进程、识别流程、启动和停止虚拟机以及控制服务
使用分区和逻辑卷配置本地存储
创建和配置文件系统和文件系统属性,例如权限、加密、访问权限控制列表以及网络文件系统
部署、配置以及维护系统,包括软件安装、更新以及核心服务
管理用户和用户群组,包括使用集中目录进行身份验证
管理安全性,包括基本防火墙和 SELinux 配置
Certified Kubernetes Administrator
Certified Kubernetes Administrator (CKA)程序是Cloud Native Computing Foundation(CNCF)与Linux基金会合作创建的,目的是帮助开发Kubernetes生态系统。作为快速发展的开源项目之一,Kubernetes正在被越来越多的公司使用。Cloud Native Computing Foundation会致力于发展Kubernetes管理员社区,从而允许Kubernetes在公司和组织中继续发展。认证是这一过程中的关键一步,它能让认证管理者在就业市场上迅速建立起他们的信誉和价值,也能让公司更快地雇佣高质量的团队来支持他们的发展。

参考: https://training.linuxfoundation.org/wp-content/uploads/2020/04/CKA-CKAD-Candidate-Handbook-v1.10.pdf

考核的内容: - 应用程序生命周期管理8% - 安装、配置和验证12% - 核心概念19% - 网络11% - 调度5% - 安全12% - 集群维护11% - 测井/监测5% - 存储7% - 故障排除10%

Certified CloudBees Jenkins Engineer (CCJE)

Jenkins - 基本原理
Jenkins Pipeline - 基本原理
Jenkins Administration - 基本原理
CloudBees Core - 基本原理
AWS Certified DevOps Engineer
考试是为那些担任DevOps工程师角色,并具有两年或两年以上的AWS环境配置、操作和管理经验的人准备的。

参考: https://cloud.google.com/certification/cloud-architect

考核能力: - 在AWS上实施和管理持续交付系统和方法 - 实现和自动化安全控制、治理流程和遵从性验证 - 在AWS上定义和部署监控、度量和日志系统的使用 - 在AWS平台上实现高可用性、可伸缩和自修复的系统 - 设计、管理和维护自动化操作流程的工具

Google Certified Professional Cloud Architect

Google Certified Professional Cloud Architect(谷歌认证专业云架构师),该认证意味着 IT 专业人员在 Google Cloud Platform(GCP)上获得云架构师认可。完成此认证后,你就能证明自己拥有了使用 GCP 技术设计、开发和管理谷歌云架构的能力。

谷歌云认证-专业云架构师考试评估您的能力: - 设计和计划云解决方案架构 - 管理和提供云解决方案基础设施 - 安全性和遵从性的设计 - 分析和优化技术和业务流程 - 管理云架构的实现 - 确保解决方案和操作的可靠性

Microsoft Azure DevOps Solutions

考核内容: - 设计DevOps策略(20-25%) - 实施DevOps开发过程(20-25%) - 实现持续集成(10-15%) - 实施持续交付(10-15%) - 实现依赖关系管理(5-10%) - 实现应用程序基础架构(15-20%) - 实施持续反馈(10-15%)

其他的课程还有

Puppet certification system administration
Docker certified associate
Kubernetes with AWS & Docker
Openshift Administration
Ansible Basics

更多:

https://www.whizlabs.com/devops-certifications/

2020年devops的7个发展趋势

2019年对DevOps从业者来说是激动人心的一年,DevOps继续快速增长。大多数组织都在执行或评估他们的DevOps策略。那么,到2020年,DevOps、基础设施和应用程序自动化将会发展到什么程度呢?

以下是DevOps对新年新趋势的7个预测。

客户体验

用户体验将成为DevOps之旅的指路明灯,而不仅仅是技术。这是一个巨大的心态转变,从早期的纯技术人员的热情。随着DevOps的成熟,我们必须提醒自己,这一切都是为了让业务变得更快,而不仅仅是为了让技术变得更酷。

可以考虑以下两个方向: - 将DevOps的成就与业务需求和结果联系起来,以获得管理层的支持和预算。 - 成功的QA团队将开始关注他们作为客户体验的守护者的角色,而不仅仅是测试人员。

信任

开发人员和运维人员需要相互信任,这是DevOps成功的基础。 积极主动地营造一种信任的文化。找出工作中缺乏信任的原因,并将信任作为2020年的目标。

当涉及到流程自动化、应用程序和基础设施自动化时,鼓励不同产品级别的对话,并定义正确的方法和明确的所有权。这是每个人都在努力的基础。

对stage环境进行投资——stage环境是需要的,以确保在投入生产之前能够正常工作。对于我们许多公司来说,是直接部署到生产环境, 这样做风险是很大的。可以通过stage环境降低风险,然后在部署到正式的生产环境。

价值流

2020年,我们不仅考虑DevOps工具链,而且将考虑价值流。这个行业正在成熟,不再局限于将几十个开源工具链接在一起,并试图让它们协同工作。在过去的几年里,许多人认为如果他们有一个合适的CI系统,就意味着他们“做DevOps”。现在情况已经不同了。DevOps不仅仅是CI,而且DevOps也不能是孤岛。成熟的DevOps需要考虑整个价值流——从规划一个新的功能和业务需求,一直到客户获得更多的价值和美妙的体验。

必须拥有平台级运营计划,系统级的价值流远景, 需要在整个价值流中拥有编制和自动化的角色,而不是一个一个独立的孤岛。

SRE的角色将继续成熟

从谷歌开始将软件开发实践引入运营后,这个趋势将会继续保持。不断增加的数据量、速度和数据的多样性将使AIOps解决方案蓬勃发展。此外,提高自动化水平,将需要智能的方法来处理动态化的基础设施和各种应用程序,并能够跟踪变化。

如果您还没有实现SRE角色,请考虑SRE如何在2020年成为您的团队的一部分。定义SRE职责区域和kpi,以及SRE如何与团队沟通。SRE作为集中的专业团队,还是作为混编在现有的开发测试运营团队中? 确保你为SREs提供了他们成功所需的工具,包括: - 您使用的监控解决方案是什么? - 现在谁在使用它们? - 你该如何分析监控结果,还有监控结果是如何被发送接收和利用的? - 您现在使用的生产环境编制、部署和配置工具是什么? - 如何将这些工具与应用程序和基础设施自动化连接到测试环境和生产环境?

无缝集成的基础设施

我们必须为我们的团队打造无缝集成的基础设施。内部客户也是客户,他们的经验也同样重要。自助服务和授权团队将将开发人员和ITOps链接起来。

公共云、Kubernetes和serverless无服务器技术将会飞速地发展。这些将使自动化比以往任何时候都更加可行,将我们的工作重点转向自助服务和终端用户。随着越来越多的公司采用类似的方法,公司内部各种基础设施专家将会减少,我们将会看到更多现成的解决方案。

考虑在整个价值流中如何使用基础设施,并在产品级统一该方法。

确保您构建的自助服务解决方案以最终用户为中心,以支持并平衡速度和控制。在确定基础设施自动化的方法时,确保开发人员和ITOps得到平等的代表。

基础设施自动化

随着大量的人工智能和ML,基础设施自动化将变得更加智能化。确保自动化得到适当的管理,也将变得越来越重要, 同时我们还需要考虑安全性和遵从性,以及成本。

评估整个价值流中的基础设施自动化实践。谁构建自动化?什么团队和系统使用它?如何实施安全最佳实践(例如,公共存储库中没有密码,使用适当的数据集进行测试,遵守自动化蓝图)?如何执行成本控制(例如标记、审查云开销报告)?

在失去控制之前,投资于控制机制,特别是在公共云自动化方面。如果没有适当的治理,可以考虑将治理引入自动化,而不是采用传统的云管理方法。

投资于基础设施的自动调试、自动标记、基础设施消耗数据的分析,并将其连接回业务需求、秘密和密钥管理和访问控制。

SaaS

开源很好,SaaS是伟大的。虽然大型开源项目引领了潮流(K8S、Github),并且得到了业界巨头的大力支持和资助,但小型项目越来越难以规模化和整合,尤其是在试图确保企业准备就绪的时候。“自己做”的需求正在逐渐消失,因为越来越多的供应商提供了支持DevOps的产品和服务,这些产品和服务具有清晰的业务和支持模型,同样重要的是,与生态系统的OOB集成。仅仅使用Rest API是不够的。

如果您的企业就绪需求使您难以扩展DevOps计划,那么可以考虑评估新的SaaS产品,这些产品消除了早期的技术密集型实现中常见的大量繁重工作和粘合工作。如果您关心安全性、成本和技能需求,那么现在您可以找到专门为企业级的DevOps提供支持的工具。好消息是,大多数供应商都很清楚集成到您的生态系统的重要性,这使得实现您的端到端价值流远景变得更加容易。

翻译自原文:https://devops.com/predictions-2020-7-devops-predictions-shaping-2020/

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值