CodeDeploy part 1 Flashcards
Источниками артефактов для CodeDeploy могут быть …?
-
S3
(с версионированием) -
CodeCommit
,Github
,Bitbucket
(если НЕ нужно билдить)
Target’ами артефактов для CodeDeploy могут быть…?
В каком виде при этом может быть EC2?
- EC2 / On-premise servers
- Lambda
- ECS
EC2 может быть одиночный - или ASG, или EC2 Placement Group
Какие pre-requisites есть к EC2/On-premise, чтобы развёртывать на них через CodeDeploy?
Как это технически сделать?
- на EC2 был установлен CodeDeploy Agent
- EC2 instance profile должен иметь IAM права доступа к S3 bucket’у с артефактом
CodeDeploy Agent устанавливается на instance через user data скрипт
В чём отличия и сходства CodeDeploy и Beanstalk?
Оба умеют деплоить приложения через разные Deployment Strategies.
Beanstalk дополнительно умеет делать provisioning инфраструктуры.
Что такое CodeDeploy Repository?
Что такое CodeDeploy Revision?
- CodeDeploy Repository = source, источник, откуда CodeDeploy берёт код (S3, CodeCommit, Github)
- CodeDeploy Revision- это наш артефакт, bundle, сборка (ZIP файл, JAR файл) определённой версии.
Разные версии артефактов - это разныеCodeDeploy
Revisions.
Задача: хранить максимум 2 ревизии приложения на сервере. Какой сервис умеет это делать? Как?
А какой НЕ умеет?
Что такое conserve disk space?
CodeDeploy агент
это умеет
Он живёт на EC2, стягивает туда артефакты и отвечает за то, сколько их там хранится :max_revision:
опция
CodePipeline НЕ может помочь управлять количеством ревизий приложения на EC2
Conserve disk space - экономить место на диске
Что такое Application в контексте CodeDeploy?
На что это похоже?
Чем это НЕ является?
Application
- это сущность сервиса CodeDeploy
, которая включает информацию о настройках деплоймента.
То есть в контексте CodeDeploy
, Application - это НЕ наше веб-приложение
Похоже на Build Project в контексте CodeBuild
Что такое Deployment Group?
Сколько в ней единиц?
Сколько Deployment Groups могут быть подверженные деплойменту одновременно?
Deployment Group
- это instance (или несколько instance’ов, или Lambda или ECS),
на котором(ых) мы хотим развернуть своё веб-приложение.
Даже если instance один, то в контексте CodeDeploy он всё равно будет называться Deployment Group
Можно иметь несколько Deployment Groups,
на которые CodeDeploy будет доставлять ПАРАЛЛЕЛЬНО
Что такое Deployment Configuration?
Как это упрощённо можно назвать?
Deployment Configuration
- это (упрощённо говоря), количество instance’ов в Deployment Group
’е, на которые мы деплоим за раз.
“Deployment Speed”.
Файл appspec.yaml имеет секцию hooks.
Какие поля имеют вложенные хуки?
В чём отличие от CodeBuild файла и его phases секции?
Почему устроено НЕ одинаково?
Каждый из этих хуков имеет location (где расположен скрипт с командами) и timeout
То есть каждый скрипт содержится в отдельном файле.
А в CodeBuild файле в разделе phases каждая фаза просто имеет поле Commands.
Называется “hooks”, а НЕ “phases” потому, что CodeDeploy команды выполняются НЕ просто последовательно (в отличие от CodeBuild), а в определённые моменты ЖЦ деплоймента.
А расположены в отдельных файлах потому, что CodeDeploy хуки реализованы ИЛИ в виде скриптов, ИЛИ в виде лямбда функций (то есть будет lambda arn указан в appspec.yaml файле)