CodeDeploy part 2 Flashcards

1
Q

CodeDeploy
Какие сервисы нужны для реализации Alerting’а?
- Как организовать Alerting в email?
- Как организовать Alerting в Slack?

A

После выполнения Deployment’а
можно автоматически отправить сообщение в SNS или запустить Lambda.

  • Событие (deployment’а) можно отловить в сервисе CloudWatch Events
  • Тогда CloudWatch Events триггернёт SNS или Lambda
    • SNS может отправить email
    • Lambda может написать в Slack
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

CodeDeploy
Для EC2 / On-premise
Какие есть стратегии деплоймента?
Что можно в них настроить?
Через какие сервисы они реализованы?
Что такое Deployment Configuration?

A
  • IN_PLACE (с Load Balancer’ом или без него)
    • Все за раз AllAtOnce
    • По одному OneAtATime
    • Половину из них HalfAtATime
  • BLUE_GREEN (обязательно с Load Balancer’ом)
    • Используем Load Balancer
    • Переключаемся между старой AutoScaling Group и новой
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Последовательность CodeDeploy Hooks для EC2 instance (IN_PLACE)?

A
  • App StopDownload BundleInstallApp StartValidateService
  • BlockTraffic и AllowTraffic появляются до и после, если есть LoadBalancer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Последовательность CodeDeploy Hooks для EC2 instance (BLUE_GREEN)?

A
  • Хуки у тела те же, что и для EC2 (IN_PLACE)
  • Сначала тело, затем AllowTraffic для v2, затем BlockTraffic для v1
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

В форме чего технически реализуют CodeDeploy хуки?
Для EC2, Lambda, ECS

A
  • для EC2 (и On-Premise) реализуют в форме скриптов
  • для ECS и Lambda реализуют в форме Лямбда функций
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

CodeDeploy
для EC2 => BLUE_GREEN deployment может быть
- manual
- automatic
В чём разница? Как устроен каждый вариант?

При этом можно указать BlueInstanceTermination Option
- Action Terminate
- Action Keep Alive
В чём разница? Как устроен каждый вариант?

A
  • Manual Mode (вручную повесить тэги на EC2 instance’ы, чтобы ELB мог отличать новые от старых)
  • Automatic Mode (ELB будет иметь новую и старую ASG)
  • Action Terminate (1h по-умолчанию, 2 days максимум)
  • Action Keep Alive (дерегистрировать синие EC2 instance’ы, но НЕ удалять - дорогая опция)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Какие стратегии деплоймента есть для Lambda / ECS?
Как они устроены?

A
  • Linear - постепенно смещать трафик по 10% в минуту
  • Canary - сместить 10% трафика на 5 минут, а затем - оставшиеся 90%
  • AllAtOnce - самый быстрый и опасный
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как поэтапно происходит Ci/CD для Лямбда функции.
Начиная от “разработчик пушит изменения в CodeCommit с исходным кодом” до “новая версия Лямбды доставлена”

Использовать
- appspec.yaml
- CodeCommit
- EventBridge
- CodeDeploy
- CodeBuild
- S3
- Lambda version 1, version 2

A

1) разработчик пушит изменения в CodeCommit с исходным кодом Лямбда функции
2) CodeBuild автоматически запускается через EventBridge
CodeBuild создаёт новую версию Lambda функции
CodeBuild ГЕНЕРИРУЕТ файл appspec.yaml
в файле appspec.yaml указана стратегия деплоймента и номер новой версии Лямбды
CodeBuild отправляет сгенерированный appspec.yaml в S3
3) CodeDeploy забирает appspec.yaml из S3
CodeDeploy использует appspec.yaml, чтобы выполнить traffic-shift Лямбда функции от v1 к v2

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

Последовательность CodeDeploy Hooks для Lambda?

A

AllowTraffic - до и после можно выполнить свои Hooks

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

Что делает CodeDeploy с новой версией приложения?

A

CodeDeploy НЕ создаёт новую версию Лямбда-функции (или ECS-таски).

Подготовить новую версию приложения должен разработчик.

CodeDeploy лишь предлагает варианты переключения от старой версии к новой.

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