The course is part of this learning path
This course introduces you to Jenkins, a popular open-source tool used to perform Continuous Integration and Continuous Delivery.
We spend time early on reviewing the key Jenkins features and associated terminology. We then take you through a deep dive in configuring Jenkins to perform automated builds using the Jenkins web administration console in hands-on demonstrations, ensuring that you become familiarised with Jenkins and how to administer it. We’ll demonstrate features such as:
- Installing and setting up Jenkins
- Creating and configuring pipelines manually
- Creating and configuring pipelines using a Jenkinsfile
- Configuring Jenkins pipelines using the Blue Ocean interface
- Defining build execution environments using docker containers
- Triggering build pipelines, manually and automatically
- Navigating downstream and upstream build projects
- Connecting to version control repositories such as GitHub
- Setting up build pipelines for Java-based projects using Gradle
- Recording artifacts and test results
- Setting up and scaling out Jenkins with multiple build agents and executors using SSH
What you'll learn:
- The basic principles of build automation as implemented within Jenkins and how should be applied to manage and maintain building, testing, and deploying your own enterprise software projects
- How to install, setup, and configure Jenkins pipelines
- The key differences between Jenkins declarative and scripted pipelines
- How to manage build artifacts and test results
- How to scale out Jenkins using Master and Build Agent setups using SSH
- The benefits of codifying pipeline build instructions using a Jenkinsfile
- How to leverage Docker containers within a Jenkins pipeline to provide additional build isolation and flexibility
- How to install and use the newer more modern pipeline centric BlueOcean user interface
- How to integrate and leverage 3rd party build tools like Gradle, Maven, Yarn, Webpack, and many more within a Jenkins pipeline
This training course provides many hands-on demonstrations where you will observe first hand how to use Jenkins to build and release different types of software projects, for example:
- Building a back end application developed using Java, Gradle, and Docker, requiring Jenkins to compile the source code, packaging it into a WebArchive file, and then finally releasing it into a Tomcat based Docker image complete with Splunk based instrumentation for logging and monitoring
- A basic understanding of CICD, or Continuous Integration and Continuous Delivery
- A basic understanding of software development and the software development life cycle
- A basic understanding of version control and associated workflows
- Software Build and Release Engineers
- Software Developers
- DevOps Practitioners
- [Instructor] Welcome back! In this lecture, we'll provide you with an understanding of the basic principles of Jenkins Pipelines and how to use them to automate your own CICD workflows.
Okay, let's begin. When it comes to building, releasing, and updating software applications frequently and reliably, you need to lean heavily on automated processes. Automation in the form of CICD is the goal that you should strive for. CICD is used to model all part of your integration workflow. For example, build, test, package, and deploy stages should be configured within your pipeline. With your CICD pipeline configured and enabled, then as each developer completes the feature development, and commits them to the main integration branch, the CICD pipeline should be triggered to perform each of the individual integration stages.
Jenkins provides great support for modeling and configuring CICD pipelines. Some benefits attributed to using Jenkins pipelines are speed, Jenkins CICD pipelines, by their very nature, are automated, and all of the execution stages can be performed completely hands-off. Productivity, developers can maintain their focus on building new product features, rather than performing manual testing and release procedures. Reduced risk, with automated test suites in place, the product can continually regression testing to ensure that it remain bug free. Time to market, features are released far quicker into production and therefore into the hands of customers. Security, the codebase and application can be rigorously security tested repeatedly to ensure that the application, once released into production, is battle hardened.
Now that we understand the benefits associated with using pipelines, let's move on and explore how Jenkins provides two different syntaxes for creating and configuring pipelines, which cover both ends of the pipeline complexity spectrum.
Okay, go ahead and close this lecture and we'll see you shortly in the next one.
About the Author
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.