什么是 DevOps

寻找一种快速完成应用程序开发,提高应用程序交付速度的方式已经成为现在很多企业的重中之重,随着敏捷开发的不断发展,现在出现了DevOps,那么什么是DevOps呢?下面一起来了解一下相关的知识吧!
  什么是 DevOps
  目前对 DevOps 有太多的说法和定义,不过它们都有一个共同的思想:解决开发者与运维者之间曾经不可逾越的鸿沟,增强开发者与运维者之间的沟通和交流。
  DevOps 是通过自动化的基本设施、自动化的工作流程和持续可测量的应用性能,来整合开 发团队和运维团队,以达到更高的合作效率和生产率。
  然而笔者认为 DevOps 不仅仅局限在开发者和运维之间,更是一种文化的改变和鼓励沟通、 交流、合作的行动,目的在于更加快速稳定地构建高质量的应用系统,这恰好体现了精益管理 的原则。我们也可以把 DevOps 看作一种能力。
  如何获得这种能力呢?
  关键有两点:
  一是全局观,要从软件交付的全局出发, 加强各角色之间的合作;
  二是自动化,人机交互就意味着手工操作,应选择那些支持脚本化、无须人机交互界面的强大管理工具,比如各种受版本控制的脚本,以及类似于 Zabbix 这样的基础设施监控工具和类似于 SaltStack、 Ansible 这样的基础设施配置管理工具等。
  DevOps 可以用一个公式表达:
  文化观念的改变 + 自动化工具 = 不断适应快速变化的市场
  其核心价值在于以下两点:
  1.更快速的交付,响应市场的变化;
  2.更多地关注业务的改进与提升;
  精益管理的7个原则:
  消除浪费;
  增强学习;
  延迟决策;
  快速交付;
  团队授权;
  内置完整性(完整性是为了让客户对产品的体验具备平滑性和一致性);
  考虑全局;
  DevOps的开发流程:
  提交
  工程师将程序在本地测试后,提交到版本控制系统如Git等;
  编译
  持续整合系统(如 Jenkins CI),在检测到版本更新时,便自动从 Git 仓库里拉取 最新的程序,进行编译、构建。
  单元测试
  Jenkins 完成编译构建后,会自动执行指定的单元测试代码。
  部署到测试环境中
  在完成单元测试后, Jenkins 可将程序部署到与生产环境相近的测试环境中进行测试。
  预生产测试
  在预生产测试环境里,可以进行一些最后的自动化测试,例如 Selenium 测试及与实际情况类似的测试,可由开发人员或客户手动进行。
  部署到生产环境
  通过所有测试后,便可将最新的版本部署到实际生产环境里。
  敏捷开发 2.0 解决的问题
  敏捷开发 2.0 是相对于敏捷开发而言的,敏捷开发意味着让我们全面拥抱需求的变化, 但 是对于瞬息万变的市场反馈还远远不足以应对,因此为了更加快速地发现问题和得到市场的快 速反馈,引入了持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD), 来更加高效地进行敏捷开发,即敏捷开发 2.0。现在的无代码开发平台、低代码开发平台、零代码开发平台也是敏捷开发的产物,都是为了帮助企业提高应用程序的开发效率。
  持续集成
  是一种软件开发实践,要求团队成员经常集成其工作,每个人至少每天集成 一次会导致每天有多个集成。 集成是通过自动化的构建进行验证的,这些构建运行回 归测试,以尽快检测集成中的错误。团队慢慢会发现,这种方法有利于集成问题的大 幅减少,更快地实现有凝聚力的软件开发方式。
  持续交付
  是在持续集成的基础上,将集成后的代码部署到更贴近真实的运行环境的预 生产环境中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环 境中进行测试。如果代码没有任何问题,则可以继续部署到生产环境中 。
  持续部署
  是持续交付的更高级阶段,即所有通过了自动化测试的改动都自动地部署到生产环境中。大多数公司如果没有受制度的约束或其他条件的影响,则都应该以持续部署为目标。 在很多业务场景里, 一种业务需要等待其他功能完成了才能上线, 这使得持续部署不可能实现。虽然可以使用功能转换解决很多这样的问题,但并不是每次都会这样。 所以,持续部署是否适合某个公司是基于该公司的业务需求的,而不是技术限制。
  总结
  DevOps 不能只关注开发及运维,还应该关注产品、开发、测试、运维, 甚至对客户的需求 也要有了解。而敏捷开发 2.0 要求将大而全的项目拆分成小的相对独立的服务, 从一开始就不 仅仅只关注自动化部署,还要关注整个项目是否具备自动化的、可快速扩展的、完善的容错机 制,以及零岩机和便捷的监控管理。为了实现敏捷开发 2.0, 我们需要采用持续部署、 微服务和 容器这三种技术方案。
  持续部署:能够持续自动反馈应用程序的提交状态,减少错误等; 同时为产品的交付提 供了质量保证,能快速投入市场。
  微服务:使技术选型、构架系统更自由:开发更快速、周期更短: 服务更容易扩展。
  容器: 使部署成百上千的微服务更加容易,系统更加稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值