A
A/B Testing
使用 A/B 测试的技术将新功能或某项功能的不同变体推向不同组别的用户,这些功能可通过比较指标和用户行为进行评估。
Acceptance Testing
通常对整个系统进行高级测试,以确定新功能和现有功能的整体质量是否足以让系统投入生产。
Agent
代理程序是安装在特定物理服务器上的程序,用于在该服务器上处理不同进程的执行。
Agile
是DevOps 的前身;敏捷是一种软件开发方法,更广泛来说,是一种业务方法。敏捷强调短期迭代的规划和开发周期以提供更好的控制以及可预测性,并支持随着项目的发展而不断变化的需求。
ARA (Application Release Automation)
可以在目标环境中自动安装和正确配置给定应用程序版本并随时可用的工具、脚本或产品。
B
Behavior-Driven Development (BDD)
一种开发方法,强调软件应该根据应用程序的期望行为并以业务管理人员可读的语法来指定。
Black Box Testing
一种测试或质量保证实践,它假设不知道被测系统内部的工作原理,因此尝试验证外部而不是内部行为或状态。
Build Agent
Build Agent
一种用于持续集成的代理程序,可以本地或远程安装,跟持续集成服务器有关。它发送和接收跟处理软件构建有关的消息。
Build Artifact Repository
用于组织具有元数据构造的工件,并允许自动发布和使用这些工件的工具。
Build Automation
允许将源代码自动编译为可发布的二进制代码的工具或框架。通常包括代码级的单元测试,以确保代码的各个部分按预期运行。
C
Canary Release
灰度发布(金丝雀发布)
一种上线策略,在该策略中,把新的应用程序版本发布到生产服务器的一小部分上,并严格监控以确定其是否按预期运行。如果一切看起来稳定,那么新版本将推广到整个生产环境。
Configuration Drift
由于手工的特殊更改(如热修复)没有引入到系统模版中而引起软件和硬件配置与系统模版版本漂移或不一致。
Configuration Management
用于建立和维护系统一致的设置和功能属性的术语。它包括用于IT 基础设施自动化等系统管理任务的工具。
Continuous Delivery
持续交付(CD)
持续交付是一套流程和实践,从根本上清除软件生产过程中的浪费,能更快地交付高质量的功能,并在业务和用户之间建立快速有效的反馈环。
Continuous Integration (CI)
持续集成(CI)是一种开发实践,它要求开发人员每天多次把代码集成到共享存储库中。然后通过自动构建验证每次签入,使得团队能尽早发现问题。
D
Dark Launch
一种上线策略,其中实现新功能的代码被发布到生产环境的子集,但是不可见或只是部分激活。然而,该代码是在生产环境中运行,用户并不知晓。
Delivery Pipeline
一系列为新应用程序版本实施软件交付过程的编排的、自动化的任务。该管道中的每个步骤旨在提高新版本的置信度,使其能够做出合格/ 不合格的决策。交付管道可以被看作是组织发布流程的优化结果。
DevOps
DevOps
DevOps(开发和运维)是一个软件开发短语,用于描述开发和 IT 运维之间的敏捷关系。DevOps 的目标是改善在软件开发周期中不同角色之间的沟通、协作和流程,以改善和加速软件交付。
DevOps Intelligence
DevOps 智能
提供公司所需的洞察力,以更高效、更低风险和更好结果的方式交付软件,
F
Functional Testing
进行端到端系统的测试以验证(新)功能。使用可执行规范,通过运行针对应用程序的规范来进行功能测试。
I
Infrastructure as a Service (IaaS)
云托管的虚拟机器通常根据“按需付费”收费。用户对机器有完全的控制,但是需要自己安装和配置所需的中间件和应用程序。
Infrastructure as Code
一种系统配置管理技术,其中以完全自动化的形式指定机器、网络设备、操作系统、中间件等。规范或“蓝图”被认为是代码,由供应工具执行,保存在版本控制中,通常遵循用于应用程序代码开发的相同实践。
L
Lean
“精益制造”或“精益生产”是一种方式或方法,旨在通过专注于保护价值来减少生产过程中的浪费。它很大程度上来源于丰田公司在汽车制造业中开发的实践,精益概念已经作为敏捷方法的部分被应用于软件开发。价值流程图(VSM)试图直观地识别有价值和有浪费的流程步骤,是个关键的精益工具。
M
Microservices
微服务是一种软件架构设计模式,其中复杂的应用程序由独立的小型进程构成,这些进程使用与语言无关的API 进行通信。这些服务规模小,高度分离,专注于完成一个小任务。
N
Non-functional Requirements (NFRs)
系统质量的规范,诸如易用性,设计清晰度,延迟,速度,处理大量用户的能力等,描述了如何轻松或高效地使用某个功能,而不只是它是否存在。这些特性可以使用持续交付反馈环来解决和改善。
NoOps
NoOps
在一个公司中,应用程序运行的系统管理要么是完全由外部一方(如 PaaS 供应商)来处理,要么就是全自动化的。使用 NoOps 旨在尽量减少或不使用内部运维能力和员工。
O
Orchestration Pipeline
在适当的时间调用形成持续交付管道的不同自动化任务的工具或产品。它们通常也记录每个任务的状态和输出,并通过管道可视化特征流。
P
Platform as a Service (PaaS)
云托管的应用程序运行时间通常根据“按需支付”的原则计费。用户提供应用程序代码和有限的配置设置,中间件、数据库等都是提供的运行时的一部分。
Product Owner
开发团队中负责定义、确定优先级和维护未完成功能及其他工作的人或角色。产品负责人在敏捷软件开发方法中很常见,通常代表业务或客户组织。相比在更传统的软件开发过程中的同行,产品负责人需要在敏捷开发流程中扮演更积极的日常角色。
Provisioning
为用户(在持续交付的场景下,通常是开发或测试团队)准备新系统的过程。该系统通常根据需要进行虚拟化和实例化。配置机器以安装操作系统、中间件等操作是由自动化的系统配置管理工具来处理,这些自动化工具还验证所需要的配置是否得到维护。
R
Regression Testing
对端到端系统的测试,以验证应用程序的更改没有对现有功能产生负面影响。
Release Coordination
定义和执行从代码签入到生效的新功能(或功能集)所需的所有操作。在持续交付环境中,这在很大程度上是完全自动化的,并由管道执行。
Release Management
发布管理是管理软件发布从开发阶段到实际软件发布阶段的流程。
Release Orchestration
发布编排是使用诸如XL 发布等工具管理软件发布(从开发阶段到实际软件发布阶段)。
T
Test-Driven Development (TDD)
一种开发实践,在该实践过程中,用于验证代码片段表现的小测试在编写代码前就已经写就。这些测试最初是失败的,但开发人员的目标是接着添加代码使这些测试成功。
U
Unit Testing
代码级(即无需安装完整的端到端系统以运行)测试以验证各个代码段的行为。TDD 广泛使用单元测试以描述和验证预期的行为。
V
Value Stream Mapping
一种过程可视化和改善技术,大量用于精益生产和工程方法中。价值流图用于识别必要的处理步骤,而不是逐渐清除流程中的“浪费”。
Virtualization
一种系统管理方法,用户和应用程序不需要使用物理机器,而是在实际的“真实”硬件上运行的模拟系统。这样的“虚拟机”能够在几秒钟内自动生成、启动、停运、克隆和丢弃,给操作带来了巨大的便利。
W
Waterfall
一种基于分阶段项目方法的软件开发方法,从“需求收集”到“开发”,再到“发布”。如果项目中前面的阶段有延迟,整个过程中靠后的阶段(通常和测试及QA 相关)会因此在时间上受到挤压。
White Box Testing
一种测试或质量保证实践,它通过系统运行时检查系统(内部)表现和状态以验证系统内部功能是否正确。
阅读英文原文: The Complete DevOps Glossary
感谢张婵对本文的策划和审校。
评论