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