5890

Implementing a CI/CD Pipeline

Effective (continuous integration) CI practices, when combined with well-aligned IT teams, lay the foundation for mature continuous delivery environments and the many benefits associated with them -- for your software, your IT shop, and your business.

In this course, you will learn through hands on labs, class demos, class participation exercises, frequent quizzes, video tutorials, and traditional power point presentations. In this interactive class, you will be expected to participate fully in all exercises to retain maximum benefit of the course.

  • Set up and navigate a CI environment
  • Execute releases in test environments prior to product delivery
  • Most efficient CI tools for quick release and reliable maintenance of products
  • Integrate CI methods and techniques into current workflow for a SCM environment
  • Deliver value from continuous integration in your own organization
  • Examples of continuous integration benefits

  • Software developers
  • Project managers
  • Quality assurance staff
  • Product owners
  • Business intelligence professionals

  • Understand the purpose of infrastructure servers
  • Familiar with scripting of any kind
  • Experience working at the command line of Unix, Linux, or PowerShell
  • Experience with a text editor of any kind

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
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
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

Upcoming Classes

Dates Location GTR  
Oct 18-20 (10am-6pm) EDT
Nov 6-8 (9am-5pm) EST
Dec 11-13 (12pm-8pm) EST

Questions?

Whether you need assistance scheduling a class for yourself or for your group, GCA's Education Account Manager's will craft a customized training solution to meet the needs of your organization.