Developer Theory (ACG) Flashcards
What is CI/CD?
Continuous Integration, Continuous Delivery/Deployment
A software development best practice by making small changes and automate as much as possible.
Describe Continuous Integration
Integrating or merging the code changes frequently - at least once per day.
Think CodeCommit.
Describe Continuous Delivery
Automating the build, test and deployment functions.
Think CodeBuild and CodeDeploy
Describe Continuous Deployment
Fully automated release process, code is deployed into Stage/Prod as soon as it has successfully passed through the release pipeline.
Think CodePipeline.
What is an In-Place deployment?
The app is stopped on each instance and the new release is installed (also known as a rolling update).
Capacity is reduced as each instance is updated. You have to re-deploy to rollback and Lambda is not supported.
What is a Blue/Green deployment?
New instances are provisioned where the new release is installed. Blue represents the active deployment, green is the new release.
Switch back and forth with your Load Balancer. You pay for 2 environments until you terminate the old servers.
What is the AppSpec File?
Configuration file that defines parameters for CodeDeploys such as target OS, files, hooks, etc. Should be saved in the root directory. Hooks are lifecycle events that have a very specific run order.
What is Run Order?
Lifecycle event hooks are run in a specific order known as the Run Order.
In-Place Deployment can be broken down into 3 broad phases, what are they?
De-registering, installation, re-registering with a Load Balancer.
What is the logical flow of an In-Place deployment? (7 steps)
ApplicationStop DownloadBundle BeforeInstall Install AfterInstall ApplicationStart ValidateService
What is CodeArtifact?
Central repo that can be used by all devs to obtain the correct version of software packages/libraries required for their projects. Think nuGet packages.
How do you pull packages from an external public repository such as npm?
Create an upstream repository with an external connection to the public repository i.e. npm.
What is SAM?
Serverless Application Model (SAM)
Extension for CloudFormation to define and provision serverless apps. Has its own AWS SAM CLI and its own commands to package and deploy:
sam package
sam deploy
Packages app and uploads to S3
Deploys serverless app using CloudFormation
What are CloudFormation Nested Stacks?
Allows you to re-use CloudFormation code for frequently used configs, e.g., load balancers, web/app servers.
Reference it in the Resources section of any CloudFormation template using the Stack resource type.
What AWS service provides source control, enabling teams to collaborate on code, html pages, scripts, images, and binaries?
CodeCommit
What AWS service compiles source code, runs tests and produces packages that are ready to deploy?
CodeBuild
What AWS service automates code deployments to EC2 instances, Lambda and on-prem systems?
CodeDeploy
What AWS service is an end-to-end solution, allowing you to build, test, and deploy your app every time there is a code change?
CodePipeline
A virtual operating environment with everything software needs to run are called what?
Containers
Includes libraries, system tools, code and runtime.
Apps can be built using independent stateless components, or microservices running in multiple containers.
What is ECS?
Elastic Container Service
ECS can run your containers on clusters of VMs. Docker and Windows containers are supported.
What is Fargate?
You can run containers without EC2 instances. Serverless!