DevOps术语汇总

2018/08/07

要实践 DevOps,你需要掌握十八般武艺

A

A/B Testing | A/B 测试

使用 A/B 测试将新功能或某项功能的不同变体推向不同组别的用户,这些功能可通过比较指标和用户行为进行评估。

Acceptance Testing | 验收测试

通常对整个系统进行高级测试,以确定新功能和现有功能的整体质量是否足以让系统投入生产。

Agent | 代理程序

代理程序是安装在特定物理服务器上的程序,用于在该服务器上处理不同进程的执行。

Agile | 敏捷

是 DevOps 的前身;敏捷是一种软件开发方法,更广泛来说,是一种业务方法。敏捷强调短期迭代的规划和开发周期以提供更好的控制以及可预测性,并支持随着项目的发展而不断变化的需求。

ARA (Application Release Automation)| ARA (应用程序发布自动化)

可以在目标环境中自动安装和正确配置给定应用程序版本并随时可用的工具、脚本或产品。

B

Behavior-Driven Development (BDD) | 行为驱动开发(BDD)

一种开发方法,强调软件应该根据应用程序的期望行为并以业务管理人员可读的语法来指定。

Black Box Testing | 黑盒测试

一种测试或质量保证实践,它假设不知道被测系统内部的工作原理,因此尝试验证外部而不是内部行为或状态。

Build Agent

一种用于持续集成的代理程序,可以本地或远程安装,跟持续集成服务器有关。它发送和接收跟处理软件构建有关的消息。

Build Artifact Repository | 构建工件存储库

用于组织具有元数据构造的工件,并允许自动发布和使用这些工件的工具。

Build Automation | 构建自动化

允许将源代码自动编译为可发布的二进制代码的工具或框架。通常包括代码级的单元测试,以确保代码的各个部分按预期运行。

C

Canary Release | 灰度发布(金丝雀发布)

一种上线策略,在该策略中,把新的应用程序版本发布到生产服务器的一小部分上,并严格监控以确定其是否按预期运行。如果一切看起来稳定,那么新版本将推广到整个生产环境。

Configuration Drift | 配置漂移

由于手工的特殊更改(如热修复)没有引入到系统模版中而引起软件和硬件配置与系统模版版本漂移或不一致。

Configuration Management | 配置管理

用于建立和维护系统一致的设置和功能属性的术语。它包括用于 IT 基础设施自动化等系统管理任务的工具。

Continuous Delivery (CD) | 持续交付(CD)

持续交付是一套流程和实践,从根本上清除软件生产过程中的浪费,能更快地交付高质量的功能,并在业务和用户之间建立快速有效的反馈环。

Continuous Integration (CI) 持续集成(CI)

持续集成(CI)是一种开发实践,它要求开发人员每天多次把代码集成到共享存储库中。然后通过自动构建验证每次签入,使得团队能尽早发现问题。

D

Dark Launch | 灰度上线

一种上线策略,其中实现新功能的代码被发布到生产环境的子集,但是不可见或只是部分激活。然而,该代码是在生产环境中运行,用户并不知晓。

Delivery Pipeline | 交付管道

一系列为新应用程序版本实施软件交付过程的编排的、自动化的任务。该管道中的每个步骤旨在提高新版本的置信度,使其能够做出合格 / 不合格的决策。交付管道可以被看作是组织发布流程的优化结果。

DevOps

DevOps(开发和运维)是一个软件开发短语,用于描述开发和 IT 运维之间的敏捷关系。DevOps 的目标是改善在软件开发周期中不同角色之间的沟通、协作和流程,以改善和加速软件交付。

DevOps Intelligence | DevOps 智能

提供公司所需的洞察力,以更高效、更低风险和更好结果的方式交付软件。

F

Functional Testing | 功能测试

进行端到端系统的测试以验证(新)功能。使用可执行规范,通过运行针对应用程序的规范来进行功能测试。

I

Infrastructure as a Service | (IaaS) 基础设施即服务(IaaS)

云托管的虚拟机器通常根据“按需付费”收费。用户对机器有完全的控制,但是需要自己安装和配置所需的中间件和应用程序。

Infrastructure as Code 基础设施即代码(IaC)

一种系统配置管理技术,其中以完全自动化的形式指定机器、网络设备、操作系统、中间件等。规范或“蓝图”被认为是代码,由供应工具执行,保存在版本控制中,通常遵循用于应用程序代码开发的相同实践。

L

Lean | 精益

“精益制造”或“精益生产”是一种方式或方法,旨在通过专注于保护价值来减少生产过程中的浪费。它很大程度上来源于丰田公司在汽车制造业中开发的实践,精益概念已经作为敏捷方法的部分被应用于软件开发。价值流程图(VSM)试图直观地识别有价值和有浪费的流程步骤,是个关键的精益工具。

M

Microservice | 微服务

微服务是一种软件架构设计模式,其中复杂的应用程序由独立的小型进程构成,这些进程使用与语言无关的 API 进行通信。这些服务规模小,高度分离,专注于完成一个小任务。

N

Non-functional Requirements (NFRs) 非功能性需求(NFRs)

系统质量的规范,诸如易用性,设计清晰度,延迟,速度,处理大量用户的能力等,描述了如何轻松或高效地使用某个功能,而不只是它是否存在。这些特性可以使用持续交付反馈环来解决和改善。

NoOps

NoOps指在一个公司中,应用程序运行的系统管理要么是完全由外部一方(如 PaaS 供应商)来处理,要么就是全自动化的。使用 NoOps 旨在尽量减少或不使用内部运维能力和员工。

O

Orchestration Pipeline | 编排管道

在适当的时间调用形成持续交付管道的不同自动化任务的工具或产品。它们通常也记录每个任务的状态和输出,并通过管道可视化特征流。

P

Platform as a Service (PaaS) | 平台即服务(PaaS)

云托管的应用程序运行时间通常根据“按需支付”的原则计费。用户提供应用程序代码和有限的配置设置,中间件、数据库等都是提供的运行时的一部分。

Product Owner | 产品负责人

开发团队中负责定义、确定优先级和维护未完成功能及其他工作的人或角色。产品负责人在敏捷软件开发方法中很常见,通常代表业务或客户组织。相比在更传统的软件开发过程中的同行,产品负责人需要在敏捷开发流程中扮演更积极的日常角色。

Provisioning | 服务开通

为用户(在持续交付的场景下,通常是开发或测试团队)准备新系统的过程。该系统通常根据需要进行虚拟化和实例化。配置机器以安装操作系统、中间件等操作是由自动化的系统配置管理工具来处理,这些自动化工具还验证所需要的配置是否得到维护。

R

Regression Testing | 回归测试

对端到端系统的测试,以验证应用程序的更改没有对现有功能产生负面影响。

Release Coordination | 发布协调

定义和执行从代码签入到生效的新功能(或功能集)所需的所有操作。在持续交付环境中,发布协调在很大程度上是完全自动化的,并由管道执行。

Release Management | 发布管理

发布管理是管理软件发布从开发阶段到实际软件发布阶段的流程。

Release Orchestration | 发布编排

发布编排是使用诸如 XL 发布等工具管理软件发布(从开发阶段到实际软件发布阶段)。

T

Test-Driven Development (TDD) | 测试驱动开发(TDD)

一种开发实践,在该实践过程中,用于验证代码片段表现的小测试在编写代码前就已经写就。这些测试最初是失败的,但开发人员的目标是接着添加代码使这些测试成功。

U

Unit Testing | 单元测试

代码级(即无需安装完整的端到端系统以运行)测试以验证各个代码段的行为。TDD 广泛使用单元测试以描述和验证预期的行为。

V

Value Stream Mapping | 价值流程图

一种过程可视化和改善技术,大量用于精益生产和工程方法中。价值流图用于识别必要的处理步骤,而不是逐渐清除流程中的“浪费”。

Virtualization | 虚拟化

一种系统管理方法,用户和应用程序不需要使用物理机器,而是在实际的“真实”硬件上运行的模拟系统。这样的“虚拟机”能够在几秒钟内自动生成、启动、停运、克隆和丢弃,给操作带来了巨大的便利。

W

Waterfall | 瀑布式(开发)

一种基于分阶段项目方法的软件开发方法,从“需求收集”到“开发”,再到“发布”。如果项目中前面的阶段有延迟,整个过程中靠后的阶段(通常和测试及 QA 相关)会因此在时间上受到挤压。

White Box Testing |白盒测试

一种测试或质量保证实践,它通过系统运行时检查系统(内部)表现和状态以验证系统内部功能是否正确。

参考原文:https://xebialabs.com/glossary

DevOps 工具周期表

DevOps 工具周期表是由 XebiaLabs 发布的备受业界认可的 DevOps 工具集。DevOps 工具周期表是免费的,今年已经更新到第三版,3.0 版本包含了 120 个 DevOps 工具,经过全新设计,添加了 Analytics 和 AIOps 等新的类别,紧跟不断扩展的 DevOps 工具和技术市场。

此外,用户可以在周期表中选择一个工具,并使用 XebiaLabs 的集成 DevOps Diagram Generator 立即在软件交付管道中将其可视化。DevOps 管道图可以轻松定制,下载,打印和共享。

现在,DevOps 工具更新越来越快,IT 专业人员很难及时了解哪些工具最有效地帮助他们更快地交付高质量的软件。DevOps 工具周期表很好的囊括了市场上现有的各种 DevOps 工具,以一种清晰的交互式格式呈现(https://xebialabs.com/periodic-table-of-devops-tools/),在网页中点击任何一个元素都能跳转到这个工具具体信息的页面;同时这一工具是开源还是需要付费,DevOps 工具周期表上都已做了标注,为你提供了详细的专业参考。

关于 XebiaLabs:XebiaLabs 开发企业级持续交付和 DevOps 软件,为公司提供更快,更低风险地交付软件所需的可视性,自动化和控制。

具体了解DevOps工具周期表:

https://xebialabs.com/periodic-table-of-devops-tools/

DevOps 技能图谱

图片来源于 GitHub:

https://github.com/lucassha/DevOps-Student-Roadmap

原始图片来源于:

https://github.com/kamranahmedse/developer-roadmap/blob/master/images/devops.png

要实践 DevOps,你需要掌握很多概念和工具:

  • 根据原图作者,你应该学点编程语言。Pick 哪种编程语言不重要,重要的是掌握一点编程知识。推荐编程语言:Python,Ruby, Node.JS, Go, Rust, C/C++;
  • 理解各种 OS 概念,包括:进程管理,线程和并发,Sockets,I/O 管理,可视化,内存/存储,文件系统;
  • 学习管理服务器。对操作系统进行管理,尤其是 Linux 发行版。如果对 Linux 了解不多,可以选择 Ubuntu;
  • 掌握终端相关知识:脚本,命令,文本编辑器等等;
  • 了解网络和安全相关知识:HTTP,HTTPS,FTP,SSL/TLS;
  • 了解和安装代理,负载均衡,防火墙,Web 服务器(Apache,Nginx,Tomcat,IIS,Caddy);
  • 了解和使用容器 (Docker,rkt,LXC);
  • 了解各种云计算服务 (Cloud Foundry,Rackspace,AWS,Heroku,Azure,GCP);
  • 自动化工具/配置管理 (Terraform,AWS Cloud Formation,SaltStack,Chef,Ansible,Puppet,Powershell);
  • CI/CD 工具(Jenkins,Travis,CircleCI,Drone,Bamboo);
  • 监控和告警(应用监控:AppDynamics,New Relic;基础设施监控:Nagios,Prometheus,Zabbix,Datadog);
  • 日志管理和分析(ELK);
  • 容器/集群编排和管理工具(Kubernetes,Mesos,Docker Swarm,Nomad);
  • 出故障后要有进行进行总结分析的习惯。

(转载本站文章请注明作者和出处 zhanghaichang-think in java

Post Directory