DevOps快速入门1简介2生命周期

简介

什么是DevOps?

DevOps是开发和IT运营之间的合作,以一种自动化和可重复的方式进行软件生产和部署。DevOps有助于提高组织交付软件应用和服务的速度。DevOps是 "Development"和 "Operations"的缩写。

它使组织能够更好地服务于他们的客户,在市场上更有力地竞争。简单地说,DevOps可以被定义为开发和IT运营的统一,有更好的沟通和协作。

为什么需要DevOps?

  • 在DevOps之前,开发和运营团队的工作是几乎完全孤立的。
  • 测试和部署是在设计完成后进行的孤立的活动。因此,它们消耗的时间比实际的构建周期还要多。
  • 如果不使用DevOps,团队成员会花费大量的时间进行测试、部署和设计,而不是构建项目。
  • 手动部署代码导致生产中的人为错误。
  • 编码和运维团队有独立的时间表,而且不同步,导致进一步的延误。

DevOps与传统IT有何不同

我们假设该应用程序计划在2周内上线,编码完成80%。 我们假设该应用程序是全新发布,购买服务器以运送代码的过程刚刚开始 。

  • 旧流程

    • 在下了新服务器的订单后,开发团队开始进行测试。运营团队在企业中从事大量的文书工作,以部署基础设施。
    • 关于故障转移、冗余、数据中心位置和存储要求的预测是有偏差的,因为没有来自对应用程序有深入了解的开发人员的投入。
    • 运营团队对开发团队的进展一无所知。运营团队根据他们的理解制定监控计划。
    • 在上线之前,负载测试发现应用程序崩溃,发布被推迟。
  • 新流程

    • 在下了新服务器的订单后,开发和运营团队一起工作,处理建立新服务器的文书工作。这样基础设施要求的更好可见性。
    • 由于开发人员的输入,关于故障转移、冗余、灾难恢复、数据中心位置和存储需求的预测是相当准确。
    • 在DevOps中,运营团队完全了解开发者的进展。运营团队与开发人员互动,共同制定一个满足IT和业务需求的监控计划。他们还使用先进的应用性能监控(APM)工具。
    • 在上线之前,负载测试时应用程序变得有点慢。开发团队迅速解决了瓶颈问题,应用程序按时发布。

为什么使用DevOps?

DevOps允许敏捷开发团队实施持续集成和持续交付,这有助于他们更快地将产品推向市场。

其他重要原因有。

  • 可预测性。DevOps提供的新版本的失败率大大降低。

  • 再现性。任何改变都是版本,可以随时恢复早期版本

  • 可维护性。在新版本崩溃或禁用的情况下,很容易回退。

  • 上市时间:DevOps通过简化的软件交付将上市时间缩短50%。尤其适合数字和移动应用。

  • 更高的质量。DevOps帮助团队提供更高质量的应用程序开发,因为它在基础架构方面的合作。

  • 降低风险:DevOps在软件交付生命周期中纳入了安全,它有助于减少整个生命周期的缺陷。

  • 弹性。软件系统的运行状态更加稳定、安全,而且变化是可审计的。

  • 成本效率。DevOps在软件开发过程中降低了成本,提高了效率。

  • 将较大的代码库分解成小块。基于敏捷的编程方法、将较大的代码库分解成较小的、可管理的块。

什么时候采用DevOps?

DevOps适用于大型分布式应用程序,例如电子商务站点或托管在云平台上的应用程序。

什么时候不采用DevOps?

它不应该被用于关键任务的应用,如银行、电力和其他敏感数据网站。这类应用需要对生产环境进行严格的访问控制,制定详细的变更管理政策,以及对数据中心的访问控制政策。也可以采取半自动的方式加入审核。

DevOps工作流程

工作流程提供了输入顺序的可视化概述。它还描述了所执行的动作,以及为操作所产生的输出。

工作流允许分离和安排用户最紧急工作的能力。它还可以在配置工作中反映他们的理想过程。

DevOps与Agile有何不同?DevOps Vs Agile


敏捷解决了客户和开发的裂痕。

DevOps解决了开发和运维的裂痕

敏捷与DevOps的区别

  • 敏捷

    • 强调打破开发人员和管理层之间的障碍。
    • 解决了客户需求和开发团队之间的问题。
    • 注重功能和非功能的就绪。
    • 关于开发方式。
    • 敏捷开发强调培训所有的团队成员,让他们拥有全栈技能。
    • 在 "冲刺 "上进行管理。这意味着时间表要短得多(少于一个月),而且要在这段时间内制作和发布几个功能。
  • DevOps

    • 强调打破开发和运维的障碍。
    • 解决了开发和运营团队之间的问题。
    • 注重运营和业务的就绪。
    • 强调以最可靠和最安全的方式部署软件,而这些方式并不总是最快的。
    • DevOps喜欢分而治之,在开发和运营团队之间传播技能。它还保持一致的沟通。
    • DevOps追求的是综合的最后期限和基准,有重大的发布,而不是更小更频繁的发布。

DevOps原则

此部分参考DevOps职业生涯手册1路径更准确!

以下是采用DevOps时必不可少的六个原则。

  • 以客户为中心。DevOps团队必须不断采取以客户为中心的行动,对产品和服务进行投资。

  • 端到端责任。DevOps团队需要提供性能支持,直到它们成为终结者。这增强了责任水平和工程产品的质量。

  • 持续改进。DevOps文化注重持续改进,以减少浪费,它不断加快改进所提供的产品或服务。

  • 自动化:自动化是DevOps过程的重要原则,这不仅适用于软件开发,也适用于整个基础设施领域。

  • 团队协作。在DevOps文化中,设计者、开发者和测试者已经被定义,他们所需要做的就是作为一个团队完全协作地工作。

  • 监控和测试。

DevOps工程师

  • DevOps工程师是一个IT专业人员,他与软件开发人员、系统操作员和其他生产型IT人员一起工作,管理代码发布。DevOps应该具备硬技能和软技能,与开发、测试和运营团队进行沟通和协作。

  • DevOps方法需要对代码版本进行频繁的增量更改,这意味着频繁的部署和测试方案。 虽然DevOps工程师较少编码,应该具备编程基础。

  • DevOps工程师将与开发一起解决连接代码元素(如库或软件开发工具包)所需的编码和脚本。

DevOps工程师的角色、职责和技能

DevOps工程师是全职工作,他们负责软件应用平台的生产和持续维护。

以下是DevOps工程师预期的要求:

  • 能够在平台和应用领域进行系统故障排除和问题解决。
  • 通过开放的、基于标准的平台有效管理项目
  • 提高项目的可见性,可追溯性
  • 通过合作提高质量,降低开发成本
  • 分析、设计和评估自动化脚本和系统
  • 通过使用最好的云安全解决方案服务,确保系统问题的关键解决

DevOps工程师赚多少钱?

DevOps是最热门的IT职业之一。即使是初级的DevOps工程师的薪酬水平也相当高。在印度,初级DevOps工程师的大约年薪是11,15801卢比(约13689美元)。在美国,初级DevOps工程师的平均工资是每年78,696美元。

DevOps培训认证

DevOps培训认证有助于任何有志于从事DevOps工程师的人。亚马逊网络服务、红帽、微软学院、DevOps研究所都有认证。

让我们逐一考虑它们

  • 认证Hyperledger Fabric开发者

认证Hyperledger Fabric开发者项目允许你建立和维护Fabric编程客户端应用程序。该认证适用于想要执行Fabric应用的端到端生命周期的开发人员。

  • AWS认证DevOps工程师

这个DevOps工程证书测试你如何使用最常见的DevOps模式来开发、部署和维护AWS上的应用程序。它还评估了DevOps方法的核心原则。

这个认证有两个必要条件。认证费用为300美元,时间为170分钟。

  • 红帽认证

红帽公司为DevOps专业人士提供不同级别的认证,具体如下

  • 红帽平台即服务的专业技能证书

  • 红帽容器化应用开发专家证书

  • 红帽Ansible自动化专家证书

  • 红帽配置管理专家证书

  • 红帽容器管理专家证书

  • DevOps研究所

DevOps研究所是围绕新兴DevOps实践的全球学习社区。这个组织正在为基于DevOps能力的资格认证制定质量标准,DevOps研究所目前提供了三种课程和认证。

该公司提供的认证课程有。

  • DevOps基础
  • DevOps基础认证
  • 敏捷服务经理认证
  • 敏捷流程负责人认证
  • DevOps测试工程师
  • 持续交付架构师
  • 敏捷服务领导者
  • 敏捷服务工程师

DevOps自动化工具

将测试过程自动化,并对其进行配置以实现速度和敏捷性是至关重要的。这个过程被称为DevOps自动化。

在维护大型、大规模IT基础设施的大型DevOps团队中,所面临的困难可以简要地分为六个不同的类别。

  • 基础设施自动化

亚马逊网络服务(AWS)和阿里云。不需要实际的数据中心,很容易按需扩展。没有前期的硬件成本,克配置为根据流量自动提供更多的服务器。

  • 配置管理

比如ansible、Chef、Nacos

  • 部署自动化

比如ansible、 buildbot,Jenkins

  • 性能管理

App Dynamic:提供实时性能监控的DevOps工具。这个工具收集的数据有助于开发人员在问题发生时进行调试。

  • 日志管理

Splunk。这个工具解决了聚集、存储和分析所有日志的问题。

  • 监控

Nagios。当基础设施和相关服务出现故障时,通知人们也很重要。Nagios就是这样一个工具,它帮助DevOps团队发现并纠正问题。

DevOps的未来

在DevOps的世界里,有很多变化可能会发生。最突出的一些是。

  • 组织正在将他们的需求转移到数周和数月而不是数年。

  • DevOps工程师比企业中的任何其他人拥有更多的最终用户访问权和控制权。

  • DevOps正在成为IT人员的重要技能。 例如,Linux招聘进行的一项调查发现,25%的受访者认为求职者要具备DevOps的专业知识。

  • DevOps和持续交付将继续存在。 DevOps概念的主流化将需要5到10年。

小结

  • DevOps的定义是两个词的组合,"Development"和"Operations"。
  • 它是一种文化,促进开发和运营团队之间的合作,以一种自动化和可重复的方式更快地将代码部署到生产中。
  • 在DevOps之前,运营和开发团队大多在孤立的情况下工作。手动部署代码导致生产中的人为错误
  • 运营团队完全了解开发者在DevOps过程中的进展。购买和监控规划是准确的。
  • DevOps提供了可维护性、可预测性、更大的质量成本效率和上市时间。
  • 敏捷过程专注于功能和非功能的准备,而DevOps专注于IT基础设施。
  • DevOps生命周期包括开发、测试、集成、部署和监控。
  • DevOps工程师将与开发团队人员合作,解决编码和脚本的需求。
  • DevOps工程师应该具有解决问题的软技能,并且是一个快速学习的人。
  • 亚马逊网络服务、红帽、微软学院、DevOps学院都可以提供DevOps证书
  • DevOps帮助组织将其代码部署周期转移到几周和几个月,而不是几年。

DevOps的生命周期

什么是DevOps生命周期?

DevOps生命周期是一系列的开发阶段,尽可能有效地指导每个人完成产品开发的端到端过程。

  • 持续开发

需要版本控制支持。

  • 持续集成

通过频繁地整合其组件来开发软件。它有助于确保源代码的变化不会破坏构建或导致其他问题。

  • 持续测试

这个DevOps生命周期阶段包含了自动的、预先安排的、持续的代码测试,因为应用程序代码被编写或更新。这种测试可以手动编写,也可以与持续集成工具结合。

  • 持续部署

部署过程是持续进行的。它的执行是为了使代码中的任何变化不影响高流量网站的运作。

  • 持续监控

开发人员收集数据,监控每个功能,并发现错误,如低内存或服务器连接中断。例如,当用户登录时,他们应该访问他们的账户,如果不能这样做,意味着你的应用程序有问题。

  • 持续反馈

持续反馈就像一个进度报告。在这个DevOps阶段,软件会自动发出关于性能和终端用户遇到的问题的信息。这也是一个让客户分享他们的经验和提供反馈的机会。

  • 持续运营

这是DevOps的最后、最短、最直接的阶段。它还涉及到自动化应用程序的发布和所有这些更新,帮助你保持周期短,给开发人员和提供更多的时间来专注于开发。

参考资料

  • 本文涉及的python测试开发库 谢谢点赞!
  • 本文相关海量书籍下载

你可能感兴趣的:(DevOps快速入门1简介2生命周期)