Circleci.Server Container Architecture

本文档概述了在Circleci Server安装中在服务机器上运行的集装箱服务。这是提供服务操作概述,并在服务中断时帮助解决故障排除。下表下方提供了补充说明和一个密钥。

笔记

  • Database migrator services are listed here with a low failure severity as they only run at startup, however:

    如果迁移器服务在启动时,已连接的服务将失败。
  • 通过铂金支持合同,可以外化一些服务(在这里标记*)并设法适合您的要求。外部化提供更高的数据安全性,并允许构建在系统中的冗余。

钥匙

Icon 描述

失败对生产有次要影响 - 没有数据丢失或运作。

失败可能会导致一些工作问题,但不会丢失数据。

Failure can cause loss of data, corruption of jobs/workflows, major loss of functionality.

Containers, Roles, Failure Modes and Startup Dependencies

Container / Image Role 如果失败会发生什么? 失败的严重性 启动依赖项

api-service

Provides a GraphQL API that provides much of the data to render the web frontend.

Many parts of the UI (e.g. Contexts) will fail completely.

postgres.,前端,上下文 - 服务 - 迁移器,contexts-service,金库CCI.

审计日志服务

Persists audit log events to blob storage for long term storage.

Some events may not be recorded.

postgres.,前端

contexts-service

存储并提供加密的上下文。

使用上下文的所有构建都将失败。

postgres.,前端,上下文 - 服务 - 迁移器,金库CCI.

上下文 - 服务 - 迁移器

运行PostgreSQL迁移contexts-service.

只在启动时运行。

postgres.,前端

Cron服务

触发计划的工作流程。

计划的工作流不会运行。

postgres.,前端,Cron-service-migrator

Cron-service-migrator

运行PostgreSQL迁移Cron服务.

只在启动时运行。

postgres.,前端

domain-service

存储并提供有关我们域模型的信息。

Workflows will fail to start and some REST API calls may fail causing500errors in the CircleCI UI. If LDAP authentication is in use, all logins will fail.

postgres.,前端,domain-service-migrator

domain-service-migrator

运行PostgreSQL迁移domain-service.

只在启动时运行。

postgres.,前端

exim

Mail Transfer Agent (MTA) used to send all outbound SMTP.

不会发送电子邮件通知。

没有

federation-service

存储用户身份(LDAP)。

If LDAP authentication is in use, all logins will fail and some REST API calls might fail.

只有在使用中的ldap

postgres.,前端,federations-service-migrator

联合服务迁移器

运行PostgreSQL迁移federations-service.

只在启动时运行。

postgres.,前端

foleserved.

当Circleci服务器在AWS之外运行时,文件存储服务用作S3的替代。如果服务器配置为使用S3,则未使用。存储步骤输出日志,工件,测试结果,缓存和工作空间。

如果不使用S3,构建不会产生输出和某些REST API调用可能会失败。

if不是using S3

没有

前端

Circleci.web app and www-api proxy.

UI和REST API将不可用,Github / Enterprise不会触发作业。金宝博娱乐官网网址运行构建将是可以的,但不会看到更新。

postgres.

蒙古*

Mongo data store.

潜在的总数据丢失。所有运行构建都会失败,UI将无法正常工作。

蒙古db-upgrader

nomad-metrics

查询Nomad Server for Stats并将它们发送到STATSD。

Nomad度量将丢失,但其他一切都应该正常运行。

没有

输出处理器/输出处理

接收作业输出和状态更新,并将它们写入MongoDB。还提供了运行作业的API,以访问缓存,工作区,存储缓存,工作区,工件和测试结果。

所有运行构建都将失败或留在一个无法滥用的不一致状态。步骤输出,测试结果和工件的数据丢失也会有数据丢失。

没有

权限服务

Provides the CircleCI permissions interface.

工作流程将无法启动,并且某些REST API调用可能会失败,导致UI中的500个错误。

postgres.,前端,权限 - 服务 - 迁移器

权限 - 服务 - 迁移器

运行PostgreSQL迁移权限服务

只在启动时运行。

postgres.,前端

picard-dispatcher

Splits a job into tasks and sends them toschedulererto be run.

No jobs will be sent to Nomad, the run queue will increase in size but there should be no meaningful loss of data.

没有

postgres./Postgres-Script-Unhance*

基本的postgres.ql启动容器时创建所需数据库的增强功能。

潜在的总数据丢失。所有运行构建都会失败,UI将无法正常工作。

没有

rabbitmq/rabbitmq-delayed*

运行RabbitMQ服务器。我们的大多数服务使用RabbitMQ进行排队。

潜在的总数据丢失。所有运行构建都会失败,UI将无法正常工作。

没有

outputRunningRedis/redis.*

Redis键/值存储。

从当前运行的工作步骤丢失输出。API呼叫GitHub也可能失败。

没有

schedulerer

发送任务到server-nomadto run. \

No jobs will be sent to Nomad, the run queue will increase in size but there should be no meaningful loss of data.

没有

蒙古db-upgrader/server-mongo-upgrader

用于在Mongo版本升级期间运行任何Mongo转换/升级脚本。

Not required to run all the time. \

没有

NOMAD_SERVER./server-nomad*

Nomad primary service.

No 2.0 build jobs will run.

没有

ready-agent/server-ready-agent

通过复制调用以检查其他容器是否已准备就绪。

只需要启动时。如果启动时无法使用整个系统将失败。

没有

server-usage-stats

Sends the user count to the internal CircleCI “phone home” endpoint.

Circleci不会为您的安装接收使用统计信息,但不会影响操作。

没有

关机 - 钩子投掷器

检查前端容器1.0 Builder关闭请求。如果找到请求,则将关闭1.0构建器。

1.0 Builder生命周期不会得到适当的管理,但工作将继续运行。

没有

slanger

为Circleci应用程序提供实时事件。

Live UI更新将停止,但硬刷新仍将起作用。

没有

克拉夫

This is the statsd forwarding agent that our local services write to and can be configured to forward to an external metrics service.

Metics将停止工作,但工作将继续运行。

没有

tutum/logrotate

Used to manage log rotations for all containers on the services machine.

If this stays down for a long period the Services machine disk will eventually run out of space and other services will fail.

没有

试验结果

解析测试结果文件并存储数据。

There will be no test failure or timing data for jobs, but this will be back-filled once the service is restarted.

没有

contexts-vault/金库CCI.*

Instance of Hashicorp’s Vault – an encryption service that provides key-management, secure storage, and other encryption related services. Used to handle the encryption and key store for thecontexts-service.

contexts-servicewill stop working, and all jobs that usecontexts-servicewill fail.

没有

vm-gc

定期检查陈旧machine和远程Docker实例和请求VM服务remove them.

Old vm-service instances might not be destroyed until this service is restarted.

VM-Service-DB-MIGRATOR

vm-scaler

定期请求VM服务provision more instances for runningmachineand remote Docker jobs.

VM实例machine可能无法配置远程Docker,导致您与这些执行官运行作业的容量。

VM-Service-DB-MIGRATOR

VM服务

Inventory of availableVM服务实例,新实例的配置。

使用的工作machineor remote Docker will fail.

VM-Service-DB-MIGRATOR

VM-Service-DB-MIGRATOR

Used to run database migrations forVM服务.

只在启动时运行。

没有

工作流量导体

坐标并提供有关工作流程的信息。

No new workflows will start, currently running workflows might end up in an inconsistent state, and some REST and GraphQL API requests will fail.

postgres.,前端,工作流导线 - 迁移器

工作流导线 - 迁移器

运行PostgreSQL迁移工作流量导体.

Only runs on startup.

postgres.,前端