Chapter 6 Deployment Strategies Flashcards

1
Q

How does continuous delivery extend CI?

A

Continuous delivery expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage. When properly implemented, developers will always have a deployment-ready build artifact that has passed through a standardized test process.

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

How does continuous deployment extend continuous delivery?

A

It is the automated release of software to customers, from check in through production.

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

Elastic Load Balancing and _____ are designed to work together.

A

Auto Scaling

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

Components required for scalability and availability

A
  1. Multi AZ and multi region
  2. Health Check and failover
  3. Stateless applications that store state in cache/DB
  4. AWS services (i.e. auto scaling)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are 3 of the core underlying technologies used by Elastic Beanstalk?

A
  1. EC2
  2. ELB
  3. Auto Scaling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pre-configured options for Elastic Beanstalk

A
  1. Single-instance (development, low cost)

2. Load balanced, AWS Auto Scaling (production)

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

What is required to deploy an Elastic Beanstalk application?

A

A ‘source bundle’. This can come from a source repository (i.e. CodeCommit, BitBucket) or S3 bucket.

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

T/F: Each Elastic Beanstalk environment is a separate version of the application, and that version’s AWS Cloud components deploy onto AWS resources to support that version. Each environment runs one application version at a time, but you can run multiple environments, with the same application on each, along with its own customizations and resources.

A

True

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

In Elastic Beanstalk, to launch an environment you must first choose a/an _____.

A

environment tier

The environment tier designates the type of application that the environment runs, and determines what resources Elastic Beanstalk provisions to support it. An application that serves HTTP requests runs in a web server environment tier. An environment that pulls tasks from an Amazon Simple Queue Service (Amazon SQS) queue runs in a worker environment tier.

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

Where are Elastic Beanstalk configuration files stored? What is the file format?

A

Stored in the ‘.ebextensions’ directory of your web application. The format is YAML (or JSON), and the file extension is ‘.config’

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

Environment

A

An environment is a collection of AWS resources running an application version.

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

How to modify application stack in Beanstalk without introducing unrecoverable failures?

A

Use the Elastic Beanstalk service and ebextensions to make modifications instead of CloudFormation

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

What is a deployment in the context of EC2 instances?

A

process of copying content and executing scripts on instances in your deployment group

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

all-at-once deployment

A

applies update to all instances at once. Involves downtime

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

in-place deployment

A

CodeDeploy stops application on target instance, deploys, validates. Works well if you have a load balancer (no downtime).

FYI in-place deployments not available for AWS Lambda.

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

rolling deployment

A

With rolling deployments, Elastic Beanstalk splits the environment’s EC2 instances into batches and deploys the new version of the application to one batch at a time, leaving the rest of the instances in the environment running the old version of the application. During a rolling deployment, some instances serve requests with the old version of the application, while instances in completed batches serve other requests with the new version.

17
Q

what is ‘rolling with batch’ deployment

A

Elastic Beanstalk related. Under this option, when applying a rolling deployment, a new batch of instances is launched before you take instances out of service for rolling updates. These batches are used for potential rollbacks from a failed update. After the deployment is complete, these instances are terminated.

18
Q

green/blue deployment

A

running environment is blue, new environment with update is green. When changes complete and tested in green, swap CNAMEs of environments to redirect traffic flow.

  • Zero downtime.
  • Lambda uses this.
  • Not a good idea with RDS without snapshot backups
19
Q

immutable deployment

A

when you need to replace instances in deployment (new VMs). Code deployed to new instances.

Instead of roll back process in event of failed health check (i.e. rolling deployments), you simply terminate an auto scaling group.

20
Q

Metrics with Elastic Beanstalk

A

Not charged for default metrics, since they are published to Cloudwatch.

Custom metrics can be enabled via CloudWatch

21
Q

Environment

A

An environment is a collection of AWS resources running an application version.

22
Q

environment tier

A

environment tier designates the type of application that the environment runs, and determines what resources Elastic Beanstalk provisions to support it. An application that serves HTTP requests runs in a web server environment tier. An environment that pulls tasks from an Amazon Simple Queue Service (Amazon SQS) queue runs in a worker environment tier.

23
Q

Application version

A

In Elastic Beanstalk, an application version refers to a specific, labeled iteration of deployable code for a web application. An application version points to an Amazon Simple Storage Service (Amazon S3) object that contains the deployable code, such as a Java WAR file.

24
Q

How to record and track environment and instance health over time within Elastic Beanstalk?

A

Configure your environment to publish the information gathered by Elastic Beanstalk for enhanced health reporting to Amazon CloudWatch as custom metrics. This involves charges.

25
Q

What is only metric for which there is no charge in Elastic Beanstalk?

A

Environment Health

26
Q

What OS options does Elastic Beanstalk support?

A

Amazon Linux and Windows Server

27
Q

What is a service role

A

a role that an AWS service assumes to perform actions on your behalf.

28
Q

How does Elastic Beanstalk pricing work?

A

There are no charges for using Elastic Beanstalk. But the underlying services which are composed by the service (RDS, EC2, etc.) are charges at normal rates.

29
Q

What happens the an environment’s RDS database if the environment is deleted?

A

The database is deleted as well. You need a snapshot to retain and restore it.

30
Q

rolling deployment with an additional batch

A

To maintain full capacity during deployments, you can configure your environment to launch a new batch of instances before taking any instances out of service.