top of page

Continuous Integration Boot Camp

 

This 3-day instructor-led course will teach the fundamental concepts, practical application, and workflow integration skills necessary for successful CI implementation. Students will learn through hands on labs, class demos, class participation exercises, frequent quizzes, video tutorials, and traditional power point presentations. This is an interactive class, and individuals will be expected to participate fully in all exercises to retain maximum benefit of the course.

  • Set up and navigate a CI environment that enables automated testing & automated builds

  • Execute releases in test environments prior to product delivery

  • Identify the most efficient CI tools for quick release & reliable maintenance of products

  • Integrate Continuous Integration methods & techniques into current workflow for a SCM environment

  • Deliver value from continuous integration in your own organization

  • Examine real world examples of continuous integration benefits

 

Course Outline

Module 1: Continuous Integration Overview

 

This Module covers the fundamentals of Continuous Integration, a software development methodology that focusses on consistent code testing. For any team that is implementing an Agile programming approach to software development, Continuous Integration (CI) will be an integral part of the process. 

The difference between Integration, Deployment, and Delivery

  • Continuous integration

  • Continuous deployment

  • Continuous delivery

Continuous Integration Flow

  • Checking for updates

  • Extracting Code

  • Integrating updates into a test environment

  • Reviewing test results

  • Integrating updates into the Build

Demo

  • Make a Change in CI environment

  • Check in update

  • View Code Analysis Report

  • View Test Results

  • Verify Build

 

Module 2: Advantages of Continuous Integration

 

This Module covers the results that CI delivers, and how they translate into more efficient workflows, higher deliverability, and less overall cost. Benefits associated with CI will be exemplified including:

Reaping the benefits of Continuous Integration

  • Reduce implementation effort

  • Increase speed of resolution

  • Improve quality & maintenance of each product release

  • Increase speed of delivery

Communicating Analytics with Clients & Managers

  • High Transparency

  • Running Tests in the real world

  • Updating code with changing requirements

Class Quiz

  • Fundamentals of Continuous Integration

  • Execution of Continuous Integration

  • Testing Results of Continuous Integration

Companies utilize CI techniques successfully 

Class discussion regarding real world companies which have successfully integrated Continuous Integration into their common practice. Review of released content thaqt their deployment workflows. 

Case Studies for Continuous Integration

  • Production Changes every 11.6 seconds at Amazon

  • The Facebook Release Process

  • Continuous Delivery at Google

  • The Software Revolution Behind LinkedIn's Gushing Profits | Business | WIRED

  • Deploying the Netflix API

  • Tesla utilizing Continuous upgrades

  • How Etsy Deploys More Than 50 Times a Day

Class Discussion

  • How did each company in these reports utilize Continuous Integration?

  • How was CI most likely implemented in each example?

  • How would you apply CI to your own production environment?

 

Module 3: Implementing a CI Environment

 

In this Module, we will take a deep dive into the analyzation, best practices, and setup of a CI environment. 

Creating & Managing a Source Code Repository

  • Distributed code Repositories

  • Choosing the right tools: Repository Tools Review

  • Separating requirements & dependencies

  • To use branches or not to use branches?

Configure Automated Deployment

  • Configuring the DHPC server

  • Source Commit Check

  • Starting with simple Deployment scripts

  • Real time bug alerts

Creating Automated Tests

  • Unit Testing

  • User Interface Testing

  • API Testing

  • Regression Testing

  • Load Testing

  • Security Testing

Lab

  • Create a Source Code Repository

  • Build an Automated Test

  • Check new code into Repository

  • Run a unit Test on New Code

 

Module 4: Database Versioning

  • Best Practices for database versioning

  • Database Schema & scripts

  • Database versioning tools

  • Multiple database instances for each developer

  • Benefits of Database Versioning

Database Versioning Process:

  • Check out object to be modified

  • Apply modifications in database test environment

  • Run tests to verify changes have not broken the build

  • Check in object for final authentication

Database Versioning Approaches

  • Task Based Development

  • Compare & Sync

  • Database version checks

  • Upgrade scripts & Parallel Development

Lab

  • Modify an object in test environment

  • Check in modifications to repository

  • Run Unit test to check against changes

  • Run final test for deployment

Module 5: Maintaining a CI Environment

Module 5 investigates CI methods & techniques which ensure problems & bugs are detected early, and speed to deployment is consistent. 

Implementing the Build, Deploy, Test, and Release Process

  • Software Configuration

  • Automatic Launch

  • Test Report Generation

  • Submit to Testers

Product Maintainability & Monitoring

  • Reliability, Availability, Maintainability: Why you need all three

  • Criteria for "pass" requirements

  • Scope & Scalability

  • Consistent updating of Software functionality

  • Analytics & Reporting

 

Module 6: Agile tools for Continuous Integration

Before selecting a CI/CD solution, it is crucial for developers & project managers to choose the correct path for each particular application. In this module we will review open source tools, and delve into the pros & cons that they bring to the table. 

Setting up the CI Server

  • CI environment, standard workflows, & core tech architecture

  • Software Configuration Management (SCM)

  • Setting up Jenkins as a CI server

  • Open source CI tools

  • Build automation tools for CI

  • Recommended learning resources

Lab

  • Set up the Jenkins build server

  • Run a shell script

  • Archive the build result

  • Run integration tests

  • Run report on test results

bottom of page