DevOps Foundations Flashcards
What are the Practices of DevOps?
Continuous integration
Continuous delivery
Microservices
Infrastructure as code
Monitoring and Logging
Increased communication and collaboration
Continuous integration
a software development practice whereby developers regularly merge their code changes into a central repository, after which automated builds and tests are run
Continuous delivery
a software development practice whereby code changes are automatically built, tested, and prepared for a release to production. It expands upon continuous integration by deploying all code changes to a testing environment, production environment, or both after the build stage
Microservices
microservices architecture is a design approach to build a single application as a set of small services
Infrastructure as code
a practice in which infrastructure is provisioned and managed using code and software development techniques, such as version control and continuous integration
Monitoring and Logging
Companies monitor metrics and logs to see how application and infrastructure performance impacts the experience of their product’s user
Increased communication and collaboration
one of the key cultural aspects of DevOps. The use of DevOps tooling and automation of the software delivery process establishes collaboration by physically bringing together the workflows and responsibilities of development and operations
What is the goal of DevOps?
to follow a continuous delivery model that is repeatable, reliable, stable, resilient, and secure, and improves operational efficiency
Continuous Delivery (CD) Best Practices
When the following CD best practices are applied, software can be released to production at any time.
- Code changes are committed to the repository and built frequently (versioned sourced).
- Builds are deployed to test environments and tested using automated and possibly manual tests.
- Builds that pass rigorous tests are rapidly deployed to staging or production environments. A robust continuous delivery pipeline also does the following:
- Automates the provisioning of infrastructure for testing and production environments
- Enables the monitoring and management of test and production environments.
Continuous Deployment
a fully automated end-to-end process, includes CI/CD
DevOps on AWS
What AWS service can be used for Version Control?
AWS CodeCommit
Like bitbucket or github
is a managed source control system that hosts Git repositories and works with all Git-based tools. AWS CodeCommit stores code, binaries, and metadata in a redundant fashion with high availability. You will be able to collaborate with local and remote teams to edit, compare, sync, and revise your code.
What AWS Services can be used for CI/CD?
AWS CodePipeline
AWS CodeBuild
AWS CodeDeploy
AWS Code Star
AWS Cloud9
What AWS Services can be used for Microservices?
Amazon Elastic Container Service (Amazon ECS)
AWS Lambda
What AWS Services can be used for Infrastructure as Code?
AWS CloudFormation
AWS Elastic Beanstalk
AWS OpsWorks
AWS Systems Manager
AWS Config