词汇表

DevOps

为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

什么是DevOps?

DevOps是设置将软件开发 (Dev) 和 IT 运维 (Ops) 相结合的实践方法,旨在简化开发流程并启用高质量软件的持续交付。

DevOps通过自动化手动流程来改进软件开发流程,使代码能够更快地从开发阶段过渡到生产阶段,同时保持质量。版本控制等源代码管理工具是DevOps的一部分,但其最重要的组件是文化,而不是技术。

DevOps要求开发团队和运维团队密切合作,并愿意进行试验和从错误中学习。DevOps方法论越来越受欢迎,尤其是在那些需要快速行动才能保持竞争力的行业。

DevOps 是如何工作的?

DevOps通过提高管线关键环节的效率来简化开发过程。Feedback循环监控应用程序性能并标记需要改进的领域,而报错跟踪软件和编译版本部署工具等技术则可自动执行重复的开发任务,使开发人员能够专注于编写新功能。

要从DevOps中获得最佳效果,仍然需要团队之间紧密、步调一致的协作,朝着同一个目标努力,单靠自动化是不够的。

DevOps的原则是什么?

  • 沟通与协作:像Slack或 Jira 这样的工具可以帮助团队高效地共享信息,无论是在现场还是远程,将它们与现有的DevOps栈集成,可以让每个人都了解项目status。
  • 自动化Unity Build Automation等工具负责 CI/CD,而 Puppet 或 Chef 等工具负责配置和配置管理。
  • Feedback:无论通过代码审查、用户测试还是流程的自动化部分,对于快速发现需要改进的领域都至关重要。
  • 共同责任:开发和运维部门共同负责应用程序的整个生命周期;各自为政的团队会导致沟通不畅和效率低下。

DevOps解决了哪些问题?

实施DevOps有助于团队和资源更好地协调协作,解决许多软件开发问题,并改善最终用户体验。

DevOps 的核心在于使团队能够通过快速迭代和测试快速make改变,同时减少现有工作流程中的低效环节。CI/CD工作流程专门帮助团队更频繁地推出新功能并更快地响应客户反馈。

协同一致的团队能够更高效地协作,从而带来更稳定、更频繁、更高质量的版本发布,而源源不断的高质量版本发布能够持续创造客户价值,帮助企业发展壮大。

使用DevOps有哪些好处?

  • 更快地达成目标:团队协作一旦运转良好,行动就会更加灵活。
  • 更高质量、更稳定的版本:密切合作能够持续提高发布质量。
  • 士气提升:密切合作发布高质量产品的团队往往会对工作更有投入感。

使用DevOps会面临哪些挑战?

  • 真正的文化转变:过去各自为政、独立运作的团队现在需要使用新的工具和方法积极协作。
  • 新建的工作流程摩擦:开发和运维团队必须积极合作,才能编译版本无缝流程,因为仅仅采用新工具并不能自动实现无缝流程。

什么是DevOps工作流程?

1.计划:制定总体目标、实现目标的方式、实施时间表以及谁负责什么,然后确定并实现所需的工具和流程,其中可能包括 CI/CD 交付管线或监控系统。

2.发展:经常编写和测试代码以保持其稳定性;一旦代码准备就绪并满足目标用户群的需求,就将其交给运维团队进行部署。

3.合并:将来自不同来源的更改整合到一个代码库中,既可以通过Unity Version Control等版本控制系统中的合并命令手动整合,也可以通过 CI 系统自动整合,从而创建代码库的单一、一致的视图。

4.Build:DevOps生命周期的编译版本阶段,代码会被编译和打包以进行分发,通常会使用 Jenkins 或Unity Build Automation等工具来实现自动化,这有助于保持构建的可重现性,并使问题易于追踪。

5.测试和阶段:在测试环境中,通过自动和手动方式测试代码,以确认其稳定性和生产就绪性,所有操作均在测试环境中进行,不会对实时代码或应用程序造成任何风险。自动化测试可以加快测试过程并保持测试结果的一致性;手动测试可以发现自动化测试遗漏的问题。

6.部署:将经过测试的代码频繁地部署到生产环境,作为持续部署 (CD) 的一部分,这样可以在几分钟或几小时内发现并解决代码错误,而不是几天。

常见问题解答 (FAQ)

DevOps是一个职位名称还是设置实践方法?

实际上两者兼而有之。DevOps从根本上来说是一种文化和设置实践方法,但许多公司也会聘请专门的“DevOps工程师”来帮助编译版本和维护支持 DevOps 的自动化和工具。担任这个职位并不能取代整个团队真正接受这种文化的必要性。

小型团队需要DevOps吗?

虽然不是完整的正式结构,但其基本原则仍然很有帮助。即使是小型团队也能从自动化重复性任务以及保持开发和部署紧密联系中受益。通常随着团队规模的扩大而扩大的是工具和流程的缩放,而不是实践本身的价值。

相关术语

CI/CD

CI/CD,或持续集成/持续交付或部署,是由自动化实现的软件开发实践。频繁、可靠的更新通过持续的代码交付加快了发布周期。

Version Control

版本控制,也称为源代码管理,使用工具跟踪随时间对源代码所做的更改或编辑。