Courses

Continuous Integration/ Continuous Delivery (CI/CD)

By December 23, 2020 No Comments

Course Objectives

By the end of this course participants will have a fundamental grasp of the key concepts and the main building blocks of a CI/ CD ecosystem of tools that can be used to support an automated software delivery lifecycle. The course focuses on the presentation of the basic mechanics of specific generic, well-acknowledged and heavily industrially-used open-source tools. Through this focus and along with the referencing to theoretical concepts and best practices, the participants will finally feel comfortable with both the concepts and the realization of CI/CD practices.

Contents

Key Concepts

  • Continuous Delivery
  • Continuous Integration
  • Continuous Deployment
  • DevOps
  • Agile Software Development
  • Source Control
  • Continuous Testing & QA
  • Non-functional Testing
  • Configuration Management
  • Virtualization & Containerization

Stage 1: Software Development/ Configuration

  • Integrated Development Environments
    • Case study – lab: Eclipse
  • Common development/ configuration practices
    • Case studies: pair programming, test-driven development
  • Code quality metrics
    • Case study – lab: SonarQube
  • Unit tests
    • Case studies – labs: JUnit, NUnit
  • Version control
    • Case studies – labs: GitHub, GitLab

Stage 2: Automated Acceptance Testing

  • Generic test automation frameworks
    • Case study – lab: Robot
  • Integration tests
    • Case study – lab: Jenkins
  • Feature-level tests
    • Case study – lab: Selenium

Stage 3: Pre-Production

  • Release automation
    • Case study – lab: Jenkins
  • Capacity and performance tests
    • Case study – lab: Gatling

Stage 4: Production deployment

  • Containerization
    • Case study – lab: Docker
  • Configuration management
    • Case study – lab: Chef

Entry Requirements

Experience on enterprise-level software systems development/ configuration and/or operation. 

Target Group

IT professionals 

Mode of Delivery

Instructor-led training. The course comprises lectures (accompanied with slides and source code) and practical hands-on examples on actual demonstration environment. 

Duration

3 days 

Language

English

Participants

The maximum number of participants for this course is 8. 

Time Plan

The time required always depends on the knowledge/ interests of the attending participants and the hours stated below can be used as an estimate.

Day Topics in the course Estimated Time (hours)
1 Key Concepts 2.0
Integrated Development Environments 0.5
Case study – lab: Eclipse 0.5
Common development/ configuration practices 1.0
Code quality metrics 0.5
Case study – lab: SonarQube 0.5
Unit tests 0.5
Case studies – labs: JUnit, NUnit 0.5
2 Version Control 0.5
Case study – lab: GitHub 1.0
Case study – lab: GitLab 0.5
Generic test automation frameworks 0.5
Case study – lab: Robot 1.5
Integration tests 0.5
Case study – lab: Jenkins 1.5
3 Feature-level tests 0.5
Case study – lab: Selenium 0.5
Release automation 0.5
Case study – lab: Jenkins 0.5
Capacity and performance tests 0.5
Case study – lab: Gatling 0.5
Containerization 0.5
Case study – lab: Docker 1.5
Configuration management 0.5
Case study – lab: Chef 0.5