Sysadmin和DevOps Engineer有什么区别?


40

申请工作时,通常可以找到两种类型的相似工作:Sysadmin工程师DevOps工程师

两者都处理服务器配置并确保计算机系统的可靠运行。很难区分两者之间的区别。它们之间的主要区别是什么?




SRE和sysadmin术语不同。
kenorb

2
我建议您为sysadmin定义一个定义,并允许答案将其与DevOps的角色进行比较。我个人认为DevOps甚至都不起作用……所以我对此有话要说。
Evgeny

1
@Evgeny告诉招聘机构。
kenorb

Answers:


54

DevOps主要不是一个角色(因此,它实际上不是真正的角色,而是一个时髦的词)。

DevOps大致是一种组织模式,旨在打破开发人员和系统管理员之间的孤岛。
主要目标是与开发人员和系统管理员(通常与测试人员一起)建立团队,共同负责产品(应用程序)的定义,体系结构决策以及产品运行维护。
团队的每个成员都是产品整个生命周期决策的一部分,开发人员将在生产中执行一些sysadmin任务,并且sysadmin将参与产品的设计阶段,以避免从基础结构角度提出警告例如。

理想情况下,系统管理员还应该是产品开发团队的一部分,在现实世界中,系统管理员代码应更多地围绕产品和监视解决方案进行配置,但能够向团队其他成员表达疑虑,避免了很多误解在部署过程中。


9
这么多... DevOps 不是角色。您以不同的方式“执行”系统管理,这是DevOps文化的“一部分”。
Ken Mugrage

2
我工作过的一些组织(可能比设计更多的是偶然的机会)将其发挥到了极致:我们没有专门的系统管理员,而所有系统管理员的工作都是由“常规”开发人员完成的。(在这个特定的组织中,许多开发人员都是非常有经验的系统管理员,因此我们从来没有觉得需要雇用专门从事此工作的人员。)
Curt J. Sampson

到目前为止,“ DevOps大致是一种组织模式”,这是我阅读的更具启发性的摘要。
Webwoman

也许您可以澄清DevOps!= NoOps
sgargel

20

简洁版本

DevOps结合了组织文化,敏捷/精益的工作方式和软件自动化,当应用于系统管理和运营时,DevOps可使这些功能以与敏捷或精益开发团队相同的敏捷度运行。

长版

DevOps背后的想法来自系统管理,运营和敏捷社区,具体来说,Patrick Debois 在Agile2008上做了题为“敏捷基础架构” 的演讲,他强调了组织内部三种功能的运作方式之间的差异:

  1. 敏捷开发团队 -敏捷团队编写代码。
  2. 系统管理团队 -建立运行该软件的基础结构。
  3. 运营团队 -在Production / Live中支持应用程序和基础架构。

Debois的提议是统一三种协作方式,特别是将系统管理团队和运营团队从瀑布模型转变为敏捷模型。为此,Debois 在比利时根特设置了DevOpsDays 2009时,无意间提出了DevOps这个短语。

DevOps的想法引起了VisibleOps系列书籍的作者的共鸣:Gene Kim,George Spafford和Kevin Behr;他继续编写了Phoenix项目DevOps手册。这两本书都探讨了敏捷和精益如何对系统管理和运营团队产生积极影响。


1
优秀的总结!关于这种哲学和工程风格背后的历史,我至今尚未见过。
杰西·阿德曼

8

作为一名具有运营背景的DevOps工程师,您将已经从手动构建和部署服务器及软件转变为使用BASH,PowerShell,Python等脚本化将软件安装到服务器上的脚本。一段时间之后,您将意识到很酷的脚本编写技术正在并开始探索更复杂的方法来自动化部署

最终,您会选择使用Chef,Puppet,Ansible或其他配置管理工具来帮助管理系统群的状态。随着您对应用程序部署和系统管理自动化的技能以及您的工具的日趋成熟,您最近进入了“ 基础架构即代码 ” 领域,并不仅使用它来自动化软件部署,而且还可以自动化所需的基础架构和环境。在企业转移到云期间驱动软件。

现在您正在用煤气做饭。随着时间的流逝,您已经了解到使用以开发人员为中心的工具(例如源代码管理)来管理构成您的部署和管理工具库的模块,配方和模板的好处。

当您转入DevOps团队时,您会接触到软件开发生命周期和持续集成的概念。伙计,那些开发人员正在迅速发布更改,并且为了跟上您的发展,您发现自己与开发人员更加紧密地合作!您经历了开发团队在所有时间进行更改的紧迫性,这违背了旧的操作范式“ 如果它不会破裂,请不要修复它 ”。您再也不必吹嘘系统的正常运行时间了,您可以使用一次性基础结构。

您注意到,迁移到DevOps不仅仅是与开发人员合作,或者使用新工具技术,但团队中存在着明显的文化转变,这种转变已经渗透到整个组织中。您正在处理与一个紧密的团队共同的责任共同的工具共同的目标

您掌握了自动部署的技能,并将其按摩到由“ 连续集成服务器 ”(如JenkinsBambooCode Pipeline)精心策划的“ CICD ”管道中。现在,当开发人员推送新代码时,您的脚本,工具和模板会按需建立新的环境,触发测试框架以执行其任务,并在发行版上的绿色指示灯亮起后关闭试生产环境,从而遵循“ 持续交付 ”的想法。

随着新代码进入CICD阶段,您,开发人员和企业将获得信心,认为更新发布到生产环境时不会中断。在团队进行“ 连续部署 ” 之前,还有一段路要走,您仍然需要确定自动化蓝/绿部署功能的最佳点,而决定主要取决于业务。目前,您对凌晨3点的呼叫数量减少以及sev-1和sev-2的减少感到满意。

即使您确实获得了sev-1,也不会再让经理们喘不过气来通宵达旦了-您可以轻松地通过CICD管道发布以前的版本,并在短时间内使系统重新联机。该业务部门注意到,尽管变化速度很快,但IT系统的稳定性却得到了提高。

您惊叹于管理业务中驱动软件所需的资源的方式,尤其是当您回想它的过去以及在数据中心的轨道上留下的鲜血...


5

Sysadmin与DevOps(个人视图)

一些公司谈论开发,运营和测试。如果需要测试某些东西,他们会说:“测试应该这样做”。如果需要开发某些东西,Dev会这样做,如果需要部署软件,Ops会这样做。

在我看来,我在几家公司中所经历的是,这导致了“扔在墙上”的思维定势,导致人员与团队之间的摩擦。就个人而言,有时我会觉得人们是独立工作的,并说这是我所做的,除了团队合作,我无事可做。

根据我的说法,DevOps意味着团队中的每个人都负责并忙于开发,测试和运营。一个团队中没有我,没有独立的部门。每个人都应该释放。当然有专业,但是我认为每个人在每个领域都应该能够完成至少25%的工作。例如,如果某人过去是开发人员,则应该能够更改一些配置管理代码,例如厨师和部署软件。

参考文献

系统管理员

根据维基百科

系统管理员或sysadmin是负责计算机系统的维护,配置和可靠操作的人员;特别是多用户计算机,例如服务器。

系统管理员试图确保他或她管理的计算机的正常运行时间,性能,资源和安全性能够满足用户的需求,而又不会超出预算。

为了满足这些需求,系统管理员可以获取,安装或升级计算机组件和软件。提供例行自动化;维持安全政策;故障排除 培训或监督员工;或为项目提供技术支持。

开发运维

根据维基百科

DevOps(“开发”和“运营”的复合部分)是一个软件开发和交付过程,强调产品管理,软件开发和运营专业人员之间的沟通和协作。它通过建立一种文化和环境来自动化和监视软件集成,测试,部署和基础结构更改的过程,从而在自动,频繁和更可靠地进行构建,测试和发布软件的过程中,为实现这一目标提供支持。

开发运维

在此处输入图片说明

DevOps工具链

在此处输入图片说明


1
只有一个小小的评论:恕我直言,只要团队整体上对开发/运营/测试领域的各个方面都有很好的覆盖,并拥有良好的沟通,团队中的每个人也都必须涵盖每个这样的领域。当然,如果发生这种情况是一件好事,但在某些情况下要求它可能会不必要地变得昂贵。
Dan Cornilescu

2

系统管理员负责维护和配置服务器,他们的职责是确保用户拥有所需的性能,正常运行时间和安全性。定义DevOps工程师的角色要困难一些,因为没有正式的职业道路,并且DevOps本身可以有多种形式。

例如,DevOps工程师可以是对网络和部署操作感兴趣的开发人员,也可以是对编码和脚本编写充满热情的系统管理员。从系统管理员过渡到DevOps工程师并不是很困难,实际上,本文在描述该过程方面做得很好。

许多人甚至认为从系统管理员到DevOps工程师的这种转变至关重要,因为将来系统管理员的职位将变得过时。即使有许多需要维护的旧式服务器,并且系统管理员拥有很多“部落知识”,但在将来,sysadmin的职位将越来越稀缺。


-1

将会有您听不到的在数据中心运行的服务器。一切都将成为软件。存储,网络,系统,安全性,数据中心;SDN,防火墙,NFV,存储,服务器等。没有软件开发背景,SDLC经验(我什至不意味着脚本Perl,Powershell等)的Sysadmin可能会消失。分布式,可扩展和虚拟化的环境(主要是云)是水平而非垂直增长的。


我敢说Sysadmins垂直增长,DevOps(或OpsDev)水平增长。您可以看到微服务如何从整体演变的相同模式。我宁愿从软件团队中选择DevOps工程师,而不是从运营/系统团队中选择。

因为运营/系统团队只是运行软件团队的构建。

  • Sysadmin不会像软件工程师构建/编译应用程序那样构建/编译Linux / FreeBSD / windows内核等。
  • 系统管理员不会经历软件开发生命周期(SDLC)。
  • 系统管理员不属于生产流程(CI / CD流程)的一部分。
  • CI /连续交付/部署结束后,Sysadmin开始工作。

    而且,如果您中断并分配“部署/交付”,则可能是一条中断的管道
    ,软件团队是创建者系统/运营团队,而跑者/看守者则是大多数。

听起来好像没有要管理的服务器/系统,也不需要sysadmin。

无服务器计算是一种云计算执行模型,其中云提供者充当服务器,动态管理机器资源的分配。定价基于应用程序消耗的实际资源量,而不是基于容量的预先购买的 无服务器计算

软件团队的某人已经知道如何构建,维护甚至编码(SRE与DevOps / OpsDev)。


我想知道为什么它被称为DevOps而不是OpsDev?这与两者之间的方向有关吗?

*无处可去,我没有开始写有关软件定义存储的文章,这是对现在已删除的有关它的评论的反应*

关于软件定义的存储

  • 软件定义的存储(SDS)是计算机数据存储软件的市场术语,用于基于策略的数据存储独立于底层硬件的配置和管理。 软件定义的存储

  • EMC宣布了其首个开源产品:Project CoprHD。CoprHD是软件定义的存储自动化和管理控制器,EMC最近决定开源,这是我们进入增长和极端变化领域为全球业务创造更大价值的战略的关键。 作为存储和信息管理的全球领导者,EMC应该引领软件定义存储(SDS)领域的发展

  • CoprHD是一个开源软件定义的存储控制器和API平台。它为块,对象和文件存储提供商CoprHD启用基于策略的管理和存储资源的云自动化


1
不要在回答中重新添加名字,要与问题保持一致,再次建议您阅读“ 如何回答”以获取指导。
Tensibai '18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.