DevOps工程师和开发人员需要了解有关DevOps、CI/CD和云的这些术语。
你的DevOps工程师在说什么?什么是Kubernetes集群,为什么要使用Terraform清单配置服务器?为什么要关心Zabbix代理?您只是希望完成工作并按时启动项目!
然而,在21世纪快节奏的商业世界中,为了生存和成功,企业必须能够比其他竞争对手更快更好地适应不断变化的市场条件和客户要求。从这个角度来看,理解DevOps术语对每个企业家来说都是必不可少的。
DevOps词汇表
如此说来,ITSvit组成了一个庞大但到目前为止还没有穷尽的DevOps术语列表,用简单的话来解释。该列表将随着时间的推移而扩展,因此请随时将此页面添加为书签,并要求对我们遗漏的任何术语进行解释。这些术语没有按字母顺序给出。
A
Agent代理——服务器-代理程序的一部分,在某些实例或容器中运行,为集中式服务器应用程序(如Zabbix监控代理)提供输入
敏捷软件开发——一种基于短迭代开发冲刺的软件交付方法,每个冲刺都应该产生一个可操作的产品。这样可以在需要时轻松调整项目要求,并增强开发团队的创造力和灵活性。
Artifact工件——软件交付管道中的任何过程描述,可以参考。最普遍的工件是用例、类图、UML模型和设计文档。
AmazonAWS—AmazonWebServices—根据年DevOps报告,最受欢迎的云服务提供商(CSP),为各种规模的企业提供各种云计算服务。
Ansible—用于各种IT任务的自动化引擎,例如云基础设施供应和配置。Ansible是一个开源工具,它通过SSH连接、PowerShell脚本或各种API与多个软件模块进行交互。
API—应用程序编程接口,一组明确规定的用于各种软件模块之间通信的规则。
Apache—最受欢迎的开源Web服务器之一(仅次于NGINX),一种用于启动网站和应用程序的跨平台工具。
ALB—应用程序负载平衡—一种AWS服务,用于在多个可用区中的多个应用程序实例之间拆分传入流量,以确保您的应用程序顺利运行。
ASG—AutoScalingGroup—一种AWS服务,用于将多个EC2实例组合在逻辑组中,以简化基础设施设计和管理;该组由添加或删除以满足工作负载需求的相同实例组成。
AWSCLI—AWS命令行界面—一种用于从命令行终端管理各种AWS服务和产品的AWS工具。
Applicationreleaseautomation应用程序发布自动化或ARA——一种通过自动化CI/CD管道以尽可能少的人工操作将新代码部署到生产环境的通用方法
AmazonAurora—一项AWS服务,提供基于云的关系数据库,成为AWS历史上增长最快的服务。这个数据库比MySQL快5倍,比PostgreSQL快倍,更不用说它是许多AWS产品和服务的默认数据库。
Asterisk—用于通过Internet进行电话呼叫的开源平台。它是最灵活的解决方案之一,可以通过API与多个软件工具交互,实现多功能和高效的业务间通信。
B
堡垒主机——用于访问私有网络和抵御黑客攻击的特殊服务器。通常托管单个应用程序(如代理服务器)和用于访问和管理底层云基础架构的SSH密钥。
分支——分支是GitHub或其他代码版本控制系统上项目代码的单独副本,允许许多开发人员同时处理项目。
Bucket—AmazonS(简单存储服务)中的一个逻辑单元,用于存储多种类型的对象(主要是各种数据和描述它的元数据)。
备份——复制重要数据以提供备用副本并实现按需恢复的过程;以及备份过程的结果,即包含文件的存档。
后端——用户无法直接访问的程序引擎。该引擎接收来自用户界面的请求并执行某些操作,包括将数据加载和保存到数据库等。
构建——程序代码的特定版本,通常称为新功能开发阶段。最重要的构建是Canary构建,其中测试新代码是否符合生产中现有的应用程序功能。
Bare-metal裸机——软件安装在物理设备(硬盘)上的情况,省略了虚拟化层。
C
Canary版本——登台服务器,与生产环境完全相同。新的软件版本在那里运行,以确保在将现有功能和代码推广到整个用户群之前符合现有的功能和代码。
云计算——一种通过Internet访问虚拟服务器网络以收集、处理和存储数据、运行应用程序和管理其他资源的主导IT范例。与为此目的使用专用服务器或个人计算机相反。
持续交付——一组软件开发和运营实践、工作流和工具,旨在确保软件交付生命周期的所有日常操作都是自动化的(构建、测试、登台、监控、警报、日志记录、备份、恢复、负载平衡等)。)唯一的例外是手动启动将就绪代码部署到生产环境。这是DevOps的核心实践,以及持续集成和基础设施即代码。
持续部署——持续交付的一个特例,新代码部署到生产环境也是自动完成的。但是,这在某些情况下是不合适的,并且很大程度上取决于您的产品和业务模型的特定要求。
CI/CD——持续集成/持续交付——现代DevOps文化的基础。CI确保新代码每天多次提交到集中代码存储库,以通过自动化单元测试并启动新软件构建。如果测试成功,CD会确保新的应用程序版本自动推送到登台和生产环境,而不会造成任何服务停机。CI/CD工作流程可确保尽早发现并修复所有错误,并且产品始终可用。
集群——一组互连的实例(裸机服务器、虚拟机、KubernetesPod等),它们被视为单个实体,以实现负载平衡、自动扩展和高可用性。
提交——将代码推送到Git存储库并推送生成的代码片段的过程。
Cron作业——一个计划的进程,将在特定时间在服务器上运行特定脚本。
容器——一个软件信封,将应用程序和运行它所需的所有资源与其运行的基础设施分开。由于使用Docker容器,任何应用程序都可以在任何带有Docker的操作系统上运行,并且单个容器的任何问题都不会影响系统的其余部分。
CloudWatch—AmazonCloudWatch是默认的Amazon服务,用于监控在其上运行的基础设施和应用程序。CloudWatch有助于监控和记录事件、配置智能警报和有效管理系统资源。
Configurationdrift配置漂移——独立更新各种服务器的不良结果,导致不同的软件配置和状态。最好通过将不可变基础架构部署为代码的做法来删除。
配置管理——借助Kubernetes、Ansible、Puppet、Chef、Saltstack等自动化配置管理工具设置和维护所需软件生态系统参数的过程。
D
DevOps—软件交付方法,以及确保IT运营可靠自动化并不断提高质量所需的一组实践、工作流和工具。
暗启动——在不通知用户新的可用功能的情况下将代码发布到生产环境的做法。代码在生产中运行以进行最后一轮测试,然后宣布发布新功能,而该功能本身已经可用。
Docker——一个用于构建、交付和运行应用容器的开源平台。Docker是现代云计算的基础,因为它允许以最高效率利用云资源,为构建云基础设施提供无处不在的层。
Dockerfile——Docker容器构建过程的文本描述,包含所有需要的命令。Dockerfiles允许轻松高效地配置和管理容器的创建和启动。
DockerSwarm—由Docker开发的容器编排引擎。它是一个内置的Docker容器集群和调度工具,能够同时运行数千个容器。不幸的是,它无法拥有与Kubernetes相同的功能,并且从年年中开始完全停止使用。
Deployment——软件交付生命周期的一个阶段,集中在打包新的软件代码、将其交付给客户并更新正在运行的应用程序,最好不要中断最终用户体验。
Django框架——一个面向简洁设计、快速开发和高性能应用程序的高级Python框架。已在Web开发和大数据处理中得到广泛采用。
Datadog—一种高效的云监控服务,允许使用基于SaaS的平台分析任何规模的任何基础设施、数据库或应用程序中的流程。
E
Environment——在软件生命周期的各个阶段(开发、测试、登台、生产)运行软件所需的所有服务器资源(操作系统、库、API、工具和框架等)。
ElasticSearch——一个基于ApacheLucene的RESTful分布式数据搜索和分析引擎。作为Elastic堆栈的核心,Elasticsearch允许存储和处理来自多个云监控和日志工具的数据。
Envoy—用于处理微服务之间流量的重型C++代理。
EC2—AmazonElasticComputeCloud—AmazonWebServices的核心产品,为在云中运行应用程序提供多种类型的虚拟服务器。
EKS—适用于Kubernetes的AmazonElasticComputerService—一项托管的Amazon服务,允许任何人在AWS基础设施上部署和运行Kubernetes,而无需深入了解并自行配置集群。
F
FluentD—一个用Ruby编写的开源数据收集和处理工具。它允许来自各种工具(如ElasticSearch)的输入,并为配置了多个插件的各种仪表板提供输出。
Fargate—AmazonFargate是一项Amazon服务,用于在EKS等托管基础设施上运行Docker容器,而无需进行任何配置。它在无服务器计算计费方案下工作——您指定需要完成的工作并为消耗的资源付费,无需任何手动集群配置。
Fail-fast——快速测试想法以确保快速反馈的软件设计策略。应用反馈后,重复实验直到获得满意的结果。
G
Git——分布式代码版本控制系统。每个使用Git的开发人员都可以访问项目代码的完整副本和更改历史记录,以实现团队内的协作。
GitHub——最流行的基于Web的代码托管,运行所有Git功能并添加自己的功能。GitHub是开源和专有软件开发的核心。
GitLab——一个基于Web的开源Git门户,针对DevOps性能进行了调整,因为它内置了对GitlabCI等CI/CD工具的支持。
GitlabCI—Gitlab的CI/CD运行器,它允许开发人员在每次提交后自动构建他们的代码。
H
Helm——在Kubernetes上运行的应用程序管理器。该工具允许通过方便的Helm图表大规模管理微服务,并确保复杂的Kubernetes基础设施的平稳运行。
I
Infrastructure基础设施——运行应用程序以及收集、管理和存储数据所需的硬件、软件和流程的整体组合。
IaC—基础设施即代码—DevOps的基本原则之一。这意味着基础设施配置是使用机器可读的声明性文件完成的,而不是手动或使用交互式工具。这些文件(如Kubernetes或Terraform清单)可以存储在GitHub存储库中,与代码一样进行调整和版本化,从而提供基础设施配置的高效自动化。
IaaS—基础设施即服务,一种IT管理模型,其中计算资源和运行它们所需的服务作为服务提供,以支持各种平台和应用程序的运行。
Image——Docker映像是容器的不可变快照,包括有关如何为应用程序构建工作Docker容器的说明。
InfluxDB—一个用于处理时间序列事件的开源数据库。它是用Go编写的,用于基础设施监控、高可用性数据存储和实时分析。它最适用于Prometheus和Grafana等DevOps工具。
Instance实例——简而言之,这是您运行应用程序的虚拟机。更广泛地说,这是运行应用程序所需的一组资源(例如Docker容器)。
I/OthroughputI/O吞吐量——每秒输入/输出操作的数量,网络或驱动器的数据传输能力的特征。
Ingresscontroller入口控制器——用于在Kubernetespod中提供负载平衡的软件模块。
J
Jenkins—一个开源Java服务器,支持开箱即用的软件交付自动化。
Jenkins工作——Jenkins中的一个过程,需要构建代码、运行单元测试、生成代码质量指标、将新的应用程序版本部署到生产环境等。
K
Kubernetes——谷歌的开源容器管理平台。Kubernetes和Docker是在云中运行现代工作负载的支柱。
Kibana—Elastic堆栈的一部分,负责数据可视化和导航ELK集群。
L
Logstash—Elastic堆栈的一部分,负责服务器端数据收集、处理和传输到存储。Logstash对于构建云监控解决方案至关重要。
Leadtime提前期——将新代码批次从提交转移到发布所需的时间。
M
微服务——软件架构(SOA)中面向服务的方法的一个示例,将单体应用程序拆分为一组松散耦合的服务,负责特定方面的操作。这些细粒度的服务通过轻量级协议和API进行交互,以提供产品的灵活性和可扩展性。
MongoDB—最好和最受欢迎的开源NoSQL数据库之一,专门用于以库的形式存储各种类型的文档,而不是在具有列和行的表中。这意味着存储的数据可以轻松调整,甚至数据库本身的结构也非常灵活,这对于大数据分析项目非常有利,在这些项目中,在不同的时间段都有多种数据类型的处理。
MTTR—平均恢复时间—故障系统组件重新开始运行的平均预期时间;故障恢复场景、系统压力测试和性能检查的主要参数。
N
节点——Kubernetes集群中的物理机或虚拟机,用于托管运行Docker容器的pod。
Nodepool节点池—Kubernetes节点池是一组集群点,将具有相同配置的机器联合起来,本质上可以将其视为一个实体并进行管理。
Nexus—Sonatype的发布控制平台,专为组合来自多个开源模块的输入而构建,以确保快速、安全和高效的软件交付生命周期。
Nginx——当今最流行的网络服务器。负载平衡、反向缓存和代理的内置功能使其成为许多用例的绝佳选择。
○
Orchestration编排——在SOA、虚拟化、环境供应的上下文中自动化IT任务(特别是容器管理和基础设施配置)的实践。简而言之,它是一个使用预定义脚本执行预定义任务的过程,该脚本由Terraform等交互式工具(专为配置编排目的而构建)执行。
开源——软件交付范式,版权所有者授予用户访问应用程序源代码的权限,以及出于任何目标阅读、调整和分发给任何人的权利。
OpenStack——一个用于构建本地云基础设施的开源平台。
OpenShift——由RedHat开发的企业级容器管理平台,适用于在本地云基础设施上运行的Kubernetes。
P
PaaS—平台即服务,当开发人员获得开发软件所需的所有库、工具和服务时的软件交付模型,所有底层基础设施都由提供服务的平台处理。
Prometheus——一个开源的云监控解决方案,具有强大的查询语言、时序数据库、维度数据模型和智能告警能力。
供应——为用户提供新环境的过程,主要是为开发人员提供的构建和测试环境。随着资源的虚拟化,所需的操作系统和中间件通过Terraform和Kubernetes等配置编排工具进行配置和维护。
Python—一种解释型高级编程语言。由于其效率和速度,Python现在被广泛用于从网站开发到大数据分析的任务。
Pod—一个基本的Kubernetes结构单元,一组部署到单个主机的Docker容器。Playbook—Ansibleplaybook是基础设施部署的说明,包含有关执行一系列命令以执行特定任务的详细指南。
ProxMox—一个基于Debian的开源平台,用于部署和管理虚拟机。
生产环境——目标受众使用软件产品或服务的环境。
R
RDS—AWS关系数据库服务,一种受益于AWS服务的分布式特性的云数据库。
Rollingupdate滚动更新——一个应用程序的平滑更新过程,没有任何停机时间,逐个实例执行。它使用Kubernetes来确保不间断的应用程序可用性和积极的用户体验。
回滚——手动或自动恢复以前保存的程序或数据库状态。
回归测试——对更新的产品版本进行端到端测试,以确保最新版本不会对已经可用的功能产生负面影响。
RabbitMQ—消息代理,一种用于从您的应用程序收集消息并存储它们直到操作需要它们的软件。
S
源代码控制——用于存储、管理和跟踪源代码更改的系统。最受欢迎的是GitHub、GitLab和BitBucket。
S—AmazonSimpleStorageService—一种云计算服务,用于存储应用程序稳定运行所需的任何数据对象。
快照—AmazonEBS快照是用于创建EC2实例内容的静态副本以用于备份和恢复的命令。
Stagingenvironment暂存环境——生产环境的受控副本,尽可能地与它相似。这允许在发布到生产之前测试新的软件版本以发现错误。
T
测试自动化——使用特定软件针对单元测试测试新软件版本并将实际测试结果与预测结果进行比较的过程。
技术债务-一种概念,即纠正用于获得快速结果的简单代码所需的大量开发人员工作,而不是花时间设计和实施最佳解决方案。
U
单元测试——CI/CD的基础,单元测试是在构建应用程序之前针对自动化测试代码库对应用程序代码进行小块测试的做法,以最大限度地减少发现和修复错误所需的时间,从而缩短上市时间结果是产品。
V
Virtualmachine——云计算系统的基本单元,模拟在主管下运行的物理服务器。
VPCpeering——AWSVPC是一种在逻辑上隔离一定数量的公共AWS云以创建虚拟私有云的服务。AWSVPC对等允许在需要时组合多个此类云的资源。
Vault—一种Hashicorp产品,用于安全地存储SSH密钥、令牌、密码、API密钥和Kubernetes基础设施的其他重要元素等秘密。
Z
Zabbix—一种开源云基础设施监控服务,用于跟踪各种网络资源和服务的状态。由为分布式系统启用智能警报的服务器和代理组成。
ITSvit关于个DevOps术语的最终想法
上面的DevOps术语列表绝不是完整或全面的。我们会不时更新它,并感谢您提出问题。如果您需要更多解释-请在下面的评论中留下您的要求!