DevOps

雇佣 排名前3% of 自由DevOps工程师

PT视讯是顶级DevOps工程师和开发人员的市场. 顶级公司和初创企业选择PT视讯的DevOps专家来完成关键的软件项目.

无风险试验,满意才付款.

客户的速度 PT视讯 DevOps工程师4.4 / 5.0截至2021年12月30日,平均有1899篇评论

被领先品牌和初创公司所信赖

雇佣自由DevOps工程师

德米特里•Kireev

自由DevOps工程师

美国2019年10月18日起成为PT视讯会员

Dmitry是一名云架构师和站点可靠性工程师,拥有超过十年的专业经验,严格遵守DevOps方法论. 他为现代云系统从头架构和构建了多个平台无关的基础设施. 德米特里在高规模环境中有实际操作的经验. 他还精通IaC,自动化,脚本,以及监控和可观察性.

显示更多

Sagi Kovaliov

自由DevOps工程师

美国2017年2月5日起成为PT视讯会员

萨吉是一个表现出色的球员, 微软认证的资深Azure DevOps工程师,拥有10年扎实的DevOps实践经验, 编程, 脚本, 和商业智能. Sagi专注于使用Azure DevOps和Azure Cloud平台架构和实现DevOps流程. 利用他在多个应用程序开发领域获得的经验, Sagi已经成为市场上最著名的专家之一.

显示更多

亚瑟·洛洛特·德·贝恩斯

自由DevOps工程师

法国2018年1月25日起成为PT视讯会员

In 2012, 阿瑟获得了计算机工程的硕士学位,但他很快发现自己真正的方向是系统管理. 他的编程背景帮助他实现了大部分任务的自动化,他最终进入了云计算领域,因为它给了他更多的可能性. Arthur是一个全栈的DevOps,他拥有特别强大的aws开发技能——他的众多认证可以证明这一点.

显示更多

西蒙•巴瑞

自由DevOps工程师

瑞典2015年2月20日起成为PT视讯会员

Simon是一名拥有8年移动开发经验和4年Python开发经验的全栈工程师. 他是一名具有创新精神和高度敬业精神的软件工程师,具有出色的沟通能力. 他以其伟大的直觉而闻名, 创业的心态, 以及他在保持预算的同时平衡最佳实践和生产力的能力. 如果你想要高性能的应用程序,Simon就是你的最佳人选.

显示更多

Keidrych Anton-Oates

自由DevOps工程师

澳大利亚2019年5月20日起成为PT视讯会员

同时授权组织优化速度, 规模, 和利润通过雾云结构,对生产系统的影响为零, Keidrych从2013年开始在集装箱行业工作. 由于他的工作:编写Cyvive (Kubernetes的运营和管理平台)和实现开源微服务配置语言,他最近在2018年美国TechCrunch的集装箱化排名前十.

显示更多

瑞安旋塞

自由DevOps工程师

德国2015年8月18日起成为PT视讯会员

Ryan是一位经验丰富的可靠和可扩展的云生产系统软件工程师. 他的专长是DevOps、微服务和架构应用. 他在云计算和后端工作方面有扎实的背景,并且精通节点.js和Python. 他有很好的软技能,在各种规模的团队中工作过. Ryan有很好的能力去理解需求背后的业务需求.

显示更多

迈克Stankavich

自由DevOps工程师

美国2013年9月17日成为PT视讯会员

Mike是一名高级数据工程师和自由架构师,在整个开发堆栈方面有丰富的经验. 他拥有丰富的云计算和基础设施经验, 拥有微软的多项认证, ISC2, 终于又, 和更多的. 他目前正在RDBMS或NoSQL平台上大规模地为web应用程序构建数据后端.

显示更多

费尔南多·塞尔吉奥·卡多索·库尼亚

自由DevOps工程师

加拿大2018年2月27日起成为PT视讯会员

费尔南多是一名电信工程师,自2013年以来一直在他选择的领域工作. 作为一名IT协调员和IT工程师,他获得了在具有挑战性的环境中工作的实际经验. Fern和o加入PT视讯的工作项目中,他可以做出有意义的贡献,并为客户提供真正的价值.

显示更多

Guilherme罗

自由DevOps工程师

瑞典2018年2月13日起成为PT视讯会员

Guilherme是一名计算机工程师,他对解决挑战和构建漂亮的软件充满热情. 他是一名灵活、动态的开发人员,能够很快地学习新技术并开始构建惯用代码. 他热衷于优雅的解决方案,并与他人分享想法.

显示更多

Fern和o Eugenio Marcos Teixeira

自由DevOps工程师

加拿大2017年3月23日起成为PT视讯会员

Fern和o是一个技术爱好者(DevOps),他对系统自动化充满激情,并拥有丰富的开源经验, 高吞吐量, 和可用性环境. 他设计、设计和实施了网络和移动解决方案. 此外,他有坚实的网络背景,是一个监视和审计怪胎. 最后,Fern和o还是一名AWS认证的DevOps和解决方案架构师.

显示更多

弗雷德里克·Haard

自由DevOps工程师

瑞典2014年5月22日成为PT视讯会员

Fredrik是一名拥有超过15年承包和创业经验的开发者. 他专门从事后端产品开发, 生命周期维护, 以及安全的数据处理和操作, 从收费系统的集群实现到单人初创公司的全栈产品开发.

显示更多

现在就注册看看更多的资料.

开始招聘

招聘指南

如何雇佣优秀的DevOps工程师

DevOps类似于全堆栈开发:涵盖开发和系统操作, 它跨越了非常广泛的技术领域. DevOps工程师应该知道从特别的SQL数据挖掘到通过Bash脚本自动化码头工人的一切. 通过这本方便的招聘指南,可以有效地招聘和面试DevOps工程师.

阅读招聘指南

DevOps招聘资源

雇佣DevOps工程师的更多资源

工作描述模板

面试问题

工作

Trustpilot
媒体报道

... 允许公司快速组建具有特定项目所需技能的团队.

尽管对编码员的需求不断增长,PT视讯却以其几乎达到常春藤盟校(Ivy league)水平的审核而自豪.

我们的客户
创建一个跨平台应用,供全世界使用
蒂埃里Jakicevic
创建一个跨平台应用,供全世界使用
奖状

如果没有PT视讯, Tripcents就不会存在. PT视讯 Projects让我们的基金会在产品经理的帮助下快速发展, 带领开发人员, 和高级设计师. 在60多天的时间里,我们从概念到Alpha. 它的速度、知识、专业技能和灵活性是首屈一指的. PT视讯团队和其他内部团队成员一样,都是tripcents的一部分. 他们和其他人一样为开发做出了贡献并获得了所有权. 我们将继续使用PT视讯. 作为一个创业公司,它们是我们的秘密武器.

首席执行官Brantley步伐 & 联合创始人

Tripcents

我对PT视讯的经验非常满意. 和我一起工作的专业人士在几个小时内就和我通了电话. 在和他讨论了我的项目后,我知道他是我想要的候选人. 我立刻雇佣了他,他也立刻参与了我的项目, 甚至通过添加一些很棒的设计元素来增强我们的整体外观.

导演保罗•Fenley

K邓恩 & 的同事

与我搭档的开发人员都非常出色——聪明、有动力、反应灵敏. 过去很难找到高质量的工程师和顾问. 现在不是.

瑞安·洛克菲勒,首席执行官

Radeeus

PT视讯立即理解了我们的项目需要. 我们请来了一位来自阿根廷的优秀自由职业者, 从第一天起, 投身于我们的行业, 与我们的团队完美融合, 理解我们的愿景, 并产生了一流的结果. PT视讯使得与高级开发人员和程序员的联系非常容易.

Jason Kulik创始人之一

ProHatch

作为一家资源有限的小公司,我们不能犯代价高昂的错误. PT视讯为我们提供了一个经验丰富的程序员,他能够立即投入工作并开始贡献. 这是一个伟大的经历,我们会在心跳中再次重复.

斯图尔特·柏克尼校长

站点专用软件解决方案

我们通过PT视讯聘请了一位拥有丰富亚马逊网络服务经验的开发人员. 我们面试了四位候选人,其中一位非常符合我们的要求. 这一过程迅速而有效.

Abner Guzmán Rivera,首席技术官和首席科学家

照片Kharma

Sergio是一个非常棒的开发者. 一流,反应灵敏,工作效率高.

Dennis Baldwin,首席技术专家和联合创始人

PriceBlink

和Marcin一起工作是一种乐趣. 他是主管, 专业, 灵活的, 并且非常快地理解需要什么以及如何实现它.

Andre Fischer首席技术官

POSTIFY

我们需要一位专业的工程师,他能立即开始我们的项目. Simanas的工作超出了我们的预期. 不需要面试和寻找专业的开发人员是一个非常好的时间节省,并使每个人对我们选择转换平台以使用更健壮的语言感到更舒服. PT视讯让这个过程变得简单和方便. PT视讯现在是我们寻求专家水平帮助的第一个地方.

Derek Minor,网络开发高级副总裁

Networld传媒集团

PT视讯的开发人员和架构师都非常专业,也很容易共事. 他们所提供的解决方案价格合理且质量上乘,从而缩短了我们的发行时间. 再次感谢,PT视讯.

首席执行官杰里米鞋号

Kognosi

PT视讯给我们带来了很棒的体验. 他们为我们的应用程序匹配了完美的开发人员,使这个过程非常容易. 它也很容易超出最初的时间框架, 我们能够在整个项目中保持同一个承包商. 我们强烈推荐PT视讯快速无缝地寻找高质量人才.

瑞安莫首席技术官

应用商业技术有限公司

PT视讯给我留下了深刻印象. 我们的开发人员每天都和我交流,他是一个非常强大的程序员. 他是一个真正的专业人士,他的作品非常出色. PT视讯 5星.

首席执行官皮特Casoar

Ronin Play Pty Ltd

与PT视讯合作是一次很棒的经历. 使用它们之前, 我花了很长时间采访其他的自由职业者,却没有找到我需要的. 在与PT视讯接触后,他们在几天内就为我找到了一个完美的开发者. 与我一起工作的开发人员不仅交付高质量的代码, 但他也会对一些我没有想到的事情提出建议. 我很清楚阿莫里知道他在做什么. 强烈推荐!

首席执行官乔治•程

Bulavard公司.

作为一名合格的PT视讯前端开发人员,我还经营着自己的咨询业务. 当客户来找我帮忙填补他们团队中的关键角色时, PT视讯是我唯一放心推荐的地方. 托普塔尔的所有候选人都是精英中的精英. PT视讯是我在近五年的专业在线工作中发现的最物有所值的.

伊桑•布鲁克斯首席技术官

Langlotz专利 & 商标工作的公司.

在讨价还价早期, 我们需要一流的开发人员, 以可承受的利率, 及时地. PT视讯交付!

首席执行官劳拉Aldag

讨价还价

PT视讯让你非常容易找到一个候选人,并让你放心,他们有能力提供. 我肯定会向任何寻找高技能开发人员的人推荐他们的服务.

Michael Gluckman,数据经理

Mxit公司——

PT视讯能够迅速将我们的项目与最优秀的开发人员匹配起来. 开发人员已经成为我们团队的一部分, 我对他们每个人所表现出的敬业程度感到惊讶. 对于那些希望与最好的工程师远程工作的人来说,PT视讯是最好的选择.

创始人Laurent爱丽丝

Livepress

PT视讯让找到合格的工程师变得轻而易举. 我们需要一个有经验的ASP.净 MVC架构师来指导我们的初创应用程序的开发, PT视讯在不到一周的时间里就有了三个很好的候选人. 在我们做出选择后,工程师立即上线并开始工作. 这比我们自己发现和审查候选人要快得多,也容易得多.

联合创始人杰夫•凯利

协同解决方案

我们需要一些短期的Scala开发工作,PT视讯在24小时内就为我们找到了一个优秀的开发人员. 这是任何其他平台都不可能实现的.

弗兰科斯巴达,创始人之一

WhatAdsWork.com

PT视讯为快速发展和规模化的企业提供了不妥协的解决方案. 我们通过PT视讯聘请的每一位工程师都迅速融入了我们的团队,在保持卓越开发速度的同时,他们的工作达到了最高的质量标准.

联合创始人格雷格•金博

nifti.com

如何通过PT视讯招聘DevOps工程师

1

与我们的行业专家之一谈谈

PT视讯的工程总监将与您一起工作,以了解您的目标, 技术需求, 和团队动力.
2

与精心挑选的人才一起工作

几天之内,我们将为您的项目介绍合适的DevOps工程师. 平均匹配时间在24小时以下.
3

合身,保证

和你的新DevOps工程师一起工作一段试用期(满意才付薪水), 在订婚前确保他们是合适的人选.

常见问题

  • PT视讯的DevOps工程师有什么不同?

    在PT视讯, 我们彻底筛选我们的DevOps工程师,以确保我们只为您匹配最高水平的人才. 超过100个,每年有1万多人申请加入PT视讯网络, 只有不到3%的人能成功. 你将与工程专家(而不是一般化的招聘人员或人力资源代表)一起工作来理解你的目标, 技术需求, 和团队动力. 最终的结果是:专家从我们的网络中审查人才,定制匹配,以满足您的业务需求. 现在就开始.

  • 我可以通过PT视讯在48小时内聘请DevOps工程师吗?

    这取决于可用性和进度的快慢, 你可以在注册后48小时内与DevOps工程师一起工作. 现在就开始.

  • PT视讯 DevOps工程师的无风险试用期是什么时候?

    我们确保你和你的DevOps工程师之间的每次接触都有长达两周的试用期. 这意味着您有时间确认订婚是否成功. 如果你对结果完全满意的话, 我们将按时间向你收费,你们的婚约想继续多久就继续多久. 如果你不完全满意,你不会被收费. 从那里, 我们有两种选择, 或者我们可以为您提供另一位可能更适合的专家,我们将与他开始第二个, 无风险试用. 现在就开始.

分享
DevOps

如何聘请优秀的DevOps工程师

什么是DevOps工程师? 很明显, 对于这个问题,没有一个通用的答案:仅从几家公司的DevOps工程师职位空缺中略读一下,就足以表明该职位的需求有多么多样化.

DevOps专家应该能够将他们的技能塑造成公司IT流程的独特机制. 候选人通常被期望精通部署自动化和网络, 理解软件许可, 在硬件和软件方面要明智, 使用多个操作系统, 用各种语言编写脚本来生成报告和自动化任务. 他们必须不断地与团队成员沟通,以确定任务的轻重缓急,并出色地记录和演示他们创建的工具.

在一个人身上评估这么多领域的技术知识和沟通技能是很棘手的. 这就是本指南的作用所在:我们将告诉你,为了成功聘请DevOps专家,你需要知道什么, 给你DevOps面试问题的例子, 强调应聘者应该展示的技能.

让我们从一个基本概念开始,这个概念是当今每个DevOps专家都应该精通的.

虚拟化和沙盒

理解虚拟化对于所有的DevOps候选人来说都是必要的. DevOps行业的许多当代思想和策略都是建立在它的基础上的, 无论公司的结构或目的如何,这都在发挥作用.

虚拟化背后的理念是将底层硬件或软件抽象出来,使其更独立,更独立. 它实际上是一个广泛的概念,适用于服务器, 网络, 存储, 台式电脑, 甚至应用程序.

例如, 安装了所有服务和工具的服务器操作系统的配置方式与公司实际操作系统的配置方式相同, 裸机服务器, 而是放在虚拟机中, 或虚拟机. 然后,可以在开发人员的笔记本电脑上启动vm,以模拟与服务器环境相同的服务和工具之间的真实结构和关系, 即使开发人员使用不同的笔记本电脑进行工作. 随着虚拟化工具(如Vagrant)和轻量级容器管理系统(如 码头工人.

另一个例子是如何将具有多个资源的复杂网络隐藏在几个虚拟层后面, 然后划分为可管理的部分.

存储虚拟化也是如此:多个物理存储设备虚拟地“连接”在一起,并作为一个单一的存储单元出现, 然后它们可以根据公司的需要被进一步分割.

最后, 应用程序虚拟化将让相同的应用程序封装在多个操作系统上运行.

一定要问候选人他们是如何从他们自己完成的实现中看到这些好处的.

重要的是,候选人可以解释使用虚拟化的主要好处:

  • 加强对IT资源的控制
  • 更快地设置和配置IT基础设施
  • 简单的沙盒
  • 便宜的实验
  • 更快的发布和恢复时间
  • 更好的隔离,从而更高的安全性
  • 降低变化带来的风险
  • 更好的软件和服务的可测试性

虽然考生可能不需要列出所有的要点, 理解为什么要使用虚拟化以及在哪里可以实现虚拟化非常重要. 没有它, DevOps工程师的可能性非常有限,无法提出有效的解决方案.

除了 为什么, 如何 组件是能让你分辨出他们是否是一个真正有技能的人的东西——通过询问候选人他们是如何在他们自己完成的实现中看到这些好处的,确保其中一些要点是可以展示出来的.

虚拟化既便宜又高效 沙盒. 沙盒的意思是放一个软件, 就像一个运行的程序, 在一个孤立的盒子里, 并控制它何时可以访问哪些资源.

沙盒对于安全性和测试都非常有用. 说到安全, 这个过程可以阻止软件漏洞或系统故障的蔓延. 在测试中,在将软件交付到实时服务器之前进行测试是一种很好的方法. 在沙箱, 您可以模拟各种角落情况并测试各种用户输入, 查看当多个同时请求重载时程序的执行情况, 自动化质量保证测试, 等等.

在一天结束时, 虚拟化和沙盒允许您更快地开发, 更频繁、更流畅地推出新功能, 并适应不断变化的公司进程. 最终,他们通过减少许多不可避免的风险来节省资金, 通过自动化大量的日常流程.

有用的术语包括虚拟机, 主机和客户操作系统, 容器, 和管理程序. 候选人应该能够解释这些.

示例面试问题:

  • 有哪些工具可以实现虚拟化? 现在市场上的主要参与者是什么?
  • 如果不使用虚拟化,什么是不可能的? 后果是什么?
  • VMWare和码头工人有什么区别?
  • 如何对开发人员的环境进行标准化,使他们能够像使用活动服务器一样使用软件?
  • 如何更频繁地进行释放,并且能够在几分钟内而不是几小时内回滚?
  • 版本控制系统(VCSes, e.g. Git)与虚拟化一起工作?

上面列表中的最后一个问题尤为重要. 这里的想法是VM配置应该与项目代码一起在VCS中跟踪. 通过这种方式,虚拟机的正确配置可以为当时提交的任何给定的代码状态复制. 跟踪应用程序代码以及它所运行的系统的配置,可以重现与VM配置和操作系统版本相关的bug, 包, 和库.

现在我们已经检查了一些基本的东西, 让我们来看看DevOps专家应该对当今的硬件有哪些了解, 包括云计算.

云技术和硬件

拥有硬件以运行IT业务在许多情况下是必要的日子已经过去了. 现在, 像亚马逊和谷歌这样的公司维护硬件并出租, 每月支付的费用仅仅是原始硬件成本的一小部分.

租借硬件而不是购买硬件是当今许多企业的流行方式. 通过将硬件设置和维护任务外包给专门的团队,它消除了许多硬件设置和维护任务. 这也加快了创业的速度, 或者构建一个概念验证产品, 或者为客户提供即时专用的试验设置. 它还允许您直接关注业务逻辑,而不是花时间设置自己的硬件.

一个公司甚至可以建立自己的, 内部云, 通过将他们的硬件连接到一个单一的网络并对其进行抽象. 混合搭配云解决方案也很流行. 无论如何,云计算将会出现在DevOps专家的日常工作中. 这就是为什么评估他们的相关知识和技能能帮助你确保你的公司不会在速度上落后, 灵活性, 并扩大云计算提供的服务.

首先,问应聘者云计算带来的好处,比如:

  • 减少安装和维护成本
  • 支付能力,你只使用,并添加更多的资源,当你去
  • 由供应商自动更新软件
  • 可靠的灾难恢复

尽管这个问题可能不那么实际,更哲学, 当人们对技术及其目标有一个大致的了解时,这总是好的. 如果是这样的话, 他们可以在需要的时候学得更快, 和, 有更广泛的理解, 您的企业是否会对现有技术进行更智能的应用.

当谈到将云计算引入公司的it基础设施时,情况就不同了 服务模型 由供应商提出. 你的DevOps候选人有没有说几句关于标准模型之间的差异的话, 举例:

  • 基础设施即服务(IaaS)
  • 平台即服务(PaaS)
  • 软件即服务(SaaS)

询问他们使用这些模型的经验也是值得的.

接下来,在这些模型的上下文中讨论您的业务流程. 例如, 如果你的公司大量发送电子邮件, 它是否可以使用类似亚马逊简单电子邮件服务的SaaS解决方案, 还是应该使用第三方IaaS来建立自己的服务? 有什么不同呢? 两者的局限性是什么? 从一个模型转换到另一个模型有多容易? 会有禁闭吗?

另一个例子是实现内部项目管理或公共用户支持系统. 在这两种情况下, 市场上有许多可用的解决方案——您很少想要从头构建自己的解决方案. 其中一些是由提供者托管和维护的, DevOps将参与将其与团队使用的其他软件进行集成. 其他应下载, 安装, 配置, 并定期更新, 这也取决于DevOps团队的能力.

因此,你应该期望应聘者能够毫不费力地回答以下问题:

  • 什么是云服务API,存在哪些定价模型,什么是API使用配额?
  • IaaS、PaaS和SaaS中哪些适用于我们公司? (这意味着应聘者在提交申请前了解过你的公司及其目标.)
  • 租用而不是拥有硬件的风险是什么?
  • 使用自己的硬件有什么风险,什么时候它是唯一可用的选择? (提示:不可靠的互联网服务就是一个很好的例子.)
  • 在这种情况下,购买自己的硬件对公司有利?
  • 哪些合规问题与使用云服务有关, 如何检查给定的服务是否符合公司的政策, 标准, 和现有的认证?

因为DevOps可能会随着时间的推移改变公司的基础设施,所以让他们理解是很重要的 标准遵从和认证. 如果你的产品或服务在公司的居住国受到监管, DevOps将需要与您的信息安全工程师合作,以维护现有法规或申请新的法规. 如果是这样的话, 让候选人谈谈他们在这个领域的经验:他们是如何完成合规的,以及他们在这个过程中扮演了什么角色.

这是一个快速实用的任务,可以帮助您评估DevOps候选人在遵从性和认证方面的知识. 如果你之前申请过,你会有很多申请表格要填. 从其中的一篇选段中取出所有答案,交给候选人. 让他们:

  1. 解释问题的意义
  2. 告诉你他们会问基础设施的问题, 安全, 和开发部门,以获得所需的信息,填写表格中的问题.

即使您有专门的合规专家, DevOps很有可能同时参与法规遵循应用和验证. 如果DevOps候选人缺乏对这些方面的理解,那么您就是在拿自己的遵从性地位冒险.

硬件 话题,知识是有回报的. 充分释放软件潜力的方法之一是使用正确的硬件,并以正确的方式组合它们. 例如,看看堆栈溢出 2013年服务了1.5亿个HTTP请求2016年2.1亿. 在硬件列表中, 你会注意到2013年使用了4个Microsoft SQL server, 到2016年,仍然只有四家. 数据库服务器的数量没有增加,只有两台服务器得到了升级. 这意味着在幕后有一个明智的计划. 它不仅可以直接在硬件上省钱, 但也在硬件安装上, 主机托管, 和维护.

So, 这取决于你公司的业务流程, 你可能想问DevOps候选人以下一些问题:

  • 哪些类型的软件需要更多的以下内容?
    • 处理能力(CPU速度)
    • cpu或核心(用于并行化)
    • gpu
    • 计算机内存
  • 给出一个硬件设置冗余的例子. (您可以使用Stack Overflow文章作为一个指南来熟悉一个可能的用例.)
  • 什么是负载均衡,什么时候需要负载均衡?

你的公司可能不拥有任何硬件,而是将云服务用于整个IT基础设施, 但要做出最好的选择, DevOps开发人员能够度量硬件性能,并了解如何调优软件,使其在给定的硬件环境下最佳工作,这一点非常重要. 如果您不聘请专门的服务器管理员,这个技能尤其重要.


下一个, 我们将着眼于你在每一项DevOps工作中都能看到的东西:在测试和部署软件时消除常规的重复性手工工作.

构建、测试和部署自动化

在过去的十年中,软件开发的过程已经发生了巨大的变化,这要归功于新的开发人员工具的诞生和许多过程自动化的引入——尤其是在构建过程中, 测试, 和部署. 这通常被称为“持续交付”(CD)。, 但在你开始采访DevOps专家之前,了解一下DevOps和CD之间的关系是值得的.

与光盘, 团队倾向于更频繁地发布新功能, 通过将大任务划分为更小的子任务来逐步实现大任务, 通过向有限数量的客户推广新想法来测试它们, 当在新版本中发现问题时,可以轻松地回滚. 在DevOps开发人员的帮助下,这一切都成为可能,并允许企业更灵活,更快地适应不断变化的市场,压力更小.

DevOps工程师在设置、调整和维护CD方面起着关键作用. 它是这样工作的.

步骤1. DevOps团队会咨询其他团队,以收集关于如何开发的信息, 测试, 现在已经设置了部署流程.

步骤2. DevOps团队了解计划的特性, 评估公司的发展速度, 估计当前基础设施开支的范围, 找出公司中最耗时的任务——所有这些都是影响什么应该被自动化和改进的因素, 以什么顺序. 尽管本节的重点是自动化测试和部署, 这两个过程通常是所有其他过程的组成部分,并影响它们. 所以更多的技术堆栈研究, 在测试和部署自动化方面可以做出更好的决策.

步骤3. DevOps工程师在计划和划分自动化实现任务的优先级时,会首先处理最关键和/或最昂贵的过程. 在这个阶段, 为了让每个人都能充分利用测试/部署自动化,通常会与其他团队的领导进行大量讨论.

步骤4. 自动化是分阶段实现的.

对于已经有持续交付的公司, 可能只是有一份待办事项清单,等待DevOps的新员工接手. 然而,按照上面的步骤仍然是有益的——当DevOps工程师了解了整体的设置,并可以在执行计划中的任务时提出自动化改进建议时,这是没有坏处的.

当涉及到自动化构建、测试和部署时,许多工具和概念都在发挥作用. 当我们探讨以下类别时,值得考虑哪些是与候选人讨论的最相关的.

单元测试

单元测试是一种专门开发的脚本,用于测试应用程序中最小的可测试部分(单元)以进行正确的操作.

单元测试通常是自动化的. DevOps团队的工作是将单元测试运行器集成到开发中使用的虚拟机以及CI服务器中,以便测试能够进行 可以自动运行 在每个新版本发布之前,或者由开发人员或测试人员手动触发. 报告也应该配置,以便开发人员能够立即发现他们的新代码是否破坏了现有的功能.

此外, 对于需要定期运行大量单元测试的大型应用程序, DevOps开发人员通常设置专用的持续集成服务器,在那里单元测试并行运行,同时开发人员在开发环境中继续编码. 没有这样的CI服务器, 当运行在一个单一的开发笔记本电脑, 单元测试自动化有时需要几个小时, 如果不是长.

测试有多种类型:

  • 功能测试:确保所有关键应用功能正常工作?
  • 兼容性测试:应用程序是否在各种环境中保持其功能? 例如, 一个web应用程序应该在所有受支持的浏览器中工作, 支持多个数据库的应用程序应该与所有数据库一致工作, 驱动程序应该在所有支持的硬件型号下正常工作, 等等.
  • 性能测试:流量或其他类型的负载如何影响应用程序的性能?
  • 安全测试:攻击是否能揭示应用程序安全机制的缺陷, 使受保护的数据在未经授权的情况下被访问?
  • 可用性测试:应用程序的用户是否能够在不阅读文档的情况下直观地理解如何使用它? 它是否如预期那样工作?

上面的一些测试可以进一步加入到“冒烟测试”中(也可以是验收测试或健全测试)——在发布前执行的测试,以显示应用程序是否满足特定的标准.

用于构建自动化的DevOps工具

在新版本发布之前, 必须构建或至少打包源代码, 这取决于你的技术堆栈. 对于像c#或Java这样的静态类型编程语言, 构建意味着将源代码编译为 可执行的 这可以用电脑来操作. 对于像PHP、Python和JavaScript这样的解释性语言,可能不需要编译 本身,但e.g. JavaScript文件被合并到组中并被缩小, SASS文件被编译成CSS文件, 还构建了带有翻译的语言文件, 图像被缩小了.

DevOps开发人员通常会使用构建自动化软件 这类软件的列表 是巨大的. 对于DevOps的候选人来说,一个很好的问题是让他们谈谈他们使用了哪些工具来解决哪些任务. 这些工具可以分为两类:

  1. 特定于编程语言的工具. 例如,Rake是一个基于ruby的构建工具,而Apache Ant则流行于Java.
  2. 特定于操作系统的工具:FinalBuilder是针对窗户软件开发人员的,基于make的工具(如 GNU使mk)适用于Linux/Unix及Mac操作系统.

在您的团队中工作的DevOps工程师必须熟悉特定于操作系统的构建工具和项目中使用的编程语言,这一点非常重要.

持续集成、交付和部署

通常人们会混淆这三个术语,所以让我们先快速浏览一下它们:

持续集成 有助于保持主线(在版本控制系统(如Git)中跟踪项目代码的基本分支)的更新. 这通常是通过将所有开发人员的工作副本合并到主线中来实现的.e. 每周几次(或更多)vs每次发布一次.

持续交付 确保应用程序的可部署工作状态经常产生,我.e. 通过增量. 这样,当业务准备就绪时,您就有信心将应用程序部署到生产环境中.

持续部署 是将应用投入生产的过程吗. 集成和交付的连续性是部署阶段的先决条件.

多亏了自动化,这三个实践现在都是可能的 由DevOps工程师实现. 这三者都需要脚本编写技能和熟悉相应的工具. 这就是为什么你应该在面试中提到这个话题.

在你和候选人谈之前, 从开发人员那里了解情况很重要, 系统管理员, 和其他技术团队在您公司的课题状态. 如果任何积分, 交付, 或者部署方案已经到位, 记下工作中使用的工具和脚本语言,以便与应聘者讨论. 如果没有实现, 询问应聘者,他们是否使用了和你一样的语言和框架来实现项目.

应聘者是否对清单上的每一项技术都有经验并不重要. 这是因为针对不同的情况有很多不同的工具, 主要的一点是理解他们的目的, 并且能够学习并快速使用它们. 有足够经验的顾问通常能够在几天内学会新工具.

监控

因为有太多的服务器、服务、微服务、数据库等. 形成应用程序的构建块, 如果不持续和严格地监控所有这些措施的可操作性和可用性,将是有风险的.

当然,DevOps工程师必须能够自己设置监控. 但同样重要的是,他们可以:

  • 分析故障并了解故障原因
  • 修复故障并恢复功能
  • 采取措施防止未来出现类似的失败
  • 在内部报告中列出所有细节,并通过注释改进内部文件, 提示, 以及与给定问题相关的程序
  • 建议产品团队改进引起问题的代码
  • 帮助支持团队在博客文章和支持票中用简单的语言解释问题

请DevOps候选人谈谈他们是如何设置监控,然后处理一些故障的. 从他们的故事, 你将能够确定他们是否熟悉上面概述的要点.

你还应该问应聘者以下问题:

  • 他们用的监控软件
  • 无论他们使用的是第三方服务(如Pingdom)还是开源解决方案(如Zabbix和Nagios), 和
  • 他们如何将服务/解决方案连接到应用程序(例如.g. 通过API,嵌入JavaScript代码,安装和配置互补的服务器包,等等.)

最后, 当涉及到性能和故障分析时, 能够配置日志和读取日志输出是有效处理故障的关键.

下面是一些与监控相关的词汇,在面试DevOps候选人之前,你需要先熟悉这些词汇:

  • 服务器正常运行时间监控. 这意味着测试公司网站、应用程序、服务器和服务的可用性.
  • 正常运行时间测试位置. 从不同的位置监控网站的可用性是有意义的, 特别是那些大多数网站用户居住的地方.
  • 状态页面. 这些显示当前和历史数据的网站或服务的正常运行时间. 可能有公共状态页面和私有状态页面——后者通常面向产品团队, 服务器管理员团队, 和其他的工程师, 并包括用于管理整个基础设施的全面监控细节和统计数据. 建立这样的页面通常是DevOps专家的责任.
  • 页面速度. 对于网页内容,慢速加载的页面意味着 较低的谷歌排名转换和销售的损失.
  • 报警. I.e. 当事件发生时,通过各种渠道通知责任方. 深思熟虑的提醒会减少你解决问题的时间.
  • 日志轮转. 这仅仅意味着按照时间表归档有日期的日志文件.
  • 日志服务器. 用于收集和存储所有日志的专用服务器. 有了它可以简化搜索日志数据的过程, 并允许您对其进行过滤,以便快速审计系统.

关于页面速度优化的一个很好的问题是:DevOps专家可以采取什么措施来优化页面速度? 的确,许多改进是由开发者在代码内部完成的,但有些改进DevOps工程师也可以做到:

  • 在web服务器级别启用压缩
  • 通过微调web服务器(如Apache和Nginx)和负载均衡器来提高服务器的响应时间
  • 允许使用内容分发网络(CDN)

我们刚才讨论的通常叫做 性能和可用性监控. 但监控还有另一个方面: 安全监视. 其理念是,用户和程序的所有操作和活动都必须被跟踪.

无论你的客户是大是小, 您的公司对您存储在服务器上的个人数据的机密性和安全性负责. 同样的道理也适用于:

  • 知识资产,比如应用程序的源代码. 您希望安全存储它,而不是泄漏给您的竞争对手.
  • 公司电子邮件和其他沟通渠道,包括用户支持. 你不希望公司里的每个人都能看到这些.
  • 内部文件,如竞争对手分析、发展战略、财务报告等. 限制和控制对它们的访问具有重要的战略意义.

因此, 观察和记录公司所有层次的运营和活动是非常重要的, 从网络到应用程序再到员工.

(我们将讨论更多关于安全的 资讯科技保安最佳实务部分 下面.)

脚本和编程技能

您不希望DevOps工程师在一个有5亿条记录的数据库上运行一个设计不良的SQL查询,并使其冻结.

只有使用编程才能解决上面讨论的任务. 事实上, 你应该期望DevOps候选人具备多种编程语言的编程技能.

让我们详细说明一下:首先,脚本 bash (Unix/Linux shell和命令语言)被广泛用于自动化服务器软件设置和配置, 备份, 构建, 和部署; running monitoring; building reports; 和 consuming cloud APIs. 事实上,任何一种 自动化 需要的脚本.

为另一个, 将各种系统服务与应用程序顺利集成, 你雇佣的DevOps工程师有时需要了解应用程序中使用的编程语言.

一个很好的例子是多租户PHP、Ruby或 Python web应用解决方案 运行在由亚马逊网络服务(AWS)提供的云虚拟服务器上. 以下是一些典型的任务,需要DevOps专家运用他或她的编码技能:

  • 创建一个bash脚本在AWS上实例化一个新的VPS服务器. 脚本需要这样做 使用AWS API 在公司账户下创建一个新的虚拟服务器, 将应用程序部署到其中, 并在数据库中创建数据库模式并配置应用程序帐户. 也可能需要连接到CRM(如SalesForce)并使用服务器ID更新用户记录.
  • 在应用程序中编写一个内部方法,该方法将应用程序状态报告给外部监视脚本.
  • 实现一个内部网页,报告所有服务器的状态, 并显示一些使用统计数据.
  • 修改现有的产品码头工人file(如果使用码头工人) 集装箱化).
  • 创建一个bash脚本,用于进行计划备份,以及按请求从备份中进行还原.
  • 创建一个bash脚本,将新应用程序版本推出到一些(或所有)服务器, 如果在新版本中发现了严重的错误,还可以回滚它.

实际上,在DevOps的日常工作中还有很多这样的任务. 这就是为什么开发者和devops之间没有明确的界限——他们都能写代码. 前者只是更擅长于给定领域的算法和业务逻辑编程, 而后者在系统管理方面有更广泛的知识. 但许多任务可以由两者共同完成.

因此,在DevOps面试中提出编程问题并不是一个坏主意. 至少, 你应该询问应聘者他们使用过哪些编程/脚本语言(除了bash).

另一种选择是使用在线编码测试. 很多服务都有针对不同编程语言和领域的预定义测试(复杂程度不同). 有些服务还允许您构建自己的测试, 因此,有可能选择具有您公司特有的编码技能的候选人. 无论您是依赖于预先构建的测试,还是构建自己的测试, 您将需要咨询您的产品/开发团队,以使测试问题相关.

有时, DevOps开发人员被要求从只有他们被授权访问的数据库中提取或检查数据. 对于这些情况,能够编写SQL查询将会有很大的不同. So, 如果您的项目使用数据库, 您还可以讨论候选人使用您的特定数据库引擎的经验. 您不希望DevOps工程师在一个有5亿条记录的数据库上运行一个设计不良的SQL查询,并使其冻结.

配置SQL表分区是一个复杂的字段c.f. 的 关于PostgreSQL表分区的文档. 如果你雇佣的DevOps需要进入这个领域,了解SQL语法是不够的. 他们需要深入了解索引和影响数据库性能的因素, 你还需要了解他们之前的经验.

版本控制和分支策略

现在很难找到一个不是由Git管理的It项目, 颠覆, 水银, 或者另一个版本控制软件(VCS). 从文档到配置,从代码到数据库模式——以及对任何类型的文档所做的修改——这些内容通常存储在VCS中并使用VCS进行跟踪.

因此,了解如何使用VCS系统对任何候选人都是至关重要的.

按照 2018堆栈溢出开发者调查在美国,最受开发者欢迎的风险投资是Git (87.(2%)和颠覆(16.1%). 通常来说,应聘者至少有过其中一种工作经验就足够了. Git已经成为IT行业事实上的标准, SVN仍然在一些被认可的项目中使用,其中包括wordpress, 例如, 截至2018年.

所有VCS系统背后的理念都是一样的——允许对变更和分支进行管理.

变更的管理, 或修改管理, 允许您跟踪给定文档或代码文件的每一个更改, 以后再随意恢复. 在VCS中跟踪的每一个变更都可以恢复在当时跟踪的原始源.e. 它的作用是获取整个项目、文档、数据库模式等的快照. 这样的快照通常称为 提交 在风投的术语.

分支是一种允许多人同时有效地在同一资源上进行协作的技术——它减少了修订之间的冲突,并自动合并多人(或同一个人同时处理多个特性)完成的工作.)

因为有不同的分支方法(也称为分支策略),比如 Git流GitHub流, 要求应聘者知道不止一种技能是没有意义的:如果他们知道其中一种技能是如何工作的, 他们很可能很容易就学会其他的.

现在,让我们看看为什么DevOps工程师能够使用VCS是很重要的. 事实上,他们做的很多事情都需要vc的技能:

  • 部署应用程序的特定版本,或恢复到其旧版本之一
  • 将包含特定特性的特定分支部署到持续集成服务器, 这样就可以运行测试并生成报告
  • 比较软件的两个版本,以确定任何可能影响合规性的变化(当你想为DevOps雇佣的人也将扮演安全工程师的角色时)
  • 跟踪VCS中的内部脚本和相应文档

Git是一个复杂的工具,提供了许多可能性. 当然, 它提供了基本的修订跟踪, 但它也有帮助解决复杂任务的高级功能. 例如, git平分 命令允许您有效地查明哪个提交引入了错误. 就像编程语言, 随着时间的推移,你可以通过解决各种任务、阅读文档和教程来提高自己的Git技能. 因此,你不应该期望一个DevOps候选人在VCS中拥有全面的专业知识. 问候选人两个问题就足够了:

  1. 他们过去是否使用过vc,比如Git、Svn或水银
  2. 看看他们是否熟悉任何分支策略

尽管提出简短的任务让DevOps候选人展示他们使用VCS的技能是很容易的, 如果您打算让他们做一个试验项目,这可能是不必要的——只需将需求集成在那里,而不是单独测试.

帮助您评估试验项目的VCS存储库中的提交和分支的质量, 你应该问问那些使用公司vc最多的人——你的开发人员(产品团队). 尽管如此,当你检查存储库时,还是需要注意以下事项:

  • 提交消息(我.e. 伴随提交/快照的消息)应该是描述性的和简洁的,并遵循相同的风格
  • 每一个功能, 修复, 或者文档中的更改应该单独提交(“经常提交”原则)
  • 不应该有半途而废的提交(或者应该在提交消息中标识)。
  • 不应该跟踪任何“日志”文件或与项目无关的其他文件

使用VCS的最佳实践已经发展了一段时间,并在以下文章中进行了描述 -如果你是审查试验项目的人,至少要浏览这样的资源.

DevOps的IT安全最佳实践

DevOps驱动公司开发过程的很多方面. 因此,它自然是通知更广泛的安全实践的实现并在所有团队中培养安全意识的完美场所. 记住这一点, 很明显,安全性是另一个你希望你的DevOps候选人能够擅长的领域, 特别是当你没有一个专门的安全团队支持的时候.

私营机构自报的六大事故类型(以折衷系统为首,占56%)

许多载体威胁着私营部门的IT安全.
来源: 澳大利亚网络安全中心

随着IT解决方案被越来越多的行业采用, 渗透的可能性也在增加:从硬件到软件到固件到驱动程序到业务解决方案, 每一项都是需要保护和安全监控的单独项目. 因此,对安全专家的需求正以前所未有的速度增长. 这就是为什么一个擅长安全的DevOps开发人员是一个非常有价值的资产.

第一个建议是将与IT安全相关的需求放在前面, 就在你的招聘广告上. 如果您准备接受在解决现实问题时没有实现安全最佳实践的具体经验的候选人, 提到它是学习主题的必要条件仍然是有意义的, 并且/或者将其作为个人年度教育计划的要求.

下一个, 在面试应聘者的时候, 在面试接近尾声的时候,让他们熟悉你公司使用的技术栈之后, 请应聘者列出一些他们将采取的措施来改善你的整体安全实现. 下面是一些你可能会想到的好例子:

  • 每周发送安全提醒信-因为所有的员工都是人,容易受到各种类型的攻击, 随着新的漏洞不断被发现, 每周一封总结调查结果并给出建议的信件可能会使该公司不那么容易受到此类攻击.
  • 启动专用安全通道-在Slack上建立一个专用流程, Flowdock, 或者任何其他的公司聊天都是及时发布公告和讨论它们的好方法.
  • 制定安全教育计划—it never hurts to study 安全 formally; 这 might be just short online courses taken twice per year. 参加课程对团队建设也有很好的副作用.
  • 构建公司使用的工具、软件和云服务的列表密切关注他们,寻找新的漏洞.
  • 使用VPN,强制密码轮换-隐藏内部资源是一种常见的做法, 比如项目管理软件和源代码托管, VPN背后.
  • 设置安全监控-如上面监视部分所讨论的.

此外,为了准备一些简洁的采访前阅读, DevOps安全最佳实践 讨论安全性方面的挑战和最佳实践.

最后, 如果你计划在面试过程中进行一个试验项目, 确保在项目描述中说明将在可交付成果中评估安全性最佳实践, 如果这适用于项目. (无论你提出什么项目,它都有可能做到.)然后让你的安全/产品团队回顾这个项目,并征求他们的意见.

沟通技巧

和任何需要合作的工作一样, 沟通技巧是整个团队快速进步的关键之一. DevOps专家也不例外.

在日常工作中,DevOps专业人员可以在很多方面运用他们的沟通技巧:

  • 从不同的团队(产品、客户成功、销售等)收集需求.)
  • 记录并演示他们创建的工具和解决方案
  • 通过头脑风暴找到软件和硬件架构的解决方案
  • 向利益相关者报告

你的人力资源部门可以帮你过滤掉那些有明显沟通障碍的候选人. 由于沟通问题,高素质、有经验的专业人士离开公司的情况并不少见. 所以在签合同之前,在早期阶段就识别出他们是很重要的.

至少, 在面试和评估试验项目时都是如此, 确保DevOps候选人:

  • 能否在口头和书面上清楚地表达自己的思想和想法
  • 分享团队快速行动与个人快速行动的价值
  • 理解分享的文化
  • 是否愿意为共同目标而努力

合作精神是一种非常重要的个人特质. 虽然不可测试 本身,这将影响应聘者参与团队合作的速度. 因此, 如果有几个候选人具有大致相同的技术专长和技能, 更喜欢具有良好沟通和协作能力的同事.

下面是一些在面试中可以讨论的话题:

  • 你曾经远程工作过吗(或者在一个开放的空间,这取决于你公司的环境)?
  • 描述一下你是如何展示你作为DevOps工程师所开发的工具和/或过程的.
  • 你使用什么工具与你的队友合作和沟通?

筛选DevOps开发人员是一回事. 如何使候选人的要求适应您的公司,它的类型和结构?

为你的公司找到一个完美的人选

聘请一个愿意这样做的DevOps经理,两者在概念上是有区别的 领导公司的重大变革 并招募一名工程师 加入devops公司的现有团队.

要在一个公司里从零开始建立DevOps实践,你需要这样一个候选人:

  • 之前担任过DevOps首席工程师,或者
  • 作为现有DevOps团队的一员,在一家大中型公司做了几年DevOps

这里的想法是,在不需要DevOps基础设施的公司中建立DevOps基础设施, 除了理论, 很多技能和经验知识. 一旦基础架构被建立并被项目中的其他团队所依赖, 从根本上改变它的成本太高. 这意味着在DevOps中,设计和结构错误的代价是非常高的. 可以把它想象成从零开始设计软件,而不是雇人给现有的软件添加更多的功能. DevOps行业也是如此——你不应该冒险把赌注押在一个在该领域缺乏实际经验的人身上.

If, 另一方面, 新员工将由现有的DevOps团队进行指导和检查, 对经验的要求可以放宽, 更注重态度和沟通技巧.

在任何情况下,重要的是候选人将能够 插入公司的产品框架因此,他们必须熟悉该公司的部分或全部技术. 这些包括:

  • 编程语言(如PHP、Ruby、Java或Scala)
  • 应用框架(如Laravel for PHP或Play)! Scala)
  • 操作系统(os)用于服务器和其他公司硬件(如Ubuntu, Red Hat Linux, 或窗户 Server)
  • 数据库(如PostgreSQL、MariaDB、Oracle或Microsoft SQL Server)
  • 工具(如备份工具和资产编译工具)

很多时候,DevOps工程师需要使用相应的编程语言为现有的框架开发插件. 因为这种情况经常发生, 他们对公司技术堆栈的熟悉是至关重要的.

跟踪它的一个简单方法是咨询你的团队,并建立一个在你的公司使用的技术的详细清单, 然后把它写进招聘广告里. 如果这份名单被认为是机密的话, 相反,在面试一开始就直接把简历呈现给应聘者. 在比较候选人的时候,这样一份每个候选人都检查过的清单会非常方便——有时候,这份清单会让你的选择很明显,而在比较其他特征时却没有帮助.

当决定的时候 面试策略,以下经验法则适用:

  • 把面试分成几个阶段, 通过对你的项目至关重要的特征尽快过滤掉, 也可以淘汰那些在沟通方面很麻烦的候选人.
  • 当面试, 让各个部门的人都参与进来, 不仅仅是产品团队(软件 开发人员). 让他们制定并提出对他们来说重要的问题,然后收集他们的反馈.
  • 最后,分配一个试验项目.

试验项目 是候选人炫耀的好方法吗. 对一些人来说, 特别是内向的人, 参加面试意味着很大的压力, 所以,你可能无法看到他们的全部潜力,直到他们通过试验项目交付令人惊叹的东西.

最后, 因为DevOps和软件开发有很多共同之处, 我们可以从后者学到很多.

记住软件开发的经验

作为总结,我们想从Robert L .的研究中引用几个重要的结论. 玻璃 软件工程的事实与谬误:

  • 事实22. “80%的软件工作是智力工作. 其中相当一部分是创造性的. 其中很少涉及神职人员.” 正确的DevOps工程师, 就像一个软件开发人员, 是否会创造出许多有价值的解决方案,成为贵公司知识资产的一部分.
  • 事实23. “失控项目的两个最常见原因之一是不稳定的需求.” 这就是为什么你的DevOps候选人与项目团队持续有效沟通的能力与拥有技术技能同等重要的原因.
  • 事实27. “软件问题很少有一个最佳的设计解决方案.” 在这里,同样是关于软件问题,DevOps需要一些直觉和经验知识. 再一次, 当公司的全局任务是建立DevOps基础设施时,雇佣一个有经验的DevOps工程师是至关重要的.

这就是你要做的:制定招聘计划. 关注公司的需求. 倾听团队的反馈. 制作技能和质量对比表. 找出弱点,制定持续的自我学习计划,包括后续跟进. 使用在线服务进行招聘管理. 最后,在DevOps招聘过程中投资,意味着以后会受益:

“简单的选择,艰难的生活.
“艰难的选择,轻松的生活.”
——杰西Gregorek

精选的DevOps出版物

顶尖的DevOps工程师需求量很大.

开始招聘