DevOps 关键与开发人员和运营之间的协作无关,以改善消费中运行程序的交付和牢靠性。最经常出现的最佳通常旨在用更弱小的智能化来取代在开发和运营团队之间治理的手动、易出错的程序。这包含用CI/CD(继续集成和继续交付)成功交付管道的智能化,用容器成功规范化性能,并将基础设备性能为代码。在运营方面,提高运行程序牢靠性的 DevOps 最佳通常包含提高运行程序的可观察性,参与监控,以及智能化云和基础设备的操作。
但如何提高运行程序、数据库、数据管道和云基础设备的性能呢?本文将分享7个可以影响性能和用户体验DevOps 通常和方法。
1. 从一开局就在运行程序中构建安保通常
DevOps团队最不须要的就是部署具备安保破绽的新性能。安保终止或升级会影响用户体验并发生严重的业务疑问。一个 DevOps 的最佳通常是,经过与消息安所有门在需求方面的协作,测试CI/CD管道内的代码破绽,以及在软件开发中实施其余安保通常,来成功安保转移。
Akamai 的初级开发人员提倡者 Mike Elissen 说:“运行程序牢靠性的一个关键组成部分是可用性,采取适当的措施来正确包全运行程序免受 Web 运行程序攻打、DDoS 攻打等或许象征着坚持在线和离线之间的区别。”
Elissen 说,向左转移是从DevOps转变为 DevSecOps 的一部分。他继续说道,“咱们看到在DevOps中参与安保性的‘左移’变得越来越显著,最终发明了更弱小的 devsecops 文明,并使更多的开发人员看法到并对其运行程序的安保性担任。”
2. 规范化架构和基础设备蓝图
Quali 产品治理副总裁 Amir Rozenberg 指出了一个影响团队绩效的疑问。他说:“许多DevOps团队发现自己正在组织无机增长的运行程序基础架构定义的凌乱,这些定义是在早期真挚地开发的,以提高团队在软件开出现命周期中的效率。”
Rozenberg 征询DevOps团队能否应该驳回自己入手的方法来创立环境,或许组织能否应该创立规范。他说:“介绍的方法是建设一个核心团队,以蓝图的方式对环境启动建模,以使它们牢靠、可重用和合规。而后,他们须要能够散发这些基础架构定义,以便业务成员可以经过极速自助服务经常使用它们,无论是集成到智能化管道中还是以手动方式。”
3. 在 CI/CD 管道中建设可观察性和继续测试
66degrees 的DevOps总监 Matt Sollie 以为 CI/CD 可以做的不只仅是打包和推送代码。他说:“并不是一切的DevOps准则都像继续交付或将一切构建为代码一样诱人或可见,但它们雷同关键。继续集成是成熟的DevOps态势的一个组成部分,它可以极大地提高运行程序的牢靠性,但须要指标、愿景和期间能力以无心义的方式构建。”
Sollie 抵赖,成功牢靠性和性能指标不只须要有远见,还须要对通常和优化架构启动投资。“可观察性是一项关键且低廉的准则,由于牢靠性不是开启或封锁形态,须要粗疏入微的数据搜集。借助一切云计算服务,为上班选用正确的工具或服务可以带来固有的牢靠性和性能长处。”
矫捷开发团队应该在他们的管道中实施什么来提高性能?以下是一些倡议:
4. 经常使用性能标记和金丝雀版本控制部署
部署不用是一切用户一次性性取得一切更改的相对转换。代码中的性能标记有助于性能和控制性能的可用性,而金丝雀颁布战略使DevOps团队能够缓慢而东倒西歪地推出新性能。
LaunchDarkly 的首席技术官兼联结开创人 John Kodumal 补充说:“性能治理,特意是性能标记,正在迅速成为改良运行程序的全体牢靠性和性能的首选开发通常,同时准许开发人员不时翻新。经过经常使用性能标记,开发人员可以在消费前测试性能升级,以便在颁布前处置疑问。”
这些控件提高了牢靠性和性能,同时也协助开发团队最大限制地缩小了终止。Kodumal 说:“性能标记提高了性能,同时为开发团队提供了必要的控制来升级运行程序而不会终止或停机。”
5. 建设严厉的可观察性和监测规范
如今专一于DevOps职责的运维方面,团队应该思考几个最佳通常来提高运行程序性能,包含开发可观察性规范和改良监控。
Mindee 开发人员相关总监 Frédéric Harper 说:“ DevOps必定实施严厉的监控和可观察性流程,以确保运行程序的每个部分都反常上班并且主机进程运转顺畅。经过包全这一元素, DevOps团队可以搜集有价值的消息,以了解用户如何经常使用运行程序,或许防止未来出现疑问,更容易支持客户,并依据实在数据改良业务或架构决策。”
6. 经常使用 AIOps 和智能化裁减监控
在 web 2.0 时代,当出现终止或性能疑问时,运维人员只要少数日志文件和监控工具来检查。如今,运转微服务、无主机运行程序和多云数据库象征着在处置事情和确定疑问基本要素时须要参考更多的数据和工具。AIops 平台可以集中监控数据,经常使用机器学习关联警报,并协助操作人员跨多个平台智能照应和复原,这有助于最大限制地缩小性能影响。
BigPanda 产品营销副总裁 Mohan Kompella 对此示意批准:“AIOps 平台可以协助DevOps团队坚持工具的自主性和灵敏性,同时还为集中式事情照应者提供他们所需的可见性,使其成为应答终止的第一道防线。”
7. 定义 SLO 和失误估算
DevOps团队应该平衡哪些通常发生最大收益并处置危险。这须要团队就DevOps优先级启动权衡、学习和协作,这在实施通常和工具后的数月或数年内或许不可成功收益时并不容易。
一种确定优先级的方法是驳回站点牢靠性工程通常、定义服务水平指标 (SLO) 和经常使用失误估算。当运行程序或微服务超出其失误估算时,它会向DevOps团队收回信号,以找出要素并专一于处置打算。
Nobl9 的首席运营官 Kit Merker 说:“服务水平指标为工程团队设定了明白的指标,以便更好地选择如何确定上班的优先级。开发人员和 ITop 不只可以以技术为核心,还可以转向以服务为核心。”
DevOps团队有很多事情要做, DevOps最佳通常协助团队在减速开发和提高牢靠性和性能之间取得平衡。成功的关键或许在于定义疑问陈说、答辩方法、迭代处置打算和权衡影响。
原文题目: 7 devops practices to improve application performance