9 - CI/CD Flashcards
Continuous Integration
Practice of
- integrating all code changes into main of a shared repository early and often
- automatically testing each change when you commit or merge them
- and automatically kicking off a build
Benefit of CI
Errors and security issues can be identified and fixed more easily and much earlier in the software dev cycle
Continuous Delivery
Automate infrastructure provisioning and app release
Ensure software can be deployed as packaged with everything it needs at any time
Final stage of a mature CI/CD pipeline
Continuous Deployment
Continuous Deployment
Automates releasing an app to production
Relies on rigorous testing tools and a mature test culture
CI/CD Fundamentals (8 items)
Single Source repository
Frequent check-ins to main branch (avoid sub branches, merge frequently)
Automated Builds
Self testing builds
Frequent iterations (commits)
Stable test environments
Max visibility for developers
Predictable deployments anytime
GitHub Actions
Workflow triggered when event occurs in repo
How does CI integrate with version control systems?
Automatically triggering builds and tests when changes are made. Changes are then validated early and often
Benefits of version control
Change history
Collaboration
Change rolback
How can Docker help in CI/CD?
Apps and dependencies can be packaged into a container to ensure consistency across environments
What benefits do cloud platforms bring to CI/CD?
Scalability
Isolation
Ability to use managed services