什么是 DevOps?简而言之,DevOps 是指将开发和运营这两个通常相互独立的职能融合在一起。这就 DevOps 的定义。原因则更简单。基于标准、经过验证的中间件平台支持标准化开发方法、清晰的沟通和归档流程,这有助于改善应用开发和管理周期,实现敏捷性并为您的 IT 基础设施提供更高水平的可用性和安全性。显然,DevOps 打通了人员、产品与流程。归根结底,DevOps 旨在将 IT 与业务连接起来。
整合开发所需的基础设施,从共享资产到为企业应用编写代码和算法,以便于利用人工智能/机器学习、容器和无服务器等高级功能。此外,测试、归档、错误跟踪和其他关键任务都将在开发阶段处理,为发布奠定基础。一些常用的开发工具:Git 用于签入代码,Github 或不断更新的 Bitbucket 用于管理代码存储库。
部署应用之后,运营端就会接管工作,并侧重于确保应对云技术平台的业务挑战。用户安全、数据库管理、生产工作负载可扩展性和应用补丁等问题均在此部门中处理。一些常用的运营工具:Terraform、Ansible、Puppet 和 Chef,用于管理基础设施和配置。
在许多组织中,这两个职能是相互孤立的。DevOps 通过融合开发与运营,建立统一的基础设施来尽可能提高生产力。为了同时支持这两种职能,基础设施需要具备敏捷性、灵活性和可扩展性,并在开发人员与运营人员/系统管理员之间共享安全和质量保证的相关输入和集成。
这最终将建立一个高效的模型,可在软件开发生命周期日益加速的情形下充分利用资源,而这在传统软件开发模型下已经越来越难以实现。最终,强大的 DevOps 模型可助力企业解决问题、推进用户增长以及更加快速地开发和迭代软件产品,从而改善客户服务。
在过去二十年中,企业逐渐开始将软件集成到几乎所有要素中 — 财务、娱乐、用户使用和供应链等等。这些职能中都实现了软件与数据的明确集成,而且随着这种集成的日益普及,性能和可靠性也面临着越来越高的风险。可用性中的一项错误或中断可能会影响无数用户,并且可能会损失数百万的收入。
DevOps 和 DevSecOps 可有效满足软件开发生命周期 (SDLC) 的需求,最终提供持续集成和持续交付 (CI/CD)。集成开发、运营和安全性可带来切实的资源效益,同时还可以加速整个生命周期中的通信和协作。支持在这些群体之间搭建一座桥梁 — 同时缩短整体软件开发生命周期 — 是 DevOps 的意义和价值,且不受行业的限制。
采用 DevOps 来支持整个软件开发生命周期 — 所有职能均侧重于敏捷性和效率,这具有众多优势:
快速交付软件对于在云中高效运行应用至关重要。持续集成 (CI) 是指使用一行代码频繁合并新软件。持续交付是指频繁用代码生产打包软件。同样,持续部署是指定期将打包软件部署到运行时平台。CI/CD 的诞生极大地改变了传统应用开发流程。基于 CI/CD 的流程涉及 DevOps,即转变为在单一平台上汇集开发人员、QA 工程师和运营经理的模式。
但是否可以进一步改进基于 CI/CD 的应用开发流程呢?最前沿的方法是使用容器化来进一步提高灵活性,实现更大的收益。
持续集成 (CI) 是软件持续交付中最关键的一个步骤。在 CI 开发实践中,开发人员将其代码更改(通常是细微和增量更改)提交到一个集中的源代码存储库,而这会启动一系列自动构建和测试。此存储库可自动、及时为开发人员捕获错误,从而避免错误传递到生产环境中。持续集成管道通常涉及一系列步骤,包括代码提交、执行基本自动检查 (linting)/静态分析、捕获依赖项、构建软件以及在创建构建工件之前执行一些基本单元测试。Github、Gitlab 等源代码管理系统提供 webhooks 集成,Jenkins 等 CI 工具可以订阅这些集成,以便在每一次代码签入后运行自动构建和测试。
持续交付发生在持续集成之后。CD 可自动将应用交付至云基础设施环境。除了主要生产服务器,大多数团队会使用多个开发和测试环境。持续交付将确保自动在所有云环境中推送新的、经过测试的代码更改。
开发人员不仅仅是参与 CI/CD 软件开发生命周期的编码过程,而且还善用自身的直觉和以前的成功经验,帮助全面监督 CI/CD 周期。由于 DevOps 的细节可能取决于所使用的技术堆栈,因此请务必访问 DevOps 和开发人员,以了解哪种 Oracle 产品较适合您的使用情况。
注:为免疑义,本网页所用以下术语专指以下含义: