Ci/CD CodeCommit, CodePipeline, CodeBuild Flashcards

1
Q

В чём разница между CodeBuild и CodeDeploy?
Как они связаны?
Какими технологиями обычно представлены вне AWS?

A

AWS предлагает выделять отдельные 2 сервера для
1. сборки и тестирования проекта
- называется Build Server
- AWS CodeBuild
2. доставки проекта на удалённые сервера
- называется Deployment Server
- AWS CodeDeploy

CodePipeline = связать в единую последовательность
сервисы CodeCommit, CodeBuild, CodeDeploy

  • CodeBuild = Jenkins Ci (build, test, lint)
  • CodeDeploy = Jenkins CD (deploy)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Как организована Authorization/Authentication при работе с кодом в CodeCommit?
Какие способы авторизации доступны?

A
  • Авторизация через IAM
  • Аутентификация через IAM (права доступа в IAM Role)

SSH и HTTPS - оба способа доступны в CodeCommit

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

Какие фичи Security есть в CodeCommit (кроме auth через IAM)?

A
  • Приватный Git репозиторий, т.к. код живёт в VPC
  • Encryption (шифрование кода)
    • at rest (в репозитории через KMS)
    • in transit (пушим код по HTTPS или SSH)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какие CLI команды есть в CodeCommit?

A

CodeCommit полностью совместим с обычными git командами для push/pull кода.

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

Что может быть источником кода для CodePipeline (для CodeBuild)?

A
  • CodeCommit
  • ECR (docker image с кодом приложения)
  • S3
  • Bitbucket
  • GitHub
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какой сервис может выполнять сборку и тестирование в рамках CodePipeline?

A
  • CodeBuild
  • Jenkins
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Выполнять деплоймент в рамках CodePipeline могут …

A
  • CodeDeploy
  • Elastic Beanstalk
  • CloudFormation
  • ECS
  • S3
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  • Сервисы CodeCommit, CodeBuild, CodeDeploy могут … IAM права доступа ….
  • Вместо этого сервис … передаёт … от одного сервиса к другому через …
A

НЕ иметь
друг к другу
CodePipeline
промежуточный артефакт (код приложения)
S3

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

В чём может быть причина не работоспособности Ci/CD пайплайна в AWS?

A
  • Именно CodePipeline является активным действующим лицом в Ci/CD.
    Если что-то НЕ получается сделать, то значит CodePipeline имеет НЕ достаточно Policies в своей IAM Service Role.
  • Можно проверить логи и визуальную информацию в CodePipeline AWS Console
  • Можно проверить AWS CloudTrail на предмет failed AWS API вызовов
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Как можно реализовать email alerting в случае провала Ci/CD пайплайна?

A
  • CodePipeline может слать event’ы в EventBridge
  • Например, когда Ci/CD pipeline failed
  • Так мы можем получить email
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Из каких сущностей состоит CodePipeline?
Как они вложены друг в друга?
Как они выполняются: параллельно?

A
  • CodePipeline пайплайн - это последовательность Stages (фаз, этапов, стадий)
  • Каждый Stage состоит из множества Action Groups
  • Каждый Action Group состоит из множества Actions

Actions в рамках своего Action Group могут выполняться параллельно или последовательно.

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

Что может быть источником кода для CodePipeline (для CodeBuild)?

A
  • CodeCommit
  • ECR (docker image с кодом приложения)
  • S3
  • Bitbucket
  • GitHub
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Как определяются инструкции для CodeBuild?

A
  • руками через AWS Console
  • в виде кода buildspec.yaml в корне проекта

buildspec.yaml - это аналог Jenkinsfile (а именно - его Ci части)

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

Как можно передавать артефакт (код, Docker Image) между CodeCommit и CodeBuild? Между CodeBuild и CodeDeploy?

A

Через S3

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

Как CodeBuild связан с VPC? Какие use-cases?

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