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. This hands-on Jenkins training course teaches enables engineering and development teams to use a practical end-to-end DevOps Pipeline to create, test and deploy Java and Python code using Jenkins.
- 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. NOTE: This course assumes a working knowledge of Java and Python. If additional training is needed to prepare your team, please contact your learning advisor.
Skills Gained
- Automate your Software Delivery Pipeline with Jenkins
- Integrate Jenkins with Git / GitHub
- Take your Agile Teams to the next level with Jenkins
- Reduce integration issues
- Improve code quality
- Manage plugins within the Jenkins platform
- Build and automate deployments
- Review and implement best practices for Jenkins Pipeline
Who Can Benefit
- Software Developers
- Code Developers
- Quality Assurance Professionals
- Software Testers
- Product Owners
- System administrators and operators
- Business Intelligence Professionals
- Infrastructure Engineers
- DevOps Engineers
- Development Team Members
- Operations Team Members
- Anyone who is a hands-on user of Jenkins
Prerequisites
- Strong working knowledge of Java and Python
- Experience working on the command line of Unix, Linux, or PowerShell
- Writing code with a text editor
- Basic system administration knowledge such as installing packages, configuration, starting a service
Course Outline
Part 1: Source Control Management with Git
- Purpose and overview of Git
- Use cases for Git
- Git flow
- Git providers
- Git configuration
- Finding help on Git
- Creating Local Git Repositories
- Basic Commands: add, commit, status, log
- Comparing commits: git diff
- Using a Repository: git push
- Branches: creating, merging and deleting
- Resolving merge conflicts
- Managing Pull Requests
- Using SSH keys with git platform private repositories
Part 2: Continuous Integration/Continuous Deployment with Jenkins
- Continuous Integration / Continuous Delivery (CI/CD): Jenkins
- CI/CD = Continuous Integration / Continuous Deployment
- Jenkins use case, purpose & history
- Architecture
- Using Plugins
- Initializing a Jenkins Master
- Projects / jobs
- Freestyle UI jobs
- CI/CD as Code: Pipeline Projects
- Declarative versus Scripted pipelines
- Views and folders
- Managing credentials and secrets
- Distributing workloads – Master and Agent nodes
- Integrating with Git: Source Control Management
- Triggers: Scheduled Polling and Webhooks
- Notifications: Instant Messaging Integration
- Requiring human input and approval
- Automated code linting and testing
- Jenkins Integration with managed nodes
- Continuous deployment through Jenkins
Part 3: Code Deployment and Release Management
- Java: Building an artifact, Storing Artifacts locally
- Python: Building an artifact, Storing Artifacts locally
Part 4: Notifications with Slack
- Integration setup
- Using Slack for CI/CD notifications
Part 5: Linux Management