CodeBuild part 2 Flashcards

1
Q

Автоматический запуск CodeBuild
Когда он происходит, если код в CodeCommit?
С помощью каких сервисов и в каком порядке он устроен?

А что если код в GitHub?

A

Когда developer мержит/пушит код в ветку.

1) CodeCommit выпускает новый event в EventBridge
2) EventBridge отлавливает этот event и запускает CodeBuild
3) CodeBuild стягивает новую версию кода
4) CodeBuild выполняет testing и quality checks
5) CodeBuild добавляет комментарий в code review

Вместо первого пункта (выпуск нового event’а в EventBridge), Github триггернёт CodeBuild через WebHook

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Как отладить buildspec.yaml?
Как технически это реализовать?

Как buildspec.yaml НЕВОЗМОЖНО отладить?
Как можно, но НЕ нужно отлаживать buildspec.yaml?

A

✅ Запустить CodeBuild агента на локальном компьютере → выполнить buildspec.yaml
Агент скачивается из ECR в виде Docker Image и запускается на локали.

❌ НЕЛЬЗЯ выполнить SSH вход на CodeBuild docker container (как на RDS instance)
❗️ Использовать LocalStack для отладки buildspec.yaml - это overkill.
LocalStack - технология, которая позволяет локально отлаживать большинство сервисов AWS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Где в сети по-умолчанию развёрнут CodeBuild контейнер?
Как это можно изменить?
Для чего?

A
  • По-умолчанию CodeBuild контейнеры развёрнуты ВНЕ VPC
  • Если нужно дать CodeBuild’у доступ к ресурсам в VPC, то можно указать для CodeBuild
    • VPC ID
    • Subnet
    • Security Groups

ℹ️ Use Case: интеграционные тесты, реализованные в CodeBuild test фазе

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Service Role
Что это такое в контексте Ci/CD Developer Tools?
Для чего она нужна? Что она включает?
Какие сервисы могут в ней нуждаться?

A

CodeBuild или CodePipeline может выступать действующим лицом.
И нуждаться в IAM правах для
- скачивания кода из CodeCommit
- чтения параметров из SSM Parameter Store
- загрузки артефактов в S3 бакет
- писать логи в CloudWatch Logs
Тогда CodeBuild должен иметь Service Role с соответствующими правами.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Проблема: долгая BUILD фаза
В чём может быть причина?
Как решать проблему?

A

Зависимости могут долго устанавливаться во время BUILD фазы.
Причина: долго стягиваются из удалённого Ivy / Maven репозитория

Решение
Можно “закэшировать” dependencies в S3

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Проблема: долгая DEPLOY фаза
В чём может быть причина?
Как решать проблему?

A

Причина может быть в том, что DEPLOY фаза включает в себя
- скачивание исходного кода на сервер
- установку зависимостей на сервер

Решение
Делать установку зависимостей во время фазы BUILD, а НЕ во время фазы DEPLOY

How well did you know this?
1
Not at all
2
3
4
5
Perfectly