Basic Concept
- Let’s Understand about Software Development Model
- Overview of Waterfall Development Model
- Challenges of Waterfall Development Model
- Overview of Agile Development Model
- What is DevOps?
- Waterfall -> Agile -> CI/CD -> DevOps -> DevSecOps
- What is DevSecOps?
- What is SRE?
- Microservices Fundamentals
- API Fundamental
Source Code Management
- Distributed version control and Centralized version control
- Introduction of Git
- Git Concepts and Architecture
- Branching and Merging using Git
- Git Fetch vs Git pull
- Git rebase vs Git merge
- Comparing commits, branches and workspace
Build Management : Maven and Gradle
Maven
- Introduction to Apache Maven
- Advantage of Apache Maven over other build tools
- Understanding the Maven Lifecycle and Phase
- Understanding the Maven Goals
- Understanding the Maven Plugins
- Understanding the Maven Repository
- Understanding and Maven Release and Version
- Prerequisite and Installing Apache Maven
- Understanding and using Maven Archetypes
- Understanding Pom.xml and Setting.xml
- Playing with multiples Maven Goals
- Introducing Maven Dependencies
Gradle
- What is Gradle?
- Why Gradle?
- Installing and Configuring Gradle
- Build Java Project with Gradle
- Dependency Management in Gradle
- Project Structure in Gradle
- Gradle Tasks
Code Analysis and Securing Code : SonarQube
- What is SonarQube?
- Benefits of SonarQube?
- Alternative of SonarQube
- Understanding Various License of SonarQube
- Architecture of SonarQube
- How SonarQube works?
- Components of SonarQube
- SonarQube runtime requirements
- Installing and configuring SonarQube in Linux
- Basic Workflow in SonarQube using Command line
Unit Testing, Acceptance Testing and Code coverage:Junit, Jacoco, Selenium
Junit
- What is Unit Testing?
- Tools for Unit Testing
- What is Junit?
- How to configure Junit?
- Writing Basic Junit Test cases
- Running Basic Junit Test cases
- Junit Test Results
Jacoco
- Overview of Code coverage process
- Introduction of Jacoco
- How Jacoco works!
- How to install Jaoco?
- Setup testing Environment with Jacoco
- Create test data files using Jacoco and Maven
- Create a Report using Jacoco
- Demo - Complete workflow of Jacoco with Maven and Java Project
Package Management: Nexus
WebServer : Apache HTTP and Nginx
- Introduction to web server
- Overview NGINX
- NGINX vs Apache
Configuration and Deployment Management: Ansible
Container Orchestration : Kubernetes and Helm Introdution
Infrastructure Coding: Terraform
**Continuous Integration: Jenkins **
- Lets understand Continuous Integration
- What is Continuous Integration
- Benefits of Continuous Integration
- What is Continuous Delivery
- What is Continuous Deployment
- Continuous Integration Tools
- What is Jenkins
- History of Jenkins
- Jenkins Architecture
- Jenkins Vs Jenkins Enterprise
- Jenkins Installation and Configurations
- Jenkins Dashboard Tour
- Understand Freestyle Project
- Freestyle General Tab
- Freestyle Source Code Management Tab
- Freestyle Build Triggers Tab
- Freestyle Build Environment
- Freestyle Build
- Freestyle Post-build Actions
- Manage Jenkins
- My Views
- Credentials
- People
- Build History
- Creating a Simple Job
- Simple Java and Maven Based Application
- Simple Java and Gradle Based Application
- Jobs Scheduling in Jenkins
- Manually Building
- Build Trigger based on fixed schedule
- Build Trigger by script
- Build Trigger Based on pushed to git
- Useful Jobs Configuration
- Jenkins Jobs parameterised
- Execute concurrent builds
- Jobs Executors
- Build Other Projects
- Build after other projects are built
- Throttle Builds
- Jenkins Integration with other tools: JIRA, GIT, SonarQube, Maven, Junit, Ansible, Docker, Nexus
- Notification & Feedback in Jenkins
- CI Build Pipeline & Dashboard
- Email Notification
- Advance Email Notification
- Jenkins Advance - Administrator
- Security in Jenkins
- Authorization in Jenkins
- Authentication in Jenkins
- Managing folder/subfolder
- Jenkins Upgrade
- Jenkins Backup
- Jenkins Restore
- Jenkins Command Line
- Reports in Jenkins
- Jenkins Node Managment