Curso DevOps Foundations for Java with Git Jenkins and Maven

  • DevOps | CI | CD | Kubernetes | Web3

Curso DevOps Foundations for Java with Git Jenkins and Maven

24 horas
Visão Geral

Curso DevOps Foundations for Java with Git Jenkins  and Maven, é a combinação de filosofias culturais, práticas e ferramentas que aumentam a capacidade de uma organização de fornecer aplicativos e serviços em alta velocidade. Sob um modelo DevOps, as equipes de desenvolvimento e operações não são mais "isoladas". A equipe de garantia de qualidade também se torna mais integrada ao desenvolvimento e às operações e ao longo do ciclo de vida do aplicativo.

 

Objetivo

Após realizar este Curso DevOps Foundations for Java with Git Jenkins  and Maven, voce será capaz de:

  • Entenda o que é DevOps
  • Implementar controle de versão com Git
  • Crie projetos Java com Maven
  • Implementar integração contínua com Jenkins
  • Integre Git com Jenkins
  • Implemente qualidade de código contínua com SonarQube
Publico Alvo
  • Desenvolvedores de software, líderes de equipe, arquitetos corporativos, arquitetos de soluções e arquitetos de tecnologia da informação
Pre-Requisitos
  • Algum conhecimento de Java é benéfico
Materiais
Inglês + Exercícios + Lab Pratico
Conteúdo Programatico

DevOps Fundamentals

  1. Why DevOps
  2. What is DevOps?
  3. Collaborative, Matrixed and Cross-Functional Teams
  4. Key Components of Successful DevOps Teams
  5. DevOps-ification
  6. DevOps Vocabulary
  7. DevOps Goals
  8. Not DevOps - Crush Buzzwords
  9. Driving Business Outcomes with DevOps
  10. Technology-Enabled Business
  11. DevOps Key Enabler for Digital Transformation
  12. Core Values and Mission
  13. Core Values - Culture
  14. Core Values - Automation
  15. Core Values - Measurement
  16. Core Values - Sharing
  17. Communication
  18. Collaboration
  19. Value Stream Mapping
  20. Behavioral Patterns for Success
  21. DevOps Org Structures
  22. DevOps Team - Separate
  23. DevOps Merged Organization
  24. DevOps Overlapped Organization
  25. Organizational Structure Leadership
  26. What Does Continuous Delivery Mean?
  27. Deployment Pipelines
  28. Your Organization is Doing CD if …
  29. Pipelining for CD
  30. Continuous Integration
  31. CI Pipeline
  32. CD & CI Methodologies
  33. Key Tool Categories for CI/CD

Introduction to Git

  1. What is Git
  2. Git's Design Goals
  3. Git's Design Goals (cont'd)
  4. Branching and Merging
  5. Branching and Merging (cont'd)
  6. Centralized Version Control
  7. Distributed Version Control
  8. Git Basics
  9. Git Basics (Cont'd)
  10. Git Basics (cont'd)
  11. Getting Git
  12. Git on the Server
  13. Git Repository Managers
  14. Git on Somebody Else's Server

Basic Git Operations

  1. Using Git
  2. Definitions
  3. Definitions (cont'd)
  4. Repository (cont'd)
  5. Definitions (cont'd)
  6. Commit
  7. Commit (continued)
  8. How to Think About Commits
  9. Viewing History
  10. Configuring Git
  11. Configuration Scope
  12. User Identification
  13. User Identification (cont'd)
  14. GPG Signing
  15. Gnu Privacy Guard
  16. GPG Basics
  17. GPG and Git
  18. .gitignore
  19. Other Useful Configurations

Branching, Merging and Remotes

  1. Branching
  2. Branches in Git
  3. Branches in Git (cont'd)
  4. Merge
  5. Merge (cont'd)
  6. Fast Forward Merge
  7. --no-ff
  8. More Than One Repository
  9. Working with Remotes
  10. Fetch and Pull
  11. Push
  12. Pull Requests
  13. Tagging a Commit
  14. Lightweight Tags
  15. Annotated Tags
  16. Sharing Tags
  17. Checking Out a Tag

Introduction to Git Flow

  1. Why Use an SCM Workflow?
  2. Why Use an SCM Workflow? (Cond.)
  3. What is Git Flow
  4. Benefits
  5. How Git Flow works?
  6. How Git Flow works? (Contd.)
  7. What is Git Flow? (Contd.)
  8. How Git Flow works? (Contd.)
  9. Git Flow Extension
  10. Initializing Git Flow
  11. Features
  12. Release
  13. Hotfixes
  14. Git Flow and Continuous Integration
  15. Git Flow – Summary
  16. Git Flow – Pros and Cons
  17. Git Flow – When it Works Best?
  18. Git Flow – When it Doesn’t Work?
  19. Git Flow Alternatives
  20. Trunk-based Development
  21. Trunk-based Development (Contd.)
  22. Trunk-based Development – When it Works?
  23. Trunk-based Development – When it Doesn’t Work?
  24. GitHub Flow
  25. GitHub Flow – Pros and Cons
  26. GitLab Flow
  27. GitLab Flow – Environment Branches
  28. GitLab Flow – Release Branches
  29. GitLab Flow – Release Branches (Contd.)
  30. GitLab Flow – Pros and Cons

Continuous Code Quality

  1. Continuous Code Quality
  2. What is SonarQube
  3. SonarQube - Benefits
  4. SonarQube (Multilingual)
  5. Seven Axes of Quality
  6. Potential Bugs
  7. Tests
  8. Comments and Duplication
  9. Architecture and Design
  10. Complexity
  11. SonarQube Installation
  12. SonarQube Components
  13. Code Quality (LOC, Code Smells)
  14. Code Quality (Project Files)
  15. Code Quality (Code)

Introduction to Continuous Integration, Continuous Delivery and Jenkins-CI

  1. Foundation of Agile AppDev
  2. XP Flow
  3. Extreme Programming
  4. Agile Development
  5. What is Continuous Integration
  6. What is Continuous Integration (cont'd)
  7. Typical Setup for Continuous Integration
  8. Setup Notes for Continuous Integration
  9. CI with Artifact Management
  10. What is Continuous Delivery?
  11. Why Continuous Delivery?
  12. DevOps and Continuous Delivery
  13. Continuous Delivery Challenges
  14. Continuous Delivery vs Continuous Deployment
  15. Jenkins Continuous Integration
  16. Jenkins Features
  17. Running Jenkins

Introduction to Apache Maven

  1. Build Tools for Java
  2. Build Tools for Java (cont'd)
  3. History of Build Tools
  4. Traditional Scripting
  5. 'make'
  6. Problems with Make
  7. Manual Build with JavaC
  8. ANT
  9. Pros and Cons of Ant
  10. Apache Maven
  11. Goals of Maven
  12. What is Apache Maven?
  13. What is Apache Maven (cont'd)
  14. Why Use Apache Maven?
  15. The Maven EcoSystem
  16. Consistent Easy-to-Understand Project Layout
  17. Convention Over Configuration
  18. Maven is Different
  19. Maven Projects have a Standardized Build
  20. Effect of Convention Over Configuration
  21. Importance of Plugins
  22. A Key Point on Maven!
  23. Summary – Key Features of Maven

Installing and Running Apache Maven

  1. Downloading Maven
  2. Installing Maven
  3. Run From Command Line
  4. Running Inside an IDE
  5. Settings.xml
  6. Local Repository

Installing and Running Jenkins

  1. Downloading and Installing Jenkins
  2. Running Jenkins as a Stand-Alone Application
  3. Running Jenkins as a Stand-Alone Application (cont'd)
  4. Running Jenkins on an Application Server
  5. The Jenkins Home Folder
  6. Installing Jenkins as a Windows Service
  7. Initial Configuration
  8. Configuration Wizard
  9. Configuration Wizard (cont'd)
  10. Configuring Tools
  11. Configuring Tools - Best Practices
  12. Logging in Jenkins
  13. Custom Log Recorders

Job Types in Jenkins

  1. Introduction
  2. Different types of Jenkins Items
  3. Different types of Jenkins Items (cont'd)
  4. Configuring Source Code Management(SCM)
  5. Working with Subversion
  6. Working with Subversion (cont'd)
  7. Working with Git
  8. Storing Credentials
  9. Service Accounts
  10. Storing Credentials (cont'd)
  11. Build Triggers
  12. Schedule Build Jobs
  13. Polling the SCM
  14. Polling vs Triggers
  15. Maven Build Steps

Getting Started With Maven

  1. Terminology and Basic Concepts
  2. Artifacts
  3. Lifecycle
  4. Default Lifecycle
  5. Plugins
  6. Running Maven - the Story So Far
  7. Running Maven from an IDE
  8. Common Goals
  9. pom.xml
  10. Example
  11. Example (cont'd)
  12. Artifact Coordinates
  13. Standard Layout for Sources

A Web Application in Maven

  1. A More Complex Project
  2. Putting it Together With Maven
  3. Packaging the Target Artifact
  4. The Source Tree
  5. Dependencies
  6. Transitive Dependencies
  7. Dependency Scope
  8. Working With Servers
  9. Declaring and Configuring Plugins
  10. Running the Plugin
  11. Binding a Plugin Goal to the Lifecycle
  12. Archetypes

Commonly Used Plugins

  1. Maven Plugins
  2. Declaring and Configuring Plugins
  3. Running the Plugin
  4. Binding a Plugin Goal to the Lifecycle
  5. Maven Surefire Test Plugin
  6. Failsafe Plugin
  7. Site Plugin
  8. JavaDoc Plugin
  9. PMD Plugin
  10. Code Coverage – Cobertura

Creating Archetypes

  1. Introduction to Maven Archetypes
  2. Introduction to Maven Archetypes (cont.)
  3. Using Interactive Mode to generate Goal
  4. Common Maven Archetypes

Repository Management

  1. Maven's Approach to Artifacts
  2. Publishing Artifacts
  3. Summary of Maven's Artifact Handling
  4. Repository
  5. Repository Manager
  6. Proxy Remote Repositories
  7. Types of Artifacts
  8. Release Artifacts
  9. Snapshot Artifacts
  10. Reasons to Use a Repository Manager
  11. Repository Coordinates
  12. Addressing Resources in a Repository

Release Management

  1. What is release Management?
  2. Release Management with Nexus
  3. Release Management with Maven

Jenkins Plugins

  1. Introduction
  2. Jenkins Plugins - SCM
  3. Jenkins Plugins – Build and Test
  4. Jenkins Plugins – Analyzers
  5. Jenkins for Teams
  6. Installing Jenkins Plugins

Securing Jenkins

  1. Jenkins Security - Overview
  2. Jenkins Security
  3. Authentication
  4. Authorization
  5. Confidentiality
  6. Activating Security
  7. Configure Authentication
  8. Using Jenkins's Internal User Database
  9. Creating Users
  10. Authorization
  11. Matrix-Based Security
  12. Note – Create the Administrative User
  13. Project-based Matrix Authorization
  14. Project-Based Authentication
  15. Role Based Access Control

Distributed Builds with Jenkins

  1. Distributed Builds - Overview
  2. Distributed Builds – How?
  3. Agent Machines
  4. Configure Jenkins Master
  5. Configure Projects
  6. Conclusion

Continuous Delivery and the Jenkins Pipeline

  1. Continuous Delivery
  2. Continuous Delivery (cont'd)
  3. DevOps and Continuous Delivery
  4. Continuous Delivery Challenges
  5. Continuous Delivery with Jenkins
  6. The Pipeline Plugin
  7. The Pipeline Plugin (cont'd)
  8. Defining a Pipeline
  9. A Pipeline Example
  10. Pipeline Example (cont'd)
  11. Parallel Execution
  12. Creating a Pipeline
  13. Invoking the Pipeline
  14. Interacting with the Pipeline
  15. Pipeline vs Traditional Jobs
  16. Conclusion

Best Practices for Jenkins

  1. Best Practices - Secure Jenkins
  2. Best Practices - Users
  3. Best Practices - Backups
  4. Best Practices - Reproducible Builds
  5. Best Practices - Testing and Reports
  6. Best Practices - Large Systems
  7. Best Practices - Distributed Jenkins
  8. Best Practices - Summary

Lab Exercises

  • Lab 1. Version Control - Git
  • Lab 2. Branching, Merging and Working with Remotes
  • Lab 3. GitFlow Workflow
  • Lab 4. Configure Tools in Jenkins
  • Lab 5. Maven configuration
  • Lab 6. Create a Maven Project
  • Lab 7. Create a Web Application from an Archetype
  • Lab 8. Create a Jenkins Job
  • Lab 9. A Multi-Module Project
  • Lab 10. Create a Standard Set of Dependencies
  • Lab 11. Write a Simple Maven Plugin
  • Lab 12. Create an Archetype
  • Lab 13. Create a Corporate Repository with Artifactory
  • Lab 14. Deploy to the Corporate Repository with Artifactory
  • Lab 15. Add Development Metrics
  • Lab 16. Create a Pipeline
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h