平面部落美文网

您现在的位置是: 首页 > 作文大全

xxx免费中国的,DevOps工程师的基本技能列表

2020-10-18 15:47:32平面部落美文网
在公司成立之前,我们的团队已经开始应用DevOps实践,而我个人,早在十年前,当我是另一家公司的系统管理员时,我就第一次接触到这种新鲜的思维方式。时间。当时还没有像DevOps这样的标准,但是当时的从业人员也弄清楚了一些相关的概念和原理。持续集成;自动交付;

  在公司成立之前,我们的团队已经开始应用DevOps实践,而我个人,早在十年前,当我是另一家公司的系统管理员时,我就第一次接触到这种新鲜的思维方式。 时间。当时还没有像DevOps这样的标准,但是当时的从业人员也弄清楚了一些相关的概念和原理。

  持续集成; 自动交付; 每个团队成员应对产品负责; 与客户直接沟通; 收集和分析业务/应用程序指标; 文档等;

  事实证明,以上所有内容都是Agile计划中各种实践的逻辑扩展,催生了这些方法的温床是开发人员不再简单地为本地主机编写代码的基本前提。

  

  Atlassian提出的DevOps原理

  Atlassian提出的DevOps模型在今天仍然非常重要。从本质上讲,它代表了产品开发和交付的现代化周期,还涵盖了产品推出后的运营过程。

  DevOps之前的时代:管理员与开发人员之间的鸿沟

  长期以来,产品的操作和开发工作已相互分离。这种差距的一端是努力工作且简单的开发人员,而另一端是系统管理员,就像在开发人员的眼中步履蹒跚。系统管理员不参与开发,也不与开发团队进行沟通。 他们通常只是直接获取代码包,然后尝试在特定位置运行它。每次跑步尝试都是痛苦的。 管理员需要花费几天的时间来缓慢地查看日志,查找各种难以理解的错误,分析数据库查询以及进入无尽的跟踪过程。许多次事实证明,只需定义新的环境变量或添加新的参数即可解决问题。但是不幸的是,开发人员从来没有,也没有机会通知管理员,后者唯一知道的是产品的名称和使用的语言。

  

  “ DevOps”工作十年前

  十年前,我刚开始担任团队管理员。 该公司有灵活的心态。 我没有像“ IT Madman”的情节那样被放置在地下室的黑暗小房间中,而是由开发人员拥有的。在他自己的桌子上。从那一刻起,我就以DevOps工程师的身份踏上了自己的旅程。

  在公司的工作中,我很快意识到,尽管知识和技能很重要,但是从沟通和运营的角度检查和影响产品的能力值得更多关注。我有权提出异议,表达我的担忧,并在最终交付还有很长的时间时立即将我的观点传达给开发人员,或提醒他们调整写作方法。这些是真正的管理员,不应该在地下室“坐牢”!

  事实迅速证明,对产品的设计,开发和操作进行全面审查确实可以带来巨大的好处。只有当每个人都对产品负责并且清楚地知道产品将在其中运行的生产环境时,开发过程才能真正与生产过程集成在一起。人们现在已经习惯了所有这些想法,无非是当时的开发人员和管理人员真正携手共进时的一种文化冲击,世界上没有什么困难!所有这些都无法通过传统的过程来实现,而传统的过程却被沟通差距严重地分割了。

  但是,如果DevOps只是一个敏捷的开发过程,并且将开发阶段的概念引入其中,那么DevOps工程师会做什么?DevOps世界的核心职责是什么?这带来了另一个重要问题:谁应该是DevOps团队的理想领导者?

  团队负责人的角色可以由中级专业人员来担任,对职位或背景没有特殊要求(可以是开发人员,管理员甚至质量保证人员)。DevOps的主要目的是填补产品持续集成,交付和运营周期中的空白。

  从个人主观角度来看,我认为DevOps领导者最好具有管理员背景(而不是选择所谓的“技术骨干”)。基于此,他/她可以将与基础架构有关的因素与数据库升级,配置管理或所有其他分散注意力或烦人的开发人员分开。在这里,我想提出另一种观点,即管理员更适合DevOps领导:随着产品的发展和成熟,DevOps团队也将扩大,因此投资所需的时间和精力将同时增加。如果您指定一名开发人员来领导您的DevOps团队,那么他们将很难专注于开发工作。最后一个原因:管理员可以更轻松地开始使用DevOps工作,因此他们可以更快地开始使用。

  DevOps工程师应该知道什么?

  DevOps工程师应该了解什么,他们应该怎么做?本文汇总了DevOps工程师的技能列表。 当然,清单可能并不完整,仅涵盖工程师应具备的一些核心技能。

  敏捷开发原则

  这也是现代开发世界(尤其是在远程协作开发方案中)最重要的技能之一。这不仅包括区分看板和Scrum之间的差异,还要求我们能够与团队进行顺畅的沟通,了解客户价值,跟踪时间进度以及组织易于理解的工作日志,独立报告和清晰的文档。

  自动化+万事俱备

  每个人都应尽快摆脱手动操作的麻烦。今天,几乎所有日常任务都与自动化工具相对应。如果找不到现成的工具,则还可以使用Python和bash自己编写。例如,如果您需要创建虚拟机映像,请使用Packer。如果您需要配置10个以上的主机,请使用Ansible。如果您在Google Cloud Platform中创建Kubernertes集群,或者需要在Amazon上使用CDN,请使用Terraform简化该过程。简而言之,从通过网络加载新的裸机服务器到在现有集群中部署新容器的一切工作都应该自动化。此外,您编写的代码应具有可复制性和幂等性。 提交的内容必须由跟踪程序进行审查,并严格遵守上述要求。

  云和混合架构

  当前,我们发现大多数公司将不仅使用一个云服务提供商(以避免供应商锁定问题)。是的,云解决方案不应简单粗鲁地处理所有事情。 我们可以在AWS,Heroku和其他IaaS,PaaS和SaaS上运行服务的不同部分。请努力寻找最理想的解决方案,并确保可以在一定时间内完成不同平台之间的服务迁移。另外,不要忘记前面提到的自动化原理。 自动化程度越高,迁移难度就越低。

  可扩展性和高可用性要求

  最重要的是要认识到企业在一定时间内可以承受什么样的停机时间和数据丢失。明确这一点后,您将发现假设24小时的资源停机将毫无意义。此外,即使资源关闭了一个小时,其损失也可能高于使用整年的完整热备份服务的成本。借助云服务和容器化技术,扩展系统规模变得更加容易。但是,基础结构和服务本身也需要为此灵活的可伸缩性做好准备(这里再次是对本地对象存储的触发,这简直是麻烦的最终根源)。

  监控和警报

  为了及时进行检查,预测和响应,我们当然有必要收集系统,应用程序和业务中所有可用的指标。这些指标就像团队的眼睛一样,无法通过单个监视解决方案完全实现。每个云服务或平台都提供了自己的一组可用指示器和警报,但是您还需要结合需要使用Librato或Datadog等外部系统,或者在Prometheus上构建自定义监视服务。简而言之,所有选择均应基于合理的预算,时间和任务要求。

  安全

  安全保证确实不是DevOps工程师的核心职责。但是,每个人都必须掌握相关的安全基础知识。SSL已部署在端点上。 该政策中没有*。 没有公共或可写的存储桶和分区需要加密。 注意部署封闭的防火墙,安全组和多因素身份验证。此外,DevOps还应与安全部门合作,以在自动化流程的同时将新的安全策略快速应用于服务。

  DevOps工程师的角色

  无需DevOps工程师,太阳照常升起。

  如果整个业务系统都已配置并且可以正常工作,那么您还需要DevOps专家做什么?没错,许多开发人员已经建立了一个完整的环境,其中包括运行良好的数据库,甚至是自动伸缩组。当然,在更现实的情况下,他们应该已经在Heroku上启动了相关的应用程序并添加了必要的插件。 警报和监视指标已轻松实现,似乎一切都错过了。

  在这种情况下,仍然需要解决以下问题。

  通常,所有操作只能手动完成。 如果您的云服务提供商有问题,您将无法复制或部分还原架构。由于缺乏对资源消耗的有效控制,因此该解决方案的运营成本很高。配置完成后,许多服务可能根本无法工作,但是您仍然需要为此付费。一般来说,快速发布是开发过程的重中之重,但与此同时,对于成本调整空间,缺少必要的优惠选择和替代方案。此外,这些解决方案中的大多数都无法充分发挥预留实例的成本优势。部署过程并不完美。由于缺乏统一的测试方法,集成测试通常只是空谈。大多数正在运行的测试只能由开发人员在本地执行。一些奇怪的错误仅出现在生产环境中,但不能在本地复制。这将影响客户对IT部门的信任,最终IT部门和项目负责人将成为竞争对手。性能问题经常发生,但原因始终不清楚。单点故障无处不在,解决和修复需要很多时间,甚至会进一步减慢已经非常缓慢的开发过程。您需要将服务迁移到另一个平台,并为架构级别的业务快速增长做准备。监视警报来不及采取行动。开发团队可能是最后一个意识到有些问题的小组。在最极端的情况下,甚至用户和客户都已经愤怒了,但是开发团队仍然处于黑暗之中。

  此列表当然是不完整的。 我们可以添加更多的问题,其中一些可以通过及时的沟通来解决,而另一些则需要通过交付和开发流程进行优化。但是要完成这些优化,您必须探索与特定平台有关的纯技术技能或知识,因此本文暂时将不进行讨论。

  原始链接:

  https://博客。maddevs。io / devops-engineers-in-mad-devs-449ded5221b6

  进一步阅读:

  DevOps分离和集成-InfoQ

  21个必不可少的``DevOps''-InfoQ领域

  跟着我转发本文,给我发私人短信“接收信息”,你可以免费获得价值4999元的InfoQ迷你书,点击文章末尾的“了解更多”,可以转到InfoQ官方网站 获取最新信息?

-