目录

技巧1:让Devops适应你的文化

技巧2:对速度的需求

技巧3:可用性

技巧4:收集和使用DevOps指标

技巧5:关注有意义的测试

总结


成功地发布和部署软件系统,对于组织是一项重要任务,实现它就需要有坚定的DevOps战略。

长期以来,软件系统可靠地发布和部署一直是困难且耗时的过程。随着软件行业慢慢转向更快的发布节奏,部署和发布也变得越来越有价值,尤其是对于托管的软件。

DevOps就是通过自动化来满足软件发布不断加速的节奏,因此不可避免地要面对挑战。本文将带你一起探讨如何应对挑战,实现DevOps的成功。

技巧1:让Devops适应你的文化

“ Devops致力于寻找方法来适应和改革社会结构,文化和技术,以便更有效地开展工作。”

―Jennifer Davis和Ryn Daniels合著的《Effective Devops》

DevOps并不是一个规定好的实践清单,而是一种旨在将软件开发的某些方面与运维工作结合起来以最大化交付产品或服务的价值的哲学。这并不意味着运维人员将编写代码,也不意味着软件工程师将运维系统。但是,这确实意味着要实现高水平的自动化,以实现软件系统从开发环境到生产环境的平滑过渡。

DevOps是一种以增量更改为基础的理念,对于那些习惯于传统方法的人来说,这意味着要缩短需求周期。DevOps的另一个基础是自省,在此过程中不断进行评估和调整。

Devops文化契合度的关键:

  • DevOps是一个永无止境的旅程。
  • DevOps流程需要进行IT以外的更改。产品管理,安全性,工程,销售,运维等在交付客户价值方面都可以发挥作用。
  • 增量方法,要从引入DevOps哲学开始。制定计划,然后不断进行重新评估和调整是至关重要的。

技巧2:对速度的需求

DevOps频繁交付模型,意味着频繁的构建,测试和部署。团队规模和交付的节奏可能会对计算或网络资源造成巨大压力。无论是私有平台还是云平台,对流水线资源进行投资,都是至关重要的。

自动化的单元测试也至关重要,如果没有自动化的集成测试,就不可能真正了解系统状态。集成测试应包括端到端,安全性,负载和弹性的测试。这些可能是时间密集型的和资源密集型的,但是对于衡量交付质量至关重要。如果运行回归测试需要8个小时,那么你会可以创建虚拟测试环境。

技巧3:可用性

与性能齐头并进就是可用性。持续交付中的“持续”,意味着高可用的流水线。这就需要选择高可用组件,使他们能够在部分失效的情况下,重新或继续运行。

可以通过使用高度可用的系统,或使用无需用户干预进行扩展和修复的云端SaaS解决方案,来实现可用性。CircleCI和Github Actions是流行的SaaS服务,将提供高度可用的基于云的DevOps平台。两者都支持本地测试,以便你可以根据需要将云服务与本地环境混合在一起。

技巧4:收集和使用DevOps指标

“如果无法衡量,就无法改善。”

- 彼得·德鲁克

像任何软件系统一样,DevOps流水线本身也需要随着时间的推移而发展和改进。

为了适应不断变化的环境,必须经常对执行自动测试和交付的系统进行测量和改进。针对诸如测试时间性能(单位和回归),故障率,成本(如果是云托管)和实际可用性(停机)之类的指标,进行评估。

这些指标也与业务指标相关联,例如交货时间,部署频率和平均恢复时间(从故障中恢复)。DevOps工具链的性能是所有这些的基础。

技巧5:关注有意义的测试

“追求测试覆盖率指标的组织,应该做些更有用的事情”

―马丁·福勒(Martin Fowler)

常见的开发测试指标是“代码测试覆盖率”。此度量标准的目的是确定对代码中潜在逻辑路径进行了多少百分比的测试。因此,它们是指出哪些代码需要被更正的一种很好的工具。当然,他们仅限于分析给出的代码,没有告诉你应该编写什么代码来处理某些情况,例如,他们不会告诉你异常处理不充分,或者你忽略了处理特定的返回状态。

倾向于使用特定的代码覆盖率,这是一个错误,因为开发人员在承受压力时会以牺牲质量为代价来提高覆盖率。测试覆盖范围不是代码质量的实际度量,它所提供的是对开发人员检查其工作的方法。

良好的测试覆盖范围应该是目标,而不是硬性限制。为了捕获那些“遗漏错误”,强大的集成测试功能可以提供帮助。

为了安全和可用性起见,我们应该知道所有代码都不相等。广泛重复使用的代码或可能执行破坏性行为(例如删除客户数据)的代码需要更高级别的测试覆盖范围和审查。编写测试非常耗时,需要首先全面地关注关键代码。

为了对自动化测试结果充满信心,集成测试环境应尽可能模拟生产环境。在托管应用程序的情况下,这可能非常简单,而在本地环境中,复杂性几乎是无限的。目标环境越复杂,越多样化,就需要进行更多的测试。

总结

DevOps的基本目标是简化向客户交付产品的过程。它试图打破开发人员和运维人员之间的传统障碍,以实现软件功能的频繁发布和错误修复。频繁交付的能力需要高度的自动化,尤其是端到端的测试。

虚拟化技术的一大优势是能够启动服务器和网络配置的任意集合(测试沙箱)。使用适当的编排工具,可以按需配置测试环境,从而大大增加了测试面积,并实现了自动化。

译文链接: https://dzone.com/articles/5-key-hacks-to-deliver-a-successful-devops-strateg

DevOps成功的5个关键相关推荐

  1. 衡量 DevOps 成功与否的重要度量指标

    简介 DevOps 理念已经掌握了软件交付流程的许多方面.因此,我们值得深入了解能够表明成功标志和需要改进方面的日常运营,而不是仅仅关注表明"正常状态"的日常报告.如今的 DevO ...

  2. Devops成功的八大炫酷工具

    为自动化和分析所设计的软件及服务正加速devops改革的步伐,本文为你盘点了Devops成功的八大炫酷工具 Devops凭借其连接弥合开发与运营团队的能力正在各个行业呈现席卷之势.开发人员和运营人员历 ...

  3. 揭秘微软6万工程师DevOps成功转型的技术「武器」

    在微软,通过其自身数年的 DevOps 转型, 6 万名工程师实现了更好的软件平台创新和快速迭代.微软有庞大的技术产品矩阵,同时也具有每天发布的能力,其中,微软研发云是支撑整个开发过程与运维最重要的基 ...

  4. devops 工具_衡量DevOps成功的13种工具

    devops 工具 在当今的企业中,业务中断完全取决于质量的敏捷性. 挑战传统软件开发流程和方法以适应这些新环境带来的复杂性. 现代DevOps计划旨在帮助组织利用不同IT团队之间的协作来提高敏捷性并 ...

  5. 什么是 DORA 指标以及它们如何告知 DevOps 成功?

    DORA 指标是帮助团队领导者了解其DevOps 工作实践的有效性的四个关键指标.DevOps 研究与评估 (DORA)小组在对成功采用DevOps 进行了六年的研究后制定了这些指标. 衡量数据是衡量 ...

  6. DevOps落地成不成,关键不在持续集成?

    赵辉 DBAplus社群(dbaplus) 读完需要 20 分钟 速读仅需 5 分钟 作者介绍 赵辉,前HSBC商业银行DevOps团队主管,DevOps专家,现任一线公有云企业DevOps平台解决方 ...

  7. 【IoT】创业:确保硬件创业成功的 6 个关键业务

    在许多创业者看来,将新产品推向市场是一个两步过程:首先制造它,然后出售它. 但是产品开发只是硬件业务的一部分,如果你忽略了业务的其他部分,那么你将永远不可能成功. 你应该优先考虑的业务包括市场营销.产 ...

  8. ChatGPT之父Sam Altman:成功的13个关键要素

    "如果把Sam Altman扔到某个食人族之岛,5年后他会成为这个食人族岛的国王." 在硅谷创业教父Paul Graham眼里,Sam Altman是一位极具魄力的领导者和开拓者. ...

  9. 保障项目成功的4个关键机制

    机制,是指各要素之间的结构关系和运行方式.指有机体的构造.功能及其相互关系:机器的构造和工作原理.语出清 丘逢甲 <汕头海关歌寄伯瑶>:"西人嗜糖嗜其白,贱买赤砂改机制.&quo ...

  10. 公关活动成功与否的三大关键

    文 |公关之家    作者:小5 引言:公关活动是否能够完成企业目的?传播效果是否达到预期?品牌受众信任度是否得到积累?核心人群资源是否能够 支撑企业发展?这些或许就是公关活动效果如何的最佳判定依据. ...

最新文章

  1. AAAI 2021 顶会论文开源,OCR方向最火开源项目已超1万 star!
  2. 浅析Codewarrior、IAR和Keil MDK三大开发环境优缺点
  3. 操作系统之多线程编程—读者优先/写者优先详解
  4. 直播推流实现RTMP协议的一些注意事项
  5. nginx fastcgi python_Nginx + webpy 和FastCGI搭建webpy环境
  6. 一致性哈希和哈希槽对比
  7. MongoDB和Elasticsearch的各使用场景对比
  8. 空间换时间的数据结构问题
  9. pycharm无法创建虚拟环境Virtualenv(Directory ...\python not found)
  10. 《绝区零》首测遭破解,面临资源泄露风险
  11. 医院排队叫号系统源码
  12. 《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
  13. PHP+MySql注册登陆页面开发完整代码
  14. JVM G1 源码分析(七)- Full GC
  15. Mysql安装步骤方法
  16. yo搭建nodejs项目脚手架
  17. 有关颜色敏感度测试的软件是啥,色彩敏感度测试:你是色盲吗?
  18. 计算机专业介绍 英语文章,计算机专业英语文章
  19. 七夕专属博文-使用QGraphics画“红心“或“黑心“(含数学模型讲解)
  20. Django shell测试

热门文章

  1. [Python黑帽] 二.Python能做什么攻击?正则表达式、网络爬虫和套接字通信入门
  2. 什么是工业机器人,工业机器人的分类与特点
  3. HEVC视频转码解决办法
  4. Android studio 申请读写权限,相机权限。
  5. Html和css算是编程语言吗,不被承认的编程语言
  6. 爱欲与文明(一)快乐原则与现实原则
  7. Vuex_Todos
  8. python-pptx---插入表格
  9. 浅析EL表达式注入漏洞
  10. 解决HP1010打印机在WIN7系统下驱动的问题