原文:What Is DevOps?
作者:Nilesh Kanawade
翻译:袁思思
来源:DZone
原文链接:https://dzone.com/articles/what-is-devops-3
两年前,我开始成为一名DevOps工程师。最初的印象就是它优化了发布管理活动,这也不完全正确。但当我投入进去,我发现这仅是冰山一角。一个DevOps工程师的角色是不只是CI/CD和自动发布。实际的工作比这多得多。长话短说——自动化一切。
DevOps是什么?
DevOps是Development和Operations两个词语结合,应运而生的一个术语。DevOps工程师的角色是自动化所有运维工作的开发人员。观点是鼓励频繁的发布,以提高质量并得到早期反馈。
因此,在我看来,DevOps主要的目标是提高速度和交付质量。
DevOps从哪来?
'DevOps is the offspring of Agile software development.” — Dennis Ehle.
DevOps是敏捷开发的后代。— Dennis Ehle
当今,敏捷开发(Agile)是过载的流行词。每个人都已经或者正在敏捷开发。不是只有开发,还有其他部门,例如BA,QA,构建和发布工程师等等需跟上进度。DevOps工程师帮助这些所有的利益相关者优雅地采用敏捷开发。
DevOps解决了什么问题?
“Ideas are cheap. Ideas are easy. Ideas are common. Everybody has ideas. Ideas are highly, highly overvalued. Execution is all that matters.” — Casey Neistat.
想法是廉价、容易、普通的。每个人都有想法。想法得到高度评价,但是是高估了。执行才是一切。—— Casey Neistat
敏捷开发软件开发是近数十年软件开发实践中革命性的改变之一。它提倡适应计划、进化发展、早期交付和持续改进,它鼓励快速和灵活应对变化。为了实现这一点,需优化整体的开发生命周期。至于优化,只要有可能,自动化关键部分——这是显而易见的。
什么该自动化?
每个软件和软件开发的每个阶段都该自动化。
一些人可能认为自动化一切是一种野心,甚至是不可能的。不管怎样,我认为我们应该考虑将这个阶段作为我们最后的阶段,并且努力实现它。最后,我们正在实施敏捷开发,这是一个不断持续改进的过程。
敏捷开发后的主要观点是迅速、频繁的交付。任何的重复都应该自动化,或者尝试减少在其之上花费的时间。这应该适用于项目中的每个地方。
DevOps工具链
我给SDLC每个阶段做了一些分类,包括DevOps工具。我们应该至少尝试采用每个类别中的一种工具来处理解决方案。
计划与分析
捕捉和追踪 (JIRA, ServiceNow).
文件或 Wiki页面 (Confluence).
协同(Slack, HipChat).
设计与实现
SCM (Subversion, Git, Mercurial).
IDE (Eclipse, IntelliJ, Visual Studio).
构建与发布(CI/CD)
资源库管理(Artifactory, Nexus).
构建工具 (Jenkins, Bamboo).
配置管理(Chef, Puppet, Ansible).
云(AWS, Azure, OpenStack).
容器 (Docker).
集成与测试
源代码验证 (SonarQube).
安全测试 (HP Fortify).
功能测试(JUnit, Cucumber, Selenium).
性能测试 (SOASTA).
运营
监控 (Splunk).
分析 (Adobe Analytics, Flurry, TeaLeaf).
BI (Kibana, Tableau).
最后,虽然术语有几分新,但是DevOps的核心概念一直没变。它给我们带来很多,因此每个人都开始采用DevOps。实施起来可能区别于组织,因为它是高度依赖管理的优先级。它确实帮助更快的迁移和高质量维护。
本文转载自公众号博云
联系客服