DevOps Tools with Git and Jenkins
© Elephant Scale
January 13, 2020
Overview
Developers and DevOps engineers need collaboration tools to write effective code, implement Test Driven Development methodologies, and automate deployments. Continuous Integration and Continuous Delivery are best practices in handling complex development and deployment scenarios while a product is under development.
Git and Jenkins are the twin pillars of the developers’ Continuous Integration and Continuous Delivery toolbox. By using these tools effectively, developers and dev/ops engineers can ensure much higher quality code and better results.
Duration
3 days
Audience
Software Developers
Prerequisites
- familiarity with programming in at least one language
- Basic knowledge of Linux and command line
Lab environment
A lab environment will be provided for students.
Zero Install: There is no need to install software on students’ machines.
Objectives
After completing the course, the students will be able to:
- See the value of Source Code Control for Developers
- Understand Git as an essential tool for development workflows.
- Implement Continuous Integration and Continuous Delivery using Jenkins
- Master the best practices for test creation
Course Outline
Introduction to the Modern Developer Workflow
Source Code Management
-
- What are source code management systems and how are they used?
- Cloud-based SCMs
- Incremental updates v clean check out
- Checking in code
- Infrastructure-as-Code
- Branch and Merge Strategies (per-branch release candidates)
About Git
-
- Git Workflow
- Using Git properly
Key CI/CD/Jenkins Concepts
-
- Continuous Delivery/Continuous Integration Concepts
- Difference between CI and CD
- Continuous delivery versus continuous deployment
Jenkins Basics
-
- Installation Wizard
- Jenkins Jobs
- Jenkins Builds
- Notifications
Testing as Part of the workflow
-
- Tests with git
- Running tests in Jenkins CI Pipeline
- Code Coverage
- Jenkins Reports
Jenkins Plugins
Artifacts
-
- Storing, Copying and Using artifacts
Building Continuous Delivery (CD) Pipelines
-
- Pipeline Concepts
- How to protect centralized pipelines when multiple groups use the same tools
- Definition of binary reuse, automated deployment, multiple environments