Deployments & Managing Infrastructure at Scale Flashcards

1
Q

What is CloudFormation

A

Cloud Formation allows you to manage infrastructure and automate any deployments using code.

• Provisions and manages stacks of AWS resources based on templates you create to model your infrastructure architecture

• It provides a common language for you to model and provision AWS resources.

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

Benefits of AWS CloudFormation

A

• Infrastructure as code = No resources are manually created, which is excellent for control
• Changes to the infrastructure are reviewed through code
• You can estimate the costs of your resources using the CloudFormation template
• Productivity = Ability to destroy and re-create an infrastructure on the cloud on the fly
• Automated generation of Diagram
• Use existing templates on the web

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

CloudFormation Templates

A

• You can write CloudFormation templates in both YAML and JSON
• They are declarations of the AWS resources that make up a stack.

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

CloudFormation working with Stacks

A

A stack is a collection of AWS resources that you can manage as a single unit.

• AWS CloudFormation ensures all stack resources are created or deleted as appropriate.

• All the resources in a stack are defined by the stack’s AWS CloudFormation template.

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

CloudFormation Designer

A

Is a graphic tool for creating, viewing, and modifying AWS CloudFormation templates.
• You can diagram your template resources
• We can see all the resources
• We can see the relations between the components

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

AWS Cloud Development Kit (CDK)

A

• Is an open source software development framework to define your cloud application resources using familiar programming languages.
• The code is “compiled” into a CloudFormation template (JSON/YAML)
You can therefore deploy infrastructure and application runtime code together
• Deploy infrastructure on AWS with languages

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

Typical architecture: Web App 3-tier

A

Client > [ELB] > [EC2 Instances + Auto Scaling Group] > RDS + ElastiCache

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

Developer problems on AWS

A

• Managing infrastructure
• Deploying Code
• Configuring all the databases, load balancers, etc
• Scaling concerns

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

AWS Elastic Beanstalk

A

Elastic Beanstalk is an easy to use service that deploys, manages and scales web apps and services for you
• Beanstalk = Platform as a Service (PaaS)
• Makes it easier for developers
• We still have full control over the AWS resources powering your app
• Beanstalk is free but you pay for the underlying instances
• Lets you focus on building great web or mobile apps for your users without spending a lot of time managing and configuring infrastructure
• Provides platforms for programming languages

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

Elastic Beanstalk - Shared Responsibility

A

Managed service
• Instance configuration / OS is handled by Beanstalk
• Deployment strategy is configurable but performed by Elastic Beanstalk
• Capacity provisioning
• Load balancing & auto-scaling
• Application health-monitoring & responsivenes

• Just the application code is the responsibility of the developer
•Not only can deploy an application, but also update it

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

Elastic Beanstalk – Health Monitoring

A

• Health agent pushes metrics to CloudWatch
• Checks for app health, publishes health events

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

What’s the difference between Beanstalk and CloudFormation if they both use CloudFormation?

A

CloudFormation is going to be used to deploy infrastructure as code. That means that you can deploy anything not only in these two instances, but anything on CloudFormation. And it doesn’t have to be, for example, an application.

Whereas Beanstalk is a code centric view. It’s a platform as a service, in which the first thing you have to do in a Beanstalk environment is to upload your code and then Beanstalk will find a way for you to run that code, and will do it for you.

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

AWS CodeDeploy

A

• Automates your software deployments, allowing you to deploy reliably and rapidly.
• Works with EC2 Instances
• Works with On-Premises Servers
• Hybrid service

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

AWS CodeCommit

A

• Developers usually store code in a repository, using the Git technology
• Source-control service that hosts Git-based repositories
• Makes it easy to collaborate with others on code
• The code changes are automatically versioned

Benefits
• Fully managed
• Scalable & highly available
• Private, Secured, Integrated with AW

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

AWS CodeBuild

A

• Compiles source code, runs tests, and produces software packages that are ready to deploy. (by CodeDeploy for example)

Benefits
• Serverless
• Fully managed
• Continuously scalable & highly available
• Secure & Pay-as-you-go pricing

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

AWS CodePipeline

A

• Orchestrate the different steps to have the code automatically pushed to production
• Code => Build => Test => Provision => Deploy
• Fast delivery & rapid updates

17
Q

AWS CodeArtifact

A

Is a fully managed artifact repository service that makes it easy for organizations of any size to securely store, publish, and share software packages
• Storing and retrieving these dependencies is called artifact management
• Developers and CodeBuild can then retrieve dependencies straight from CodeArtifact
• Scalable, Cost effective & Pay-as-you go

18
Q

AWS CodeStar

A

CodeStar is used to quickly develop, build, and deploy applications on AWS.

• Unified UI to easily manage software development activities in one place

19
Q

AWS Cloud9

A

Is a cloud IDE (Integrated Development Environment) for writing, running and debugging code
• Can be used within a web browser
• Allows for code collaboration in real-time

20
Q

AWS Systems Manager (SSM)

A

Gives you visibility and control of your infrastructure on AWS. It is used for patching systems at scale.
• Hybrid AWS service
• Patching automation
• Run commands across an entire fleet of servers
• Works for both Windows and Linux OS

21
Q

Systems Manager – SSM Session Manager

A

Allows you to start a secure shell on your EC2 and on-premises servers

• No port 22 needed (better security)

22
Q

AWS OpsWorks

A

Help you perform server configuration automatically, or repetitive actions
• AWS OpsWorks = Managed Chef & Puppet
• Hybrid
• It’s an alternative to AWS SSM
• Only provision standard AWS resources

23
Q

Deployment - Summary

A

• CloudFormation (Infrastructure as Code)
• Beanstalk (PaaS)
• CodeDeploy (Hybrid)
• Systems Manager (Hybrid)
• OpsWorks (Hybrid)

24
Q

Developer Services - Summary

A

• CodeCommit (Store code)
• CodeBuild (Build & test code)
• CodeDeploy (Deploy code onto servers)
• CodePipeline (Orchestration)
• CodeArtifact (Store software dependencies)
• CodeStar (Unified view to code)
• Cloud9 (IDE with collab)
• AWS CDK (Define cloud infrastructure with programming languages)