Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CI CD de aplicaciones Spring Boot con Jenkins X

CI CD de aplicaciones Spring Boot con Jenkins X

Eddú Meléndez Gonzales

July 02, 2018
Tweet

More Decks by Eddú Meléndez Gonzales

Other Decks in Programming

Transcript

  1. Quién soy? - Ingeniero de Software - Co-organizador en las

    comunidades de Java, Jenkins, Cloud Native - Miembro Asociado del Java Community Process (JCP) - Contribuyente de Proyectos Open Source (spring-boot, spring-security, spring-framework, spring-session, spring-ldap, spring-cloud-contract, arquillian-cube, mvc 1.0) - Contribuyente #10 en spring boot - Autor de Spring Boot Mybatis Starter
  2. “Integración Continua es una práctica de desarrollo de software donde

    los miembros de un equipo integran su trabajo frecuentemente, usualmente cada persona integra por lo menos diariamente - llevando a múltiples integraciones por día. Cada integración es verificada por una construcción automática (incluyendo pruebas) para detectar errores de integración lo más pronto posible. “ Martin Fowler Continuous Integration (CI)
  3. Continuous Delivery (CD) “Entrega Continua es una disciplina del desarrollo

    de software donde se construye software de forma que el software puede ser liberado a producción en cualquier momento.” Martin Fowler
  4. Continuous Deployment (CD) “Despliegue Continuo significa que cada cambio pasa

    por un pipeline y automáticamente se pone en producción, terminando en varios despliegues en producción cada día.” Martin Fowler
  5. Qué es Jenkins? • Fork de Hudson • Herramienta de

    Integración Continua • Escrito en Java • Creado por Kohsuke Kawaguchi
  6. Funcionalidades • Command Line • Pipelines • Environment • Promotion

    • Preview Environments • Feedback • Applications • Addons
  7. Estado actual: • OS: mac, linux • Cloud Providers: AWS,

    Azure, GKE, Minikube, Minishift, OpenShift • Tools: Helm, Skaffold, Argo • Git Providers: GitHub, GitHub Enterprise, Bitbucket Cloud • Issue Trackers: GitHub, GitHub Enterprise, JIRA • Repositories: Chart Museum, Docker Repository, Nexus • Build Packs: Go, Java + Maven, Java + Gradle, Node, Rust
  8. Creación de un cluster jx create cluster gke --batch-mode --project-id

    jenkins-x-demo \ --cluster-name my-jenkins-x --zone us-west1-b --machine-type n1-standard-2 \ --min-num-nodes 3 --max-num-nodes 4 --default-admin-password mypassword \ --git-provider-url https://github.com --git-username myuser --git-api-token api-token --kubernetes-version 1.10
  9. Manejo de aplicaciones • Listar jx get applications • Crear

    aplicación spring boot jx create spring -d web -d actuator
  10. Manejo de ambientes • Listar jx get environments • Crear

    ambientes jx create env --name qa --label QA --namespace test --prefix batfire
  11. Roadmap • OS: windows • Cloud Providers: Digital Ocean, EKS,

    IBM Cloud, PKS • Tools: Prow, LetsEncrypt, Argo • Git Providers: Gitea, Bitbucket Server, GitLab • Issue Trackers: Gitea • Repositories: Artifactory • Build Packs: Kubeless, Python, Serverless, Swift, .Net