Duration 2 days – 14 hrs
Overview
This comprehensive training course is designed to provide participants with a deep understanding of essential DevOps tools: Git, Jenkins, and Bitbucket. The course covers fundamental concepts, practical implementation, and advanced techniques to streamline development workflows, improve collaboration, and automate the deployment process. By the end of the course, participants will be able to integrate these tools effectively to enhance their DevOps practices.
Objectives
- Gain a solid understanding of version control with Git.
- Learn how to use Bitbucket for repository management and collaboration.
- Master continuous integration and continuous deployment (CI/CD) with Jenkins.
- Understand how to integrate Git, Jenkins, and Bitbucket to create a seamless DevOps pipeline.
- Develop skills to automate and manage builds, tests, and deployments.
- Understand the importance of branching strategies.
- Learn various branching models.
- Implement effective branching strategies using Bitbucket.
- Best practices for managing branches in a collaborative environment.
Audience
- System Administrators: IT professionals looking to transition into a DevOps role.
- QA Testers: Quality assurance professionals interested in learning how DevOps integrates testing into the development pipeline.
- IT Operations Staff: Individuals working in IT operations aiming to collaborate more effectively with development teams.
- Recent Graduates: Individuals who have recently completed a degree in IT, computer science, or related fields and want to gain practical DevOps skills.
- Project Managers: Managers overseeing software development projects who need to understand DevOps methodologies.
- IT Professionals Seeking Career Change: Experienced IT workers looking to move into DevOps roles.
- Tech Enthusiasts: Anyone with a general interest in learning about DevOps and its applications in modern software development.
Pre-requisites
- Familiarity with version control concepts.
- Basic knowledge of using the command-line interface.
- Experience with any programming language is beneficial but not mandatory.
Course Content
Module 1
Introduction to DevOps and DevSecOps Concepts
- What and why of Devops
- Devops Tools – Overview and Usecase
- Source Control Management (SCM Tools)
- Continuous Integration
- Static ode Analysis Tool
- Storage Artifacts
- Continuous Deployment
- Containerization
- Configuration Management
Module 2
Introduction to Bitbucket
- What is SCM
- Why SCM
- Bitbucket overview
- Features of Bitbucket
- Setting up Bitbucket
- Branching and Merging
- Pull requests
- Security and Permissions
Module 3
Bitbucket Hands-on
- Create a Bitbucket Account
- Create your first repo
- Setup a git client and configure your account
- Basic Git commands: init, clone, add, commit, push, pull, fetch
- Working on multiple Git branches
- Advanced Git commands: fetch, rebase, merge, pull request cherry-pick, stash
- Handle merge conflict
- Git flow and trunk based development
Module 4
Working on Java code repos
- Import a Java repository
- Download java repo to git client
- Compile the code
- Run unit test
- Package the code
- Deploy the jar file
- Validate app running?
Module 5
Effective Branching Strategies in Bitbucket
Introduction
- Overview of Bitbucket
- Importance of Branching Strategies
- Benefits of having a clear branching strategy
Branching Models
- Feature Branching
- Explanation
- Use cases
- Gitflow Workflow
- Detailed explanation of the workflow
- When to use Gitflow
- Forking Workflow
- Explanation
- Use cases
- Trunk-Based Development
- Explanation
- Advantages and scenarios
Implementing Branching Strategies in Bitbucket
- Creating Branches
- How to create branches in Bitbucket
- Branch naming conventions
- Pull Requests
- Setting up and managing pull requests
- Code review process
- Branch Permissions
- Setting permissions for different branches
- Role-based access control
- Merging Strategies
- Merge commits
- Squash and merge
- Rebase and merge
- Branch Cleanup
- Automated branch cleanup
- Manual cleanup process
Hands-On Lab: Creating and Managing Branches in Bitbucket
Activity:
- Create a new feature branch
- Commit changes and push to Bitbucket
- Open a pull request
- Review and merge the pull request
Best Practices
- Consistent branch naming conventions
- Regularly merging changes from main branches
- Frequent code reviews and pull request updates
- Automated testing and continuous integration
Module 6
Static Code Analysis -Get started
- Overview of code quality and security analysis
- Setting up SonarQube
Module 7
Using SonarQube with Bitbucket java repo (hands-on lab)
- Integrating SonarQube with Bitbucket
- Analyzing code quality and security
- Running SonarQube analysis on a Java repo
- Configuring quality gates and interpreting results
Module 8
Jenkins automation of Java build and Cobol
- Login to Jenkins dashboard
- Create Jenkins Java pipeline project – Pipeline script
- Automate the java compile, Sonarqube, build, and deploy using pipeline script
- Create Jenkins Cobol pipeline project – Pipeline script
Module 9
Introduction to JFrog ( hands-on lab)
- Overview of JFrog Artifactory
- Setting up and configuring JFrog cloud free trial account
- Managing artifacts in JFrog
- Integrating JFrog with Bitbucket and Jenkins
- Deploying artifacts to JFrog from Jenkins
- Q & A
- Closing Remarks