Section 1: Key CI/CD/Jenkins concepts
This topic comprises approximately 27% of the exam. Questions cover the following topics:
Continuous Delivery/Continuous Integration Concepts
- Define continuous integration, continuous delivery, continuous deployment
Term | Definition |
---|---|
Continuous integration | Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. |
Continuous delivery | Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. |
Continuous deployment | Continuous deployment means that every change is automatically deployed to production. In order to do continuous deployment one must be doing continuous delivery. |
- Difference between CI and CD
The main difference is that with CD, the software is ready for Release at any time. CD presupposes that CI is in effect
- Stages of CI and CD
CI: Commit, Integration, Build, Tests
CD: Build automation and continuous integration; test automation; and deployment automation
- Continuous delivery versus continuous deployment
With Continuous Delivery, the software is ready for deployment after each successfully integrated commit. With Continuous Deployment, the software gets released after each successfully integrated commit.
Jobs
- What are jobs in Jenkins?
- Types of jobs
- Scope of jobs
Builds
- What are builds in Jenkins?
- What are build steps, triggers, artifacts, and repositories?
- Build tools configuration
Source Code Management
- What are source code management systems and how are they used?
- Cloud-based SCMs
- Jenkins changelogs
- Incremental updates v clean check out
- Checking in code
- Infrastructure-as-Code
- Branch and Merge Strategies
Testing
- Benefits of testing with Jenkins
- Define unit test, smoke test, acceptance test, automated verification/functional tests
Notifications
- Types of notifications in Jenkins
- Importance of notifications
Distributed Builds
- What are distributed builds?
- Functions of masters and agents
Plugins
- What are plugins?
- What is the plugin manager?
Jenkins Rest API
- How to interact with it
- Why use it?
Security
- Authentication versus authorization
- Matrix security
- Definition of auditing, credentials, and other key security concepts
Fingerprints
- What are fingerprints?
- How do fingerprints work?
Artifacts
- How to use artifacts in Jenkins
- Storing artifacts
Configuration Management (Tools such as Chef, Puppet, etc.)
- Elements of software configuration management
- Importance of software configuration management
Using 3rd party tools
- How to use 3rd party tools with Jenkins