合作为世界带来了一些伟大的发明。

七十年代后期,本·科恩(Ben Cohen)和杰里·格林菲尔德(Jerry Greenfield)聚在一起给了我们一份礼物,这份礼物将继续奉献-本和杰里的冰淇淋。他们共同努力,将冰淇淋品种的门槛提高到很高,以至于有些人仍在努力追赶。

您可能想知道这与DevOps有什么关系。好吧,您可以说DevOps文化从Ben&Jerry的书中摘了一页(象征性地),并决定促进开发团队与运营团队之间的协作-以简化生产并减少浪费。

我们喜欢古老的分工概念,但这就是问题所在–有时分工会妨碍生产力。它可能会造成延迟,让步于红色攻势,并起到抑制创造力的作用。

另一方面,协作可以将人们召集在一起并加快产品发布周期。更不用说,开发团队和运营团队之间的合作可以改善最终用户的整体体验。有什么可不必爱的呢?

实际上,DevOps文化非常致力于协作,以至于“ DevOps”一词是“发展”和“运营”两个词的融合。我的意思是,正如杰克·斯派洛(Jack Sparrow)所说的那样*-尽管所有IT人士都是聪明的木s,但在命名事物时,他们并不是想象中的东西!*

尽管如此,DevOps一词仍然具有一定的吸引力,并且这种趋势不会很快消失。但是在我们深入研究可以帮助您加入DevOps工程师领域的内容之前,让我们看一下DevOps的文化实际上意味着什么。

什么是DevOps?

Tripwire Inc.的联合创始人吉恩·金(Gene Kim)表示:“目前,DevOps更像是一场哲学运动,尚未准确地描述或描述实践。”

在IT领域似乎有很多事情发生!从努力定义计算机科学到试图确定什么是硬错误和软错误,您都无法在计算机科学中精确定义许多事情。

幸运的是,这并没有阻止人们尝试。以下是Azure对DevOps的要求:

开发(Dev)和运营(Ops)的组合,DevOps是人员,流程和技术的结合,以不断为客户提供价值。

DevOps对团队意味着什么?DevOps使以前孤立的角色(开发,IT运营,质量工程和安全性)能够协调和协作以生产更好,更可靠的产品。通过采用DevOps文化以及DevOps的实践和工具,团队可以更好地响应客户需求,增强对所构建应用程序的信心,并更快地实现业务目标。

作为一种理念,DevOps致力于创建一个协作环境,使软件可以变得更加以用户为中心。这不仅是要加快开发生命周期,还在于提高软件的整体质量。这可能就是为什么最好将DevOps描述为一种心态,而不是仅仅一个快速跟踪开发的工具。

DevOps如何工作?

您还记得丹泽尔·华盛顿(Denzel Washington)如何使他的攻守团队成员在电影《记得泰坦》中一起工作吗?将DevOps视为IT工程界的Denzel。

从设计流程一直到生产发布和支持,DevOps致力于将运营和开发工程师的专业知识相结合。

在某些DevOps模型下,开发和运营团队的合并还包括质量保证和安全团队的紧密集成。这种高度集成的结果是消除了孤立活动(例如测试和部署)所产生的许多错误。

DevOps团队使用实践来自动化流程和工具,以帮助更快,更可靠地操作和发展应用程序。多亏了DevOps,团队的整体生产力和速度才达到极限。这带来了更大的收益途径,超越了公司的利润范围。

DevOps的好处

像所有事物一样,DevOps一直受到批评。例如,批评家经常将DevOps称为“锋利”工具,它既可以使复杂化又可以使其简单化。

我将通过列出它提供的一些好处,让您判断DevOps作为一种方法到底有多有价值。

速度

速度绝对是DevOps必须垂涎的优势之一。在功能方面,它使企业可以将踏板推到金属上。

更快的软件发布意味着企业可以利用产品功能的价值。每个人都知道,产品测试(必要时如此)也非常耗时。借助DevOps,公司可以通过自动集成和测试来加快交付和修改的过程。

不仅如此,还有整个开发人员团队可以密切关注产品的整个生命周期。这种持续的监视减少了团队通常花费在查找和修复错误和错误上的时间。

可靠性

竞争激烈的市场的好处是,质量最终将胜过数量。这就是为什么软件质量值得称赞的原因。

质量和可靠性是DevOps可以带来的两件事。DevOps有助于简化业务执行软件测试的方式-DevOps不是将测试作为SDLC的一部分,而是将其提升为整个SDLC中至关重要的,至关重要的组件。

另一方面,可靠性使系统能够在其环境限制内连续运行,从而提升了企业无缝运营所需的服务的整体连接性。

改善协作

问题是,这并不是说人们没有意识到,在DevOps文化兴起之前,巩固开发,运营和质量保证团队会为业务带来更多价值。

但是,即使到那时,以前的软件方法也没有在一个主要要素上丢失-协作。DevOps所做的就是将部门之间的协作带到了最前沿,并改变了这些部门之间的交互方式。

众所周知,DevOps是对敏捷和精益软件方法论的一种改进,因此DevOps也自然会突出显示操作也就不足为奇了。在DevOps环境中,团队并不存在于各自独立的平原上,部门特定的目标无法实现。

在DevOps模式下进行协作的最大好处是,重点从团队效率转换为综合整体绩效-因为最终产品的责任制是所有人共同承担的。此外,开发,运营和质量保证团队之间不断增强的互动在技术升级方面具有另一个不可估量的优势。

想想看,当不同部门的成员定期合作时,他们会共享想法和专业知识。在某种程度上,他们在与专业无关的所有方面都接受了交叉培训。这就像吃蛋糕并吃东西一样,正如您所知,这就是吃蛋糕的全部重点!

安全

对于IT来说,安全性是一件大事。如果您要处理受损的数据保护,那么您的产品线是否以翘曲的速度运行都没关系。

但这是一些好消息。除DevOps可以为公司提供的所有其他优势外,它还可以帮助增强安全性。它通过将安全性作为独立元素添加到开发和运营的组件中,然后将其自身转换为DevSecOps来实现。

在DevSecOps的领导下,安全责任不只属于一个团队,而是每个人都要对安全与防御负责。DevSecOps不仅有助于降低成本,而且还可以帮助您及早发现并解决安全问题。

为什么DevOps很重要?

问DevOps为什么重要,就像问为什么更多总是更多。这就是方程式发挥作用的方式。但是,如果我列出DevOps优势的所有努力都没有使您信服,那么我只需要再试一次即可。

毫无疑问,世界已经改变。软件和互联网几乎以您可以想象的所有方式改变了我们的生活。软件不再是补充组件,而是每个业务的组成部分。

公司使用软件通过应用程序和服务来吸引客户,并简化其开展业务的方式-无论是物流,运营还是通信。就软件而言,实现的可能性是无限的。

在一切都变得计算机化的时代,软件是所有创新的关键。而且,DevOps是优秀软件和优秀软件之间的区别!

DevOps实践

现在,我们已经了解了DevOps的含义以及它的一些相关好处,让我们讨论一些DevOps的实践。对DevOps方法学的透彻理解将有助于清除您可能遇到的任何挥之不去的查询。更不用说它将增加您的知识并在面试中派上用场(我们将在以后进行讨论)。

持续集成

团队孤立地工作所导致的最大问题之一是在工作完成后合并代码。这不仅具有挑战性,而且很耗时。这就是持续集成(CI)可以帮助您节省大量时间的地方。

开发人员通常使用具有持续集成功能的共享存储库(使用版本控制系统,如Git。)。持续集成服务同时针对代码更改构建和运行测试的事实使识别和处理错误变得更加容易。从长远来看,持续集成可以帮助提高开发人员的生产率,更快地解决错误和错误,并且可以帮助加快更新速度。

持续交付

进化只用一种工具就可以在这个星球上铸就整个有情生活:错误。

—西部世界

罗伯特·福特(Robert Ford)可能在《西部世界》中犯了一些重大错误,但是这个人确实有一些出色的表现。他对进化论提出了重要观点。

谈到进化,许多人认为持续交付(CD)是CI的下一步发展,因为它推动了生命周期自动化的进一步发展。

CD仅涉及编译,测试和暂存环境。开发生命周期的这一阶段通过在构建阶段之后将代码更改扩展到测试环境(或生产环境)来扩展CI。

如果使用得当,CD可以通过在生产阶段对多个维度进行全面测试来帮助开发人员微调更新。持续交付允许开发人员运行测试,例如UI测试,集成测试和负载测试等。

微服务

微服务是软件设计,生产线是制造。或者,更确切地说,微服务是一种软件设计体系结构,它对整体系统产生了影响。

微服务允许将应用程序完全构建在一个大代码存储库中。每个应用程序都包含多个微服务,并且每个服务都经过调整以在一个特定功能上表现出色。

例如,让我们看一下亚马逊是如何决定转向微服务的。曾几何时,当亚马逊不是今天的庞然大物时,他们的API为他们提供了很好的服务。但是随着它们的普及,对更好的应用程序接口的需求也越来越大。

亚马逊决定涉足微服务。现在,亚马逊不再有问题的两层体系结构,而是提供多种服务-一种用于处理订单,一种用于生成推荐购买清单的服务,一种支付服务等。所有这些服务实际上都是具有单一业务功能的微型应用程序。

基础架构即代码

由于技术创新,服务器和关键基础架构不再像十年前那样发挥作用。现在,您拥有像Google这样的云提供商,它们可以在巨大的数据仓库中为成千上万的客户管理业务基础架构。

毫不奇怪,今天的工程师管理基础架构的方式与以前的方式截然不同。而且,基础设施即代码(IaC)是DevOps环境可用于处理规模变化的实践之一。

在IaC下,使用软件开发技术和代码(例如版本控制等)来管理基础结构。借助云的API驱动模型,开发人员可以通过编程方式与基础架构进行交互。这使工程师能够以处理应用程序代码的方式来处理基础结构。

这很重要,因为它允许您以与测试代码相同的方式测试基础结构。有了IaC,您的系统管理员就不必担心Web服务器无法连接到数据库等问题。

更重要的是,如果他们有一个DevOps团队正在开发推动自动化的基础架构,那么IaC可以帮助企业自动配置和塑造抽象层,从而使开发人员可以继续构建服务而无需了解特定的硬件,GPU,固件等。前锋。

想象一下:梅赛德斯·奔驰,宝马和奥迪等大型汽车制造商都希望获得最新的车内体验技术,对吗?但是,如果这些公司希望提供新的服务和产品,那么他们将为每个人拥有不同硬件的事实而苦恼。

除非有美好的一天,即决定拥有通用硬件的能力,否则边缘盒设备在开发时将继续充当障碍。但是,强大的DevOps团队可以在这里提供帮助,因为他们可以自动设置抽象层以自动化基础结构服务。通过解决云中的极端情况挑战,DevOps团队可以通过降低成本来帮助自动制造商,并减轻开发人员的负担和压力。

配置管理

配置管理(CM)在DevOps模型中很重要,可以鼓励持续集成。无论您是托管在云中还是本地管理我们的系统都没有关系,正确实施配置可以确保准确性,可追溯性和一致性。

当系统管理员使用代码使操作系统自动化时,这将导致配置更改的标准化。这种规律性使开发人员免于浪费时间手动配置系统或系统应用程序。

政策即代码

受益于云编码基础设施和配置的组织还具有额外的优势,即可以大规模监视和实施法规遵从性。

这种自动化类型使组织可以有效地监督资源的更改,并且可以以分布式方式实施安全措施。

监控和记录

监视指标可以帮助企业了解应用程序和基础架构性能对最终用户体验的影响。对数据和日志进行分析和分类可以带来有关问题的根本原因的宝贵见解。

这样看待—如果要以24/7全天候提供服务,那么就更新频率而言,主动监视就变得尤为重要。

如果您正忙于代码发布,那么您将无法检查所有盲点。为什么?因为并非每个问题都在用户界面中弹出。有些错误的工作方式类似于Ethan Hunt,以打开安全漏洞,而其他漏洞则降低了性能,然后还有浪费型的漏洞浪费了资源。

另一方面,容器和实例的生成会使日志管理感觉就像在一大堆针头中找到一根针头一样令人不快。要遍历的原始数据量巨大,可能很难找到有意义的信息。

但是,如果您具有监视系统,则可以依靠指标来警告团队有关跨云服务或应用程序抬头的任何类型的异常情况。

此外,监视指标可以帮助企业了解应用程序和基础架构性能对最终用户体验的影响。

日志记录可以帮助DevOps团队创建用户友好的产品或服务,或者推动持续的集成/交付。一起使用-监视和日志记录不仅可以帮助企业更接近其客户,而且还可以帮助企业了解其自身的能力和规模。

例如,全年几乎所有企业都从AWS,Azure甚至Google Cloud等云提供商租用了一定数量的云空间。但是,如果公司不了解其容量可能会由于旺季或假期而波动的事实,或者如果其团队不准备通过创建置备层来应对起伏不定的情况,那么情况可能会变得很丑陋,例如网站崩溃。

沟通与协作

DevOps的基本文化方面之一是沟通与协作。(软件交付过程的)DevOps工具和自动化专注于通过结合开发和运营的过程和效率来创建协作。

在DevOps环境中,所有团队都参与制定与信息共享有关的文化规范,并通过项目跟踪系统,聊天应用程序等促进交流。这样可以加快开发人员之间的沟通,并有助于将组织的各个部门聚集在一起,以实现既定目标和项目。

refer