什么是 DevOps?

什么是 DevOps?简而言之,DevOps 是指将开发和运营这两个通常相互独立的职能融合在一起。这就 DevOps 的定义。原因则更简单。基于标准、经过验证的中间件平台支持标准化开发方法、清晰的沟通和归档流程,这有助于改善应用开发和管理周期,实现敏捷性并为您的 IT 基础设施提供更高水平的可用性和安全性。显然,DevOps 打通了人员、产品与流程。归根结底,DevOps 旨在将 IT 与业务连接起来。

DevOps — 当开发与运营相融合

开发:

整合开发所需的基础设施,从共享资产到为企业应用编写代码和算法,以便于利用人工智能/机器学习、容器和无服务器等高级功能。此外,测试、归档、错误跟踪和其他关键任务都将在开发阶段处理,为发布奠定基础。一些常用的开发工具:Git 用于签入代码,Github 或不断更新的 Bitbucket 用于管理代码存储库。

运营:

部署应用之后,运营端就会接管工作,并侧重于确保应对云技术平台的业务挑战。用户安全、数据库管理、生产工作负载可扩展性和应用补丁等问题均在此部门中处理。一些常用的运营工具:Terraform、Ansible、Puppet 和 Chef,用于管理基础设施和配置。

在许多组织中,这两个职能是相互孤立的。DevOps 通过融合开发与运营,建立统一的基础设施来尽可能提高生产力。为了同时支持这两种职能,基础设施需要具备敏捷性、灵活性和可扩展性,并在开发人员与运营人员/系统管理员之间共享安全和质量保证的相关输入和集成。

这最终将建立一个高效的模型,可在软件开发生命周期日益加速的情形下充分利用资源,而这在传统软件开发模型下已经越来越难以实现。最终,强大的 DevOps 模型可助力企业解决问题、推进用户增长以及更加快速地开发和迭代软件产品,从而改善客户服务。

敏捷 DevOps 周期

DevOps 如何帮助您加速产品开发?

在过去二十年中,企业逐渐开始将软件集成到几乎所有要素中 — 财务、娱乐、用户使用和供应链等等。这些职能中都实现了软件与数据的明确集成,而且随着这种集成的日益普及,性能和可靠性也面临着越来越高的风险。可用性中的一项错误或中断可能会影响无数用户,并且可能会损失数百万的收入。

DevOps 和 DevSecOps 可有效满足软件开发生命周期 (SDLC) 的需求,最终提供持续集成和持续交付 (CI/CD)。集成开发、运营和安全性可带来切实的资源效益,同时还可以加速整个生命周期中的通信和协作。支持在这些群体之间搭建一座桥梁 — 同时缩短整体软件开发生命周期 — 是 DevOps 的意义和价值,且不受行业的限制。

DevOps 的优势

采用 DevOps 来支持整个软件开发生命周期 — 所有职能均侧重于敏捷性和效率,这具有众多优势:

  • 速度保证:采用敏捷的 DevOps 模型,技术可以针对生命周期的当前需求进行优化。在许多情况下,DevOps 使用前沿的机器学习和人工智能来推进这项任务。事实上,最新创造的 AIOps 一词就是指在 IT 运营中使用人工智能。DevOps 还侧重于自动化和持续集成/交付,让员工从手动任务中解放出来并专注于创新。在开发方面,工程师可以更快达成其代码里程碑或更加有效地开展协作。在运营方面,系统管理员可以利用自动化框架来轻松供应和更新应用和基础设施。
  • 质量:通过速度保证,DevOps 开辟了提高质量和可靠性的全新途径。它从开发端开始,包括加快协作以及更加出色的问题解决和集成工具。在运营方面,更小和更频繁的更新有助于提高稳定性,从而为用户群提高整体体验质量。
  • 安全性:DevOps 提供了一些不同的层来增强整体安全性。从职能角度来看,DevOps 有时也涵盖安全团队的集成。这将创建一种 DevSecOps 模型,可在满足开发和运营需求的同时平衡安全性。在更加细粒度的层面上,DevSecOps 可依托于人工智能、自动化合规性和自动化资源管理实现快速修补、审计和分析。
  • 可扩展性:敏捷资源、自动化以及完整的软件开发生命周期支持意味着基础设施可支持按需扩展。扩展涉及许多不同的要素,因此支持整体技术视图有助于高效扩展,同时处理从资源管理到补丁部署的一切任务。

什么是 CI/CD?持续集成和持续交付

快速交付软件对于在云中高效运行应用至关重要。持续集成 (CI) 是指使用一行代码频繁合并新软件。持续交付是指频繁用代码生产打包软件。同样,持续部署是指定期将打包软件部署到运行时平台。CI/CD 的诞生极大地改变了传统应用开发流程。基于 CI/CD 的流程涉及 DevOps,即转变为在单一平台上汇集开发人员、QA 工程师和运营经理的模式。

但是否可以进一步改进基于 CI/CD 的应用开发流程呢?最前沿的方法是使用容器化来进一步提高灵活性,实现更大的收益。

持续集成 (CI):

持续集成 (CI) 是软件持续交付中最关键的一个步骤。在 CI 开发实践中,开发人员将其代码更改(通常是细微和增量更改)提交到一个集中的源代码存储库,而这会启动一系列自动构建和测试。此存储库可自动、及时为开发人员捕获错误,从而避免错误传递到生产环境中。持续集成管道通常涉及一系列步骤,包括代码提交、执行基本自动检查 (linting)/静态分析、捕获依赖项、构建软件以及在创建构建工件之前执行一些基本单元测试。Github、Gitlab 等源代码管理系统提供 webhooks 集成,Jenkins 等 CI 工具可以订阅这些集成,以便在每一次代码签入后运行自动构建和测试。

持续交付 (CD):

持续交付发生在持续集成之后。CD 可自动将应用交付至云基础设施环境。除了主要生产服务器,大多数团队会使用多个开发和测试环境。持续交付将确保自动在所有云环境中推送新的、经过测试的代码更改。

DevOps 和开发人员

开发人员不仅仅是参与 CI/CD 软件开发生命周期的编码过程,而且还善用自身的直觉和以前的成功经验,帮助全面监督 CI/CD 周期。由于 DevOps 的细节可能取决于所使用的技术堆栈,因此请务必访问 DevOps 和开发人员,以了解哪种 Oracle 产品较适合您的使用情况。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。