Deployment and operations management Flashcards
What are the 4 types of deployment?
1) Rolling deployment
2) A/B testing (A/B deployment)
3) Canary release
4) Blue/Green deployment
What are the 3 steps in a rolling deployment?
1) Create a new launch configuration with the updated AMI (can’t do this to the existing servers)
2) Start terminating old EC2 instances
3) When the new servers come up they now have version 2 of the launch config
When is an A/B testing deployment useful? and how do you do this?
When you want to test a new format a website. Use Route traffic to route a % of traffic to new version e.g. 10% then move to 100% over time
What is a canary release deployment?
When you release one EC2 instance with the new update and watch to see how it performs before rolling it out to other instances
What is a blue/green method of deployment?
When you run both the old version and the new version of an application. You can always revert back to the original application.
What is the main benefit of using a Blue/green deployment method?
allows you to achieve an immutable infrastructure, where you do not make changes to your application after it’s deployed, but you redeploy a together. This makes it easy to roll back.
What are the 5 methods of achieving a Blue/Green deployment with different services…
1) Update DNS with Route53 to point to a new ELB or instance
2) Swap autoscaling groups already primed with a new version of instanced behind an ELB
3) Change autoscaling group launch configuration to use the new AMI version and terminate old instances (and create new ones)
4) Swap the environment URL of Elastic beanstalk
5) Clone stack in AWS Opsworks and update the DNS
Name 3 scenarios where a blue/green deployment method would NOT be appropriate…
1) When the data-store schema is too tightly coupled to the code changes (schemas need to be forward and backwards compatible)
2) when the upgrade requires special routines to be run during deployment
3) When you are using an off the shelf product
Define Continuous Integration…
Where you merge code changes back to a main branch as frequently as possible with automated testing as you go.
Define Continuous delivery…
Where you automate your release process to the point you can deploy at the click of a button
Define Continuous deployment…
Where each code change that passes all stage of a release process is released to production with no human intervention is required… you automate the entire chain
What is the primary object of CI and CD?
To create small, incremental compartmentalised improvements and features to reduce deployment risk and tried to limit negative impact
What has to be strong for CI?
Your testing game gotta be STRONG
What is AWS CodeCommit?
AWS hosted git repo
What AWS code build?
Helps to compile, test and create deployment packages
What is AWS code deploy?
Helps to deploy deployment packages
What is AWS code pipeline?
An orchestration service that allows is to do all of the code creation, testing, deployment….
What is AWS X-ray?
A service to help in the debugging of distributed apps or serverless apps
What is AWS CodeStar?
A service that leverages all of the CI/CD tools (AWS code* services) to define templates to make them more ‘turn key’
What is Elastic Beanstalk?
An orchestration services that makes it easy to push-button deploy scalable web landscapes. Creates an easy deployment model, but not great if you need control or flexibility.
What are the 6 deployment options available within Elastic Beanstalk? (defines as well)
1) All at once- A new application version is deployed to existing instances all at once, potentially resulting in downtime.
2) Rolling- Once by one, the new application version is deployed to existing instances in batches
3) Rolling with additional batch- Launch new version of instances prior to taking any old version instances out of service
4) Immutable- Launch a full set of new version instances in a separate auto-scaling group and only cuts over when health check is passed
5) Traffic splitting- Percent of client traffic is routed to new instances for purpose of “canary” testing
6) Blue/Green- The CNAME DNS entry is changed when a new version is fully IP leaving the old version in place until new version is fully verified
Which Elastic Beanstalk deployment method has the shortest and the longest deployment time?
Shortest- all in one
longest- Blue/Green
Which is the only Elastic Beanstalk method that could result in downtime?
All in one method
What is CloudFormation?
Infrastructure as code service, to define a AWS environment
What language are CloudFormation templates written in?
YAML or JSON
What is a CloudFormation template?
Template- The JSON or YAML text file that contains instructions for building out the AWS environment
What is a CloudFormation stack?
The entire environment described by the template and created, updated and deleted as a single unit
What is a CloudFormation Change Set?
A summary of proposed changes to your stack that will allow you to see how those changes might impact your existing resources before implementing them.