DevOps:可借鉴的方法

对于每位技术专业人员而言,DevOps都是时不时出现的流行语之一。 DevOps从2000年代初开始出现,并且不断地从机遇中发展出来。 随着大量技术专业人员希望进入DevOps,这绝对是一个持久的趋势!

那么,什么是DevOps? 为什么还要学习DevOps方法论?

本质上,DevOps 并不是一项技术 。 这是一种桥接公司的“发展”和“运营”阶段的方法。 传统上,软件开发和部署软件所涉及的操作是由两个不同的人或部门以两个不同的角色分别处理的。 DevOps旨在通过模糊软件开发的两个阶段之间的界线来提高效率。 对于希望优化时间和资源以实现最大输出,理解和学习的任何技术专业人员,DevOps是关键。

敏捷时代

在技​​术层次结构中,开发团队致力于创建产品/服务。 他们对需求进行分类,设计体系结构,编写程序,测试/调试错误,最后将软件部署在实际场景中。 这种方法称为瀑布模型。

随着时间的流逝,公司意识到瀑布模型对于开发人员来说很慢。 经常出现这样的情况:到产品推出时,客户需求几乎完全改变了。 这就是敏捷开发出现的地方。

敏捷开发从根本上强调了定期以较小的功能块交付整个软件的重要性。 这使一组开发人员可以解决问题,并通过多次迭代更好地调试其代码。

这种方法优化了开发阶段,但是每当操作阶段开始时就缺乏敏捷性。

从敏捷到DevOps

这是DevOps到达现场的时间。 DevOps基本上是一种将敏捷性和优化引入开发和运营的实践。

开发和运营齐头并进。 为了确保软件运行顺畅,需要在开发和运营之间进行持续的协作。

考虑这种情况:

开发团队将开发一个新的应用程序,并将代码发送给质量保证(QA)团队。 经过测试后,质量检查人员将识别出的错误发送回开发团队。 沟通鸿沟可能会在这里出现–开发人员很生气,声称质量保证未正确运行测试或未能从更大的角度看待问题。 测试人员可能会回答“这不是我们的过程,而是您的代码。” 在花了一段时间的时间后,bug得以修复,并将代码移交给操作团队进行部署。 这是激烈辩论的开始。 一切都在Dev的环境中运行良好,但是当将应用程序部署到生产环境中时,代码将在相互虚拟化的环境中与各种工作负载产生竞争。 这是出问题的地方,每个人都四处乱扔头发。

根据DevOps的文化,一组工程师对软件开发负有端到端的责任,从收集需求到开发,测试,部署到最终监视和收集最终客户的反馈,然后实施任何变化。

尽管敏捷是对瀑布模型的改进,但仍然有其局限性。 敏捷仅强调持续集成和监控的重要性。 持续部署的概念为DevOps铺平了道路。

那么,DevOps如何克服敏捷方法学的缺点? 了解DevOps生命周期后,您将更好地理解这一点。

简而言之,DevOps生命周期

DevOps作为技术世界中的一步变化出现,提倡了持续部署以及集成和监视的概念。 持续部署的思想使DevOps与众不同。 这种不断变化和改进的思想反映在生产方面,使该过程更加有效。

无限符号已正确用于DevOps。

它强调了对不断变化和升级的需求,以驱动软件应用程序的生产和维护。 该过程从计划和编码开始,然后构建和测试应用程序。 然后由Ops团队发布和部署该应用程序,该团队还负责监视该应用程序。 此循环重复一遍又一遍。

图片来源:Edureka

持续开发(计划,代码和构建)

软件可交付成果被分解成短短的开发周期的多个冲刺,进行开发,然后在很短的时间内交付给运营部门。

诸如Git和SVN之类的DevOps工具用于维护代码的不同版本,而诸如Ant,Maven和Gradle之类的工具则将代码构建到可执行文件中,该文件可以转发给QA团队进行测试。

连续测试(测试)

这是质量保证人员不断测试开发的应用程序是否存在错误的阶段。 持续监控有助于理解代码开发过程中的缺点。 这将有助于节省时间和资源,因为可以在不影响代码其他方面的情况下修复错误。

对于连续测试,使用自动化测试DevOps工具(例如Selenium,TestNG和JUnit)。 这些工具使QA可以完全并行地测试多个代码库,并确保功能上没有缺陷。

持续集成(发布)

这是将支持新功能的代码与现有代码集成在一起的阶段。

由于软件的不断开发,更新后的代码也需要连续集成。 重做代码应确保运行时环境中没有错误,从而使我们能够测试更改并检查其对其他更改的反应。 Jenkins是用于此过程的流行工具之一。

持续部署(部署和操作)

下一个阶段是将代码部署到生产环境的位置。 在这里,我们确保将代码正确部署在所有服务器上。

由于新代码是连续部署的,因此配置管理工具在快速且频繁地执行任务中起着重要作用。 Puppet,Chef,SaltStack和Ansible是此阶段中使用的一些流行的DevOps工具。

持续监控(监控并提供反馈)

这是DevOps生命周期中非常关键的阶段,旨在通过监视软件性能来提高软件质量。 源自真正的监控和反馈的持续改进的思想才是与众不同的所在。 开发团队和运营团队之间的执行流程非常流畅,没有任何麻烦。

这需要Ops团队的参与来监视用户活动, 以了解系统的任何不当行为 。 诸如Splunk,ELK Stack和Nagios之类的专用监控DevOps工具将持续监控应用程序性能并突出问题。

图片来源:Edureka

上图显示了DevOps的端到端生命周期以及该过程中使用的各种工具。 从计划到测试,这些活动都与部署和监视集成在一起。 这使得DevOps成为一个持续不断的周期,主要关注于持续改进。 从计划和编码阶段就开始使用像Git这样的编码存储库。

该应用程序是使用Maven和Gradle之类的工具构建的。 Selenium是用于运行测试的自动化测试框架。 Jenkins是一个集成工具,可通过持续集成来帮助弥合Dev和Ops团队之间的鸿沟。 诸如Docker,Puppet和SaltStack之类的工具用于部署和操作应用程序。 最后,Splunk和Nagios帮助进行持续监控并提供反馈。 重复并重复整个循环。

采用DevOps原理的优势

DevOps将帮助您掌握持续的开发和部署以及监视和升级过程。 它促进了开发和运营部门之间不断的协作,以创造更好的结果。

从这种方法学中可以学到很多东西,不仅对于技术专业人员,对于需要优化用于实现目标的时间和资源的经理和领导者,也是如此。 持续开发,部署,集成和监视的思想可以帮助领导者提高任何给定项目的效率。 这种简化的方法将有助于产生有效的产出。

DevOps成功背后的一个简单秘诀是,它将任务分解为较小的目标,可以更好地完成和管理这些目标。 我们也可以在生活中采用这种做法。 复制不断监控和改进的想法可以帮助我们调整工作道德,从而对我们的职业圈子产生积极影响。 然后,将这些小片段合并在一起以产生所需的结果。

持续监控也是DevOps的重要方面。 监视客户的反馈以及对升级和更改的反应,这取决于在开发阶段可以合并哪些基本更改以进一步增强用户体验。 这使DevOps成为不断变化和改进的永无止境的过程。

DevOps培训将帮助您理解沟通是有效协作的关键。 实施DevOps的组织在整个层次结构中具有透明性和流动性。 更大的图景或最终目标在所有团队中传达,这促进了集体协作。

DevOps的另一个宗旨是不断的适应性和改进,这有时可能意味着从一个行动计划转向另一个行动计划。 该方法论教会您要敞开心change,并时刻保持警惕,以寻求更好的结果。

借助DevOps,重点始终放在更大的视野上。 有时,您需要“缩小”并查看它们如何相互连接。

基本技能

DevOps将帮助您建立通才型思维。 专业技能很重要,但是您需要了解并协助消除整个系统中的瓶颈。

这就是为什么DevOps职位在就业市场上受到高度追捧的原因。 考虑依赖关系和潜在的失败将帮助您更准确地预见结果,这是领导者需要学习的另一项重要技能。

最后,让我们不要忘记移情的重要性。 当团队合作时,错误会发生,延迟会发生,事情可能会不时中断。 一支强大的DevOps专业人士将全力以赴,并通过与团队的持续协作来寻求解决方案。

立即开始学习DevOps,并利用其原理对您的职业生涯和员工产生积极影响。

翻译自: https://www.javacodegeeks.com/2018/05/devops-a-methodology-to-learn-from.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值