Deploying Applications Flashcards
What is a DevOps team
A team where development and operations functions are merged into a single team where engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function.
What are the release process major phases
Source, Build, Test, Deploy, Monitor
What is Continuous Integration
Continuous Integration covers Source, Build and Test Phases. It is the practice of checking in your code to the continuously and verifying each change with an automated build and test process.
What is Continuous Delivery
Continuous Delivery extends Continuous Integration to include testing out to production-like stages and running verification testing against those deployments. There is some form of manual intervention between a code check-in and when that code is available for customers to use.
What is Continuous Deployment
Continuous Deployment extends continuous delivery and is the automated release of software to customers from check in through to production without human intervention.
What is Infrastructure as Code
The capability to define your infrastructure as a series of scripts or other code artifacts, to enable the creation of this infrastructure automatically and in a repeatable fashion, and therefore create multiple environements (dev/test/staging/production) from the same codebase.
What is AWS CodeStar
AWS CodeStar provides a unified user interface, enabling you to easily manage your software development activities in one place. It allows users to set up the entire continous delivery toolchain in minutes.
What is AWS CodePipeline
Continuous delivery service for fast and reliable application updates. Contains AWS CodeBuild, Third-party tooling and AWS CodeDeploy.
What is AWS CodeCommit
AWS CodeCommit CodeCommit enables you to privately store and manage your assets (such as documents, source code, and binary files) in the cloud. It hosts private Git repositories.
What is AWS CodeBuild
AWS CodeBuild CodeBuild compiles source code, runs tests, and produces software packages that are ready to deploy.
What is AWS CodeDeploy
AWS CodeDeploy automates code deployments to any instance, in any language and on any operating system.
What is AWS X-Ray
AWS X-Ray AWS X-Ray helps developers analyze and debug production, distributed applications, such as those built using a microservices architecture.
What is Blue/Green deployment
• Your blue environment is your existing production environment carrying live traffic.
• In parallel, you provision a green environment, which is identical to the blue environment other than the new version of your code.
• When it’s time to deploy, you route production traffic from the blue environment to the green. If you encounter any issues with the green environment, you can roll it back by reverting traffic back to the original blue environment. DNS cutover and swapping auto-scaling groups are the two most common methods used to re-route traffic in blue/green.
How to apply Blue/Green deployment
Stand up a new environment, and switch over using Amazon Route 53.
You can use Amazon Route 53 to gradually shift traffic over from the old stack (represented by its public-facing load balancer) to the new stack.
Another way to transition between versions is to modify the launch configuration of your Auto Scaling group.
What is the A/B deployment strategy
In A/B, the deployment strategy works much like blue/green in that you have two copies of your environment running.
You might choose to send a small percentage of your total traffic to the new app, perhaps to capture user feedback about the changes, or to ensure that no scaling issues were introduced in this new release.
You can gradually increase this traffic, or just collect the needed data from your users. Amazon Route 53 can implement this deployment strategy with weighted round robin.
What is AWS Elastic Beanstalk
Elastic Beanstalk provides a wrapper for several lower-level AWS services, including Amazon EC2, Amazon CloudWatch, Auto Scaling, and Elastic Load Balancing.
It handles the details of creating and connecting the various components required by your application, such as load balancers and auto scaling groups.
It configures each EC2 instance in your environment with the components necessary to run applications for the selected platform.
What are the 3 elements to understand in AWS Elastic Beanstalk
- Environment : the infrastructure the supports your application
- Version : a specific release of your application
- Configuration : the set of customization to apply to your environment.
What is the Elastic Beanstalk permission model
In order to work properly, AWS Elastic Beanstalk must create two roles.
• The service role gives Elastic Beanstalk the permission to create and manage AWS resources in your account.
• The instance role is used by Elastic Beanstalk as the role into which your instance is launched.
How do you access AWS Services from your instances
Add these permissions to the default instance role created by Elastic Beanstalk, or create and use a new role.
How do you customize the default environment
Write into the .ebextensions/config.yml file that was created when you ran eb init is your project’s environment configuration file: a YAML formatted file that supports a large number of options for configuring your default environment.
How to deal with versions with Elastic Beanstalk
2 options :
- Perform an in-place update.
- Deploy a new environment using the “eb clone” feature, update it with new version, test, and finally, use the eb swap command to swap the CNAME from your running stack to the new stack and cut all users over to the new version.