¿Quieres más información? Contáctenos

DevOps Foundations for Java with Git, Jenkins, and Maven

DevOps es la combinación de filosofías, prácticas y herramientas culturales que aumenta la capacidad de una organización para entregar aplicaciones y servicios a alta velocidad. Bajo un modelo DevOps, los equipos de desarrollo y operaciones ya no están «aislados». El equipo de control de calidad también se integra más estrechamente con el desarrollo y las operaciones y durante todo el ciclo de vida de la aplicación. El curso DevOps BootCamp de Web Age Solution cubre los principios y herramientas de DevOps necesarios para la implementación integral de DevOps.

En esta formación, los asistentes aprenderán:

• Que es DevOps
• Control de versiones con Git
• Cree proyectos Java con Maven
• Integración continua con Jenkins
• Integra Git con Jenkins
• Implemente la calidad de código continua con SonarQube

Audience

Desarrolladores de software, jefes de equipo, arquitectos empresariales, arquitectos de soluciones y arquitectos de tecnologías de la información.

Pre-requisites

Algo de conocimiento de Java con desarrollo de aplicaciones web.

Temario

Capítulo 1. Conceptos básicos de DevOps

  • • Por qué DevOps
  • • ¿Qué es DevOps?
  • • Equipos colaborativos, matriciales y multifuncionales
  • • Componentes clave de los equipos de DevOps exitosos
  • • DevOps-ificación
  • • Vocabulario de DevOps
  • • Objetivos de DevOps
  • • No DevOps: aplasta las palabras de moda
  • • Impulsar los resultados comerciales con DevOps
  • • Negocio habilitado por la tecnología
  • • Habilitador clave de DevOps para la transformación digital
  • • Valores fundamentales y misión
  • • Valores fundamentales: cultura
  • • Valores fundamentales: automatización
  • • Valores fundamentales: medición
  • • Valores fundamentales: compartir
  • • Comunicación
  • • Colaboración
  • • Mapeo de flujo de valor
  • • Patrones de comportamiento para el éxito
  • • Estructuras de organización de DevOps
  • • Equipo de DevOps – Separado
  • • Organización fusionada de DevOps
  • • Organización superpuesta de DevOps
  • • Liderazgo de la estructura organizativa
  • • ¿Qué significa entrega continua?
  • • Canalizaciones de implementación
  • • Su organización está haciendo CD si …
  • • Canalización para CD
  • • Integración continua
  • • Canalización de CI
  • • Metodologías CD & CI
  • • Categorías de herramientas clave para CI / CD
  • • Resumen

Capítulo 2. Introducción a Git

  • • Que es Git
  • • Objetivos de diseño de Git
  • • Objetivos de diseño de Git (continuación)
  • • Ramificación y fusión
  • • Ramificación y fusión (continuación)
  • • Control de versiones centralizado
  • • Control de versiones distribuidas
  • • Conceptos básicos de Git
  • • Conceptos básicos de Git (continuación)
  • • Conceptos básicos de Git (continuación)
  • • Obteniendo Git
  • • Git en el servidor
  • • Administradores de repositorios de Git
  • • Git en el servidor de otra persona
  • • Resumen

Capítulo 3. Operaciones básicas de Git

  • • Usando Git
  • • Definiciones
  • • Definiciones (continuación)
  • • Repositorio (continuación)
  • • Definiciones (continuación)
  • • Cometer
  • • Comprometerse (continuación)
  • • Cómo pensar en los compromisos
  • • Ver historial
  • • Configurando Git
  • • Alcance de la configuración
  • • Identificación de usuario
  • • Identificación de usuario (continuación)
  • • Firma GPG
  • • Guardia de privacidad de GNU
  • • Conceptos básicos de GPG
  • • GPG y Git
  • • .gitignore
  • • Otras configuraciones útiles
  • • Resumen

Capítulo 4. Ramificación, fusión y controles remotos

  • • Derivación
  • • Sucursales en Git
  • • Ramas en Git (continuación)
  • • Unir
  • • Fusionar (continuación)
  • • Fusión de avance rápido
  • • –no-ff
  • • Más de un repositorio
  • • Trabajar con controles remotos
  • • Buscar y tirar
  • • Empujar
  • • Solicitudes de extracción
  • • Etiquetar una confirmación
  • • Etiquetas ligeras
  • • Etiquetas anotadas
  • • Compartir etiquetas
  • • Comprobación de una etiqueta
  • • Resumen

Capítulo 5. Introducción a Git Flow

  • • ¿Por qué utilizar un flujo de trabajo SCM?
  • • ¿Por qué utilizar un flujo de trabajo SCM? (Cond.)
  • • ¿Qué es Git Flow?
  • • Beneficios
  • • ¿Cómo funciona Git Flow?
  • • ¿Cómo funciona Git Flow? (Cont.)
  • • ¿Qué es Git Flow? (Cont.)
  • • ¿Cómo funciona Git Flow? (Cont.)
  • • Extensión Git Flow
  • • Inicializando Git Flow
  • • Características
  • • Liberación
  • • Hotfixes
  • • Git Flow e integración continua
  • • Git Flow – Resumen
  • • Git Flow: pros y contras
  • • Git Flow: ¿cuándo funciona mejor?
  • • Git Flow: ¿cuándo no funciona?
  • • Alternativas de Git Flow
  • • Desarrollo basado en troncales
  • • Desarrollo basado en troncales (cont.)
  • • Desarrollo basado en troncales: ¿cuándo funciona?
  • • Desarrollo basado en troncales: ¿cuándo no funciona?
  • • Flujo de GitHub
  • • Flujo de GitHub: pros y contras
  • • Flujo de GitLab
  • • GitLab Flow – Ramas de entorno
  • • GitLab Flow – Liberar ramas
  • • GitLab Flow – Liberar ramas (cont.)
  • • GitLab Flow: pros y contras
  • • Resumen

Capítulo 6. Calidad del código continuo

  • • Calidad de código continua
  • • ¿Qué es SonarQube?
  • • SonarQube – Beneficios
  • • SonarQube (multilingüe)
  • • Siete ejes de calidad
  • • Errores potenciales
  • • Pruebas
  • • Comentarios y duplicación
  • • Arquitectura y Diseño
  • • Complejidad
  • • Instalación de SonarQube
  • • Componentes de SonarQube
  • • Calidad de código (LOC, olor de código)
  • • Calidad del código (archivos de proyecto)
  • • Calidad del código (código)
  • • Resumen

Capítulo 7. Introducción a la integración continua, la entrega continua y Jenkins-CI

  • • Fundación de Agile AppDev
  • • Flujo de XP
  • • Programación extrema
  • • Desarrollo ágil
  • • ¿Qué es la integración continua?
  • • ¿Qué es la integración continua (continuación)?
  • • Configuración típica para integración continua
  • • Notas de configuración para la integración continua
  • • CI con gestión de artefactos
  • • ¿Qué es la entrega continua?
  • • ¿Por qué entrega continua?
  • • DevOps y entrega continua
  • • Desafíos de entrega continua
  • • Entrega continua frente a implementación continua
  • • Integración continua de Jenkins
  • • Funciones de Jenkins
  • • Ejecutando Jenkins
  • • Resumen

Capítulo 8. Introducción a Apache Maven

  • • Herramientas de compilación para Java
  • • Herramientas de compilación para Java (continuación)
  • • Historia de las herramientas de construcción
  • • Secuencias de comandos tradicionales
  • • ‘hacer’
  • • Problemas con Make
  • • Compilación manual con JavaC
  • • HORMIGA
  • • Pros y contras de Ant
  • • Apache Maven
  • • Goles de Maven
  • • ¿Qué es Apache Maven?
  • • ¿Qué es Apache Maven (continuación)?
  • • ¿Por qué utilizar Apache Maven?
  • • El EcoSistema Maven
  • • Diseño de proyecto consistente y fácil de entender
  • • Convención sobre configuración
  • • Maven es diferente
  • • Los proyectos de Maven tienen una construcción estandarizada
  • • Efecto de la convención sobre la configuración
  • • Importancia de los complementos
  • • ¡Un punto clave en Maven!
  • • Resumen: características clave de Maven

Capítulo 9. Instalación y ejecución de Apache Maven

  • • Descargando Maven
  • • Instalación de Maven
  • • Ejecutar desde la línea de comandos
  • • Ejecutando dentro de un IDE
  • • Settings.xml
  • • Repositorio local
  • • Resumen

Capítulo 10. Instalación y ejecución de Jenkins

  • • Descarga e instalación de Jenkins
  • • Ejecución de Jenkins como una aplicación independiente
  • • Ejecución de Jenkins como una aplicación independiente (continuación)
  • • Ejecución de Jenkins en un servidor de aplicaciones
  • • La carpeta de inicio de Jenkins
  • • Instalación de Jenkins como servicio de Windows
  • • Configuracion inicial
  • • Asistente de configuración
  • • Asistente de configuración (continuación)
  • • Configurando herramientas
  • • Configuración de herramientas: prácticas recomendadas
  • • Iniciar sesión en Jenkins
  • • Registradores de registros personalizados
  • • Resumen

Capítulo 11. Tipos de trabajo en Jenkins

  • • Introducción
  • • Diferentes tipos de artículos de Jenkins
  • • Diferentes tipos de artículos de Jenkins (continuación)
  • • Configuración de la administración de código fuente (SCM)
  • • Trabajando con Subversion
  • • Trabajar con Subversion (continuación)
  • • Trabajando con Git
  • • Almacenamiento de credenciales
  • • Cuentas de servicio
  • • Almacenamiento de credenciales (continuación)
  • • Construir disparadores
  • • Programar trabajos de compilación
  • • Sondeo del SCM
  • • Sondeo vs disparadores
  • • Pasos de compilación de Maven
  • • Resumen

Capítulo 12. Introducción a Maven

  • • Terminología y conceptos básicos
  • • Artefactos
  • • Ciclo vital
  • • Ciclo de vida predeterminado
  • • Complementos
  • • Running Maven: la historia hasta ahora
  • • Ejecutando Maven desde un IDE
  • • Objetivos comunes
  • • pom.xml
  • • Ejemplo
  • • Ejemplo (continuación)
  • • Coordenadas de artefactos
  • • Diseño estándar para fuentes
  • • Resumen

Capítulo 13. Una aplicación web en Maven

  • • Un proyecto más complejo
  • • Poniéndolo junto con Maven
  • • Empaquetado del artefacto objetivo
  • • El árbol fuente
  • • Dependencias
  • • Dependencias transitivas
  • • Alcance de la dependencia
  • • Trabajar con servidores
  • • Declaración y configuración de complementos
  • • Ejecutando el complemento
  • • Vinculación de un objetivo de complemento al ciclo de vida
  • • Arquetipos
  • • Resumen

Capítulo 14. Complementos de uso común

  • • Complementos de Maven
  • • Declaración y configuración de complementos
  • • Ejecutando el complemento
  • • Vinculación de un objetivo de complemento al ciclo de vida
  • • Complemento de prueba Maven Surefire
  • • Complemento a prueba de fallos
  • • Complemento del sitio
  • • Complemento JavaDoc
  • • Complemento PMD
  • • Cobertura de código – Cobertura
  • • Resumen

Capítulo 15. Creación de arquetipos

  • • Introducción a los arquetipos de Maven
  • • Introducción a los arquetipos de Maven (cont.)
  • • Uso del modo interactivo para generar objetivos
  • • Arquetipos comunes de Maven
  • • Resumen

Capítulo 16. Gestión de repositorios

  • • Enfoque de Maven a los artefactos
  • • Publicar artefactos
  • • Resumen del manejo de artefactos de Maven
  • • Repositorio
  • • Gerente de repositorio
  • • Repositorios remotos proxy
  • • Tipos de artefactos
  • • Liberar artefactos
  • • Artefactos de instantáneas
  • • Razones para utilizar un administrador de repositorio
  • • Coordenadas del repositorio
  • • Abordar los recursos en un repositorio
  • • Resumen

Capítulo 17. Gestión de versiones

  • • ¿Qué es la gestión de versiones?
  • • Gestión de versiones con Nexus
  • • Gestión de versiones con Maven
  • • Resumen

Capítulo 18. Complementos de Jenkins

  • • Introducción
  • • Complementos de Jenkins – SCM
  • • Complementos de Jenkins: compilación y prueba
  • • Complementos de Jenkins – Analizadores
  • • Jenkins para equipos
  • • Instalación de complementos de Jenkins
  • • Resumen

Capítulo 19. Asegurar a Jenkins

  • • Seguridad de Jenkins: descripción general
  • • Seguridad de Jenkins
  • • Autenticación
  • • Autorización
  • • Confidencialidad
  • • Activando la seguridad
  • • Configurar la autenticación
  • • Uso de la base de datos de usuarios internos de Jenkins
  • • Crear usuarios
  • • Autorización
  • • Seguridad basada en matrices
  • • Nota: cree el usuario administrativo
  • • Autorización de matriz basada en proyectos
  • • Autenticación basada en proyectos
  • • Control de acceso basado en roles
  • • Conclusión

Capítulo 20. Compilaciones distribuidas con Jenkins

  • • Compilaciones distribuidas: descripción general
  • • Construcciones distribuidas: ¿cómo?
  • • Máquinas de agentes
  • • Configurar Jenkins Master
  • • Configurar proyectos
  • • Conclusión

Capítulo 21. Entrega continua y el oleoducto Jenkins

  • • Entrega continua
  • • Entrega continua (continuación)
  • • DevOps y entrega continua
  • • Desafíos de entrega continua
  • • Entrega continua con Jenkins
  • • El complemento Pipeline
  • • El complemento Pipeline (continuación)
  • • Definición de una tubería
  • • Un ejemplo de canalización
  • • Ejemplo de canalización (continuación)
  • • Ejecución paralela
  • • Crear una canalización
  • • Invocar el Pipeline
  • • Interactuar con el Pipeline
  • • Pipeline vs trabajos tradicionales
  • • Conclusión

Capítulo 22. Mejores prácticas para Jenkins

  • • Prácticas recomendadas: seguridad en Jenkins
  • • Prácticas recomendadas: usuarios
  • • Prácticas recomendadas: copias de seguridad
  • • Prácticas recomendadas: compilaciones reproducibles
  • • Prácticas recomendadas: pruebas e informes
  • • Prácticas recomendadas: sistemas grandes
  • • Prácticas recomendadas: Jenkins distribuido
  • • Prácticas recomendadas: resumen

Ejercicios de laboratorio

  • 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. Install Maven
  • Lab 6. Create a Maven Project
  • Lab 7. Create a Web Application from an Archetype
  • Lab 8. Add Web Site, Static Analysis, and Code Coverage
  • Lab 9. Create a Jenkins Job
  • Lab 10. A Multi-Module Project
  • Lab 11. Create a Standard Set of Dependencies
  • Lab 12. Write a Simple Maven Plugin
  • Lab 13. Create an Archetype
  • Lab 14. Create a Corporate Repository
  • Lab 15. Deploy to the Corporate Repository
  • Lab 16. Add Development Metrics
  • Lab 17. Create a Pipeline

Scroll al inicio