---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://sourcecraft.dev/portal/docs/en/sourcecraft/concepts/workers.md
  - https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/workers.md
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt

# Воркеры CI/CD SourceCraft

_Воркер_ — это виртуальная машина, физический сервер или serverless-контейнер, на которых выполняются CI/CD-процессы.

Все [кубики](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#cubes) одного [задания](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#tasks) запускаются на одном и том же воркере.

Поддерживаются следующие типы воркеров:
* [Облачные воркеры](#cloud-workers)
* [Serverless-воркеры](#serverless-workers)
* [Пользовательские (self-hosted) воркеры](#self-hosted-workers)

### Облачные воркеры {#cloud-workers}

_Облачные воркеры_ — виртуальные машины в облаке, предоставляемые SourceCraft. Являются ресурсом для выполнения CI/CD-процессов по умолчанию.

Конфигурация вычислительных ресурсов облачных воркеров: 4 vCPU, 8 ГБ RAM. {#cloud-worker-resources}

### Serverless-воркеры {#serverless-workers}

_Serverless-воркеры_ — бессерверные контейнеры в облаке, предоставляемые SourceCraft. По сравнению с облачными воркерами, serverless-воркеры запускаются практически мгновенно, поскольку не тратят время на загрузку виртуальной машины.

Ограничения:
* Для Docker-кубиков поддерживается только реестр [Yandex Container Registry](https://yandex.cloud/ru/docs/container-registry/).
* Внутри кубика нельзя запускать `docker` и `docker-compose`.
* В одном задании может быть не более 9 уникальных пользовательских Docker-образов.

Чтобы запустить CI/CD-процесс на serverless-воркере, в параметрах [рабочего процесса](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#workflows) (`workflow`) или [задания](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#tasks) (`task`) укажите `runs_on: serverless`.

Если в `task` не указан параметр `runs_on`, по умолчанию будет выставлен параметр из `workflow:runs_on`.

#### Пример запуска всего рабочего процесса на serverless-воркере {#serverless-workflow-example}

```yaml
workflows:
  workflow-in-serverless-mode:
    runs_on: serverless
  
    tasks:
      - name: task1-in-serverless-mode
        cubes:
          - name: hello
            script:
              - echo "hello from serverless"

      - name: task2-in-serverless-mode
        cubes:
          - name: hello
            script:
              - echo "hello from serverless again"
```

#### Пример запуска отдельного задания на serverless-воркере {#serverless-task-example}

```yaml
workflows:
  workflow1:
  
    tasks:
      - name: task1-in-compute-mode
        cubes:
          - name: hello
            script:
              - echo "hello from compute"

      - name: task2-in-serverless-mode
        runs_on: serverless
        cubes:
          - name: hello
            script:
              - echo "hello from serverless"
```

### Пользовательские (self-hosted) воркеры {#self-hosted-workers}

<!-- source: ru/_includes/sourcecraft/ci-cd/self-hosted-intro.md -->
_Пользовательские (self-hosted) воркеры_ — личные серверы пользователей, как виртуальные, так и физические, на которых выполняются CI/CD-процессы. В этом случае для процессов будет доступно окружение пользовательского сервера.

На пользовательские воркеры не действуют ограничения на [объем вычислительных ресурсов](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/workers.md#cloud-worker-resources), а также не расходуется [квота на суммарное время работы CI/CD-процессов](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/limits.md#ci-cd-quotas).
<!-- endsource: ru/_includes/sourcecraft/ci-cd/self-hosted-intro.md -->

Пользовательские воркеры могут запускать задания напрямую на сервере или в [кластере Kubernetes](https://yandex.cloud/ru/docs/glossary/containerization#kubernetes). В режиме Kubernetes каждое задание выполняется в отдельном [поде](https://kubernetes.io/docs/concepts/workloads/pods/) из заранее подготовленного пула.

Подробнее на страницах:
* [Настроить пользовательский (self-hosted) воркер для SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/self-hosted-worker.md)
* [Настроить выполнение заданий CI/CD SourceCraft в кластере Kubernetes](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/self-hosted-worker-kubernetes.md)
* [Развертывание пользовательского (self-hosted) воркера SourceCraft на виртуальной машине Yandex Compute Cloud](https://sourcecraft.dev/portal/docs/ru/sourcecraft/tutorials/self-hosted-worker-sourcecraft.md)

<!-- source: ru/_includes/sourcecraft/ci-cd/how-to-run-on-self-hosted.md -->
Чтобы запустить CI/CD-процесс на пользовательском воркере, в параметрах [рабочего процесса](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#workflows) (`workflow`) или [задания](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#tasks) (`task`) укажите `runs_on: self-hosted`.

Если в `task` не указан параметр `runs_on`, по умолчанию будет выставлен параметр из `workflow:runs_on`.
<!-- endsource: ru/_includes/sourcecraft/ci-cd/how-to-run-on-self-hosted.md -->

#### Пример запуска всего рабочего процесса на пользовательском воркере {#self-hosted-workflow-example}

<!-- source: ru/_includes/sourcecraft/ci-cd/config-self-hosted-ci.md -->
```yaml
workflows:
  my-awesome-workflow:
    runs_on: self-hosted
    
    tasks:
      - name: self-hosted-task
        cubes:
          - name: hello
            script:
              - echo "hello from self-hosted"

      - name: self-hosted-go-builder-task
        runs_on: [self-hosted, go-builder]
        cubes:
          - name: hello
            script:
              - echo "hello from self-hosted go builder"
```

В этом случае задания из рабочего процесса `my-awesome-workflow`, если у них не переопределен параметр `runs_on`, по умолчанию будут выполняться на любом из ваших пользовательских воркеров. А задание `self-hosted-go-builder-task` будет выполнено только на пользовательском воркере, которому при инициализации была присвоена метка `go-builder`.
<!-- endsource: ru/_includes/sourcecraft/ci-cd/config-self-hosted-ci.md -->

[Подробнее о метках воркера](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/self-hosted-tags.md)
