Automating the Delivery Pipeline: Version Control and CI/CD Tooling (Jenkins/Bamboo)

Duration: 2 Days

Course Overview

One of the biggest blockages to rapid reliable delivery of change in software products has traditionally been the QA, infrastructure provisioning, deployment, configuration and operation of system upgrades and installations. The development and low level functional testing has largely been solved by agile development. New candidate builds then suffer from severe slow-down caused by the list of phases given above, often implemented using traditional waterfall style silos.

Continuous integration and continuous delivery use a combination of test automation with build, provisioning, deployment and operational automation to make it possible to whip a new release out to production after full testing within hours rather than months.

This course looks at the tools, principles and best practices used in setting up and running a CI/CD pipeline within an agile or DevOps software delivery life cycle. It focuses on how to optimise the pipeline and how to instil best practices for its use and maintenance.

The course is presented as a combination of taught material (50%), with small group activities, and hands-on use of software tools as part of a simulated development project (50%). The tools used in the case study are Git, Jenkins (a variant of Bamboo) and various Jenkins plug-ins. However, these tools are merely representative of the vast number of similar tools on the market today.

How can I attend my course?

On-line from
your chosen location

At our dedicated
training facility

On-site at
your premises

Course Content

CI/CD concepts

• Defining Continuous Delivery and Continuous Integration
• Architecting pipelines for CI/CD
• Continuous delivery in agile and DevOps workflows
• The role of the SQA engineer in CI/CD implementation

People and culture

• The importance of team and organisational culture in the success of CI/CD
• Improving and maintaining a good culture

Designing the CI/CD environment

• Key design principles
• CI/CD best practices
• Enabling technologies

Version control

• Purpose of version control
• Parallel development, single source of truth
• Merges and conflict resolution
• Branching and stashing
• Distributed VC stores: Git
• Pulling and pushing changesets
• The role of test automation in conflict resolution

Continuous integration

• Automating the builds – Jenkins and Git webhooks
• Integrating automated tests into the builds
• Code quality analysis and other pipeline tools
• CI best practices and benefits

Continuous Test

• Benefits of CT
• Five tenets and best practices of CT

Continuous Delivery and Deployment

• Comparing delivery and deployment
• Packaging build outputs, configuration, binary artefacts, and scripts
• Infrastructure as code
• CD best practices
• Incorporating security into CD: DevSecOps
• Security automation and best practices

Enabling technologies

• Virtualisation, virtual machines
• Cloud technologies: IaaS, PaaS, SaaS
• Containerisation: Docker and the Union Filesystem
• Docker, Docker Hub and Kubernetes
• IaC technologies: Puppet, Chef, Ansible

You will receive a full set of course notes
and all supporting materials for your course.

Hard Copy Delivered to your premises or Downloaded to a chosen device.

To book this course please call 
+44 (0) 1444 410296 or email Info@kplknowledge.co.uk