This course runs for a duration of 3 days.
The class will run daily from 8:30 am EST to 4:30 pm EST.
Class Location: Boston - Boston, MA.
The 21st-century software engineering practices of continuous integration (CI) and continuous delivery (CD) have rapidly come to define the best practices for software development, quality assurance, and delivery. CI/CD practices are fundamental to most successful DevOps practices and enable huge benefits for delivering more value, more frequently and with lower risk than traditional engineering. At the same time, CI/CD practices drastically reduce many of the risks and pains associated with deploying software releases and bugfixes.
Jenkins has long been the community tool leader in the open-source world for practicing continuous integration and delivery. It’s robust and enterprise-capable big brother, the CloudBees Jenkins platform, expands the capabilities users love about Jenkins to an enterprise-class toolchain and level of support.
This hands-on Jenkins training course teaches engineering and development teams how to run an enterprise CI/CD practice. Our lab environment and classroom model is deeply interactive, giving students hands-on practice and access to an expert in the classroom so they can return to work ready to immediately use everything Jenkins has to offer.
This course is available for both the open source and CloudBees Platform versions of Jenkins.
A few immediate benefits of attending this course:
Who Should Attend:
As organizations increase the usage of Jenkins, scaling up to deal new issues will arise when additional masters are added to the environment. Business critical challenges are inevitable because each master will require separate maintenance, security, and upgrades to remain functional. This course will teach you how to use Jenkins for your solution, resulting in:
Full control of all masters from one central control
Accelerated automation, development, and delivery
Meaningful, measurable, quantifiable performance enhancements
Part 1: Foundations of CI/CD in enterprise environments
In order to create an efficient Jenkins environment, the stability of the source control system & the Continuous Integration infrastructure needs to be determined. The root of the CD pipeline starts with the foundation of your environment which is constantly affected by automation, integration, testing and quality assessment, and so on.
What is Jenkins, CI & CD, and how can Jenkins help my business?
Introduction to Jenkins and its use for CI best practices
Feature overview: open-source Jenkins
Example deployment approaches: Dedicated hardware, Docker, AWS
Part 2: Agile Refresher
Agile development is creating more effective enterprises, and adoption of its values is at an all-time high. The ability to manage changing priorities, increase project visibility, and accelerate product delivery are but a few of the many benefits that Agile development creates. Overall performance has high expectations in today's digital landscape, and the implementation of Agile principles keep teams prepared for new demands, technologies, and trends.
The Agile Manifesto
Success with Scaling Agile
Agile Management Tools
Implementation of common tools
Part 3: Getting started with Jenkins
Jenkins is at the nucleus of integration & delivery, thus the mastery of it is essential for agile development teams. Pre-deployment, deployment, and post-deployment functionality should be planned and considered before the code is committed.
Key components of Jenkins
Jobs in Jenkins
Projects in Jenkins
Builds in Jenkins
Views
Jenkins Templates and modular jobs
Part 4: Jenkins plugins
One of the reasons for Jenkins popularity is because it has literally hundreds of plugins that are customized to expand usage and capabilities within all solutions. These days, the right plugin can assist in fixing problems that you didn’t even know you had.
Pipeline (Mainly these plugins - Input Step, Basic Steps, Build Step, Job, Groovy
Docker Pipelines & Commons
Using parameters and credentials with plugins
Choice parameters
Conditional Build Steps
GitHub
NodeJS
Terraform
Amazon Web Services & EC2 Container Services plugins
Notifications
Part 5: Integrating Jenkins and version control
Jenkins has excellent support for various source code management systems like CVS, Subversion, Git, and more. Complicated jobs continue to need modification, as a natural condition of CI, therefore integration is often a new configuration.
A Git example
Jenkins and best SCM practices with Github
Using Jenkins for Optimizing and Measuring Code Quality Code
Code Coverage Metrics
Running and using Builds
Part 6: Parameterized Builds
Any given project will have the option make it’s build parameterized. This enables jobs to be executed with version numbers, server URLs, node names, and specified organizational
markers.
Adding Parameters
Passing Parameter Values
Executing a Parameterized Build
Jenkins credentials
Part 7: Automating Deployments
Automation is one of the most important components necessary for a development team to be agile. Deployment automation is tricky to implement, and many people think they are doing it correctly when they are not.
Deploying code
Servers, Clients, and Workstations
Docker & AWS Containers
Terraform
Integrating automated tests (e.g.: Cucumber tests and any other) in Builds and Deployment jobs with Pipeline
Include Jenkins integration with JFrog Artifactory (DJ use Artifactory for different use cases, including storing docker images and registries)
Part 8: Handling Build Failures
Recognizing known issues, dealing with problems efficiently, and preventing future errors is a must when it comes to continuous delivery. Pipelines have introduced much greater traceability of changes to the build process, so that build fails can be dealt with immediately.
Detecting the source of a build failure
Troubleshooting Jenkins Builds
Build failure Analyzer
Build log scanning
Git Timeouts
Part 9: Folders in Jenkins
1. Folders
2. Folders Plus
Part 10: Merging
1. Validated Merges
2. Using GitHub for validated merges
3. Pull-Request Builder for GitHub
4. Templates
Part 11: Running a CI/CD Pipeline through Jenkins
https://jenkins.io/doc/book/pipeline/syntax/
1. Pipeline development tools
2. Pipeline Plugin
3. Trigger a pipeline