CodeDeploy part 1 Flashcards

1
Q

Источниками артефактов для CodeDeploy могут быть …?

A
  • S3 (с версионированием)
  • CodeCommit, Github, Bitbucket (если НЕ нужно билдить)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Target’ами артефактов для CodeDeploy могут быть…?
В каком виде при этом может быть EC2?

A
  • EC2 / On-premise servers
  • Lambda
  • ECS

EC2 может быть одиночный - или ASG, или EC2 Placement Group

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

Какие pre-requisites есть к EC2/On-premise, чтобы развёртывать на них через CodeDeploy?
Как это технически сделать?

A
  • на EC2 был установлен CodeDeploy Agent
  • EC2 instance profile должен иметь IAM права доступа к S3 bucket’у с артефактом

CodeDeploy Agent устанавливается на instance через user data скрипт

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

В чём отличия и сходства CodeDeploy и Beanstalk?

A

Оба умеют деплоить приложения через разные Deployment Strategies.
Beanstalk дополнительно умеет делать provisioning инфраструктуры.

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

Что такое CodeDeploy Repository?
Что такое CodeDeploy Revision?

A
  • CodeDeploy Repository = source, источник, откуда CodeDeploy берёт код (S3, CodeCommit, Github)
  • CodeDeploy Revision- это наш артефакт, bundle, сборка (ZIP файл, JAR файл) определённой версии.
    Разные версии артефактов - это разные CodeDeploy Revisions.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Задача: хранить максимум 2 ревизии приложения на сервере. Какой сервис умеет это делать? Как?
А какой НЕ умеет?
Что такое conserve disk space?

A

CodeDeploy агент это умеет
Он живёт на EC2, стягивает туда артефакты и отвечает за то, сколько их там хранится :max_revision: опция

CodePipeline НЕ может помочь управлять количеством ревизий приложения на EC2

Conserve disk space - экономить место на диске

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

Что такое Application в контексте CodeDeploy?
На что это похоже?
Чем это НЕ является?

A

Application - это сущность сервиса CodeDeploy, которая включает информацию о настройках деплоймента.

То есть в контексте CodeDeploy, Application - это НЕ наше веб-приложение

Похоже на Build Project в контексте CodeBuild

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

Что такое Deployment Group?
Сколько в ней единиц?
Сколько Deployment Groups могут быть подверженные деплойменту одновременно?

A

Deployment Group - это instance (или несколько instance’ов, или Lambda или ECS),
на котором(ых) мы хотим развернуть своё веб-приложение.

Даже если instance один, то в контексте CodeDeploy он всё равно будет называться Deployment Group

Можно иметь несколько Deployment Groups,
на которые CodeDeploy будет доставлять ПАРАЛЛЕЛЬНО

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

Что такое Deployment Configuration?
Как это упрощённо можно назвать?

A

Deployment Configuration - это (упрощённо говоря), количество instance’ов в Deployment Group’е, на которые мы деплоим за раз.

“Deployment Speed”.

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

Файл appspec.yaml имеет секцию hooks.
Какие поля имеют вложенные хуки?
В чём отличие от CodeBuild файла и его phases секции?

Почему устроено НЕ одинаково?

A

Каждый из этих хуков имеет location (где расположен скрипт с командами) и timeout
То есть каждый скрипт содержится в отдельном файле.

А в CodeBuild файле в разделе phases каждая фаза просто имеет поле Commands.

Называется “hooks”, а НЕ “phases” потому, что CodeDeploy команды выполняются НЕ просто последовательно (в отличие от CodeBuild), а в определённые моменты ЖЦ деплоймента.
А расположены в отдельных файлах потому, что CodeDeploy хуки реализованы ИЛИ в виде скриптов, ИЛИ в виде лямбда функций (то есть будет lambda arn указан в appspec.yaml файле)

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