Automating Workloads Flashcards

1
Q

What is the imperative approach?

A

You create step-by-step operations required to carry out a task (think “scripting”).

Examples: AWS Systems Manager, CodeBuild, CodeDeploy, the Userdata scripts used with Auto Scaling

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

What is the declarative approach?

A

You write code that declares the desired result of the task, rather than how to carry it out (think “CloudFormation”).

Examples: CloudFormation, OpsWorks

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

What are the main IaC services?

A
  • CloudFormation
  • CodeCommit, CodeDeploy, CodePipeline
  • EC2 Auto Scaling
  • Systems Manager
  • OpsWorks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are CloudFormation templates?

A

They contain a description of the AWS resources you want CloudFormation to create, so they function as infrastructure documentation. They should be written in JSON or YAML.

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

What is a CloudFormation stack?

A

A container that organizes the resources described in your template.

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

What is a downside to using AWS CLI instead of CloudFormation?

A

You can’t take advantage of stacks if you use the CLI, so you can’t update your resources as easily. It’s up to you to understand how to change each resource and to ensure that a change you make to one resource doesn’t break another.

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

What is the difference between launch configurations and launch templates?

A

Launch templates can be used to spawn EC2 instances without Auto Scaling and you CAN modify them.

Launch configurations can only be used with Auto Scaling and you CANNOT modify them.

Also, think “Auto Scaling” when you see these terms.

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

What is dynamic scaling?

A

Auto Scaling will launch instances based on demand (metrics such as CPU utilization or number of concurrent users).

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

What is predictive scaling?

A

Auto Scaling will scale in or out according to a schedule (based on historic usage patterns – needs on day’s worth of traffic data to create a schedule).

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

What is Systems Manager?

A

Think “imperative approach.”

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

What is OpsWorks?

A

Think “declarative approach.”

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

What are the three different “flavors” of OpsWorks?

A

Robust options: Chef Automate and Puppet Enterprise (both good if you want configuration managements across all instances)

Simple option: OpsWorks Stacks (good for using configuration management just for deploying applications)

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

What is CloudFormation?

A

It can automatically deploy, change, and even delete AWS resources in one fell swoop.

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

What is CodeCommit?

A

CodeCommit is a private Git repository that offers versioning and differencing.

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

What is the difference between versioning and differencing?

A

Differencing lets you see the differences between two versions of a file, which can be useful when figuring out what change introduced a bug. Versioning, not differencing, is what allows reverting to an older version of a file.

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

What is the minimum number of actions in a CodePipeline?

A

Two – at the very least, a CodePipeline must consist of a source stage and a deploy stage

17
Q

What is CodeDeploy?

A

A deployment service that allows developers to automate the installation of application to hosts, EC2 instances, ECS instances, serverless Lamba functions, or even on-premise servers.

Think “automate installation.”

18
Q

What if CodePipeline?

A

A fully managed service that automates the release pipeline for application updates. For updates, it uses app code stored in CodeCommit, performs testing using AWS CodeBuild, and uses CodeDeploy for deployment.