SlideShare uma empresa Scribd logo
1 de 26
Serling dev team
GEx’s Platform
Procesos, practicas y patrones de desarrollo
Objetivo
• Mostrar los distintos procesos, practicas,
patrones y algunas de las herramientas.
Jira
Seguimiento de tareas, issues
Jira
• Cada cosa en la que un desarrollador trabaja, debe tener
un issue en Jira
• Task
• Bug
• Refactor
• Improvement
• A veces trabajamos en cosas que no tienen issue,
tratamos de evitarlo
Git
Control de versiones
Git
• Master branch
• Intentamos que sea la rama más estable
posible.
• Sobre esta rama se ejecutan pruebas después
de cada commit/push (Ver explicación más
adelante sobre Jenkins)
• No hacemos commit/push directo (solo en
quick fixes)
Git: feature branches
• Se crea un branch por cada cosa que el desarrollador
necesita hacer
• Generalmente el nombre del branch es el id del issue
de Jira
• Evitamos que cada desarrollador tenga un único
branch. p.e.
• domix development branch
• Usamos tantos branch como sea necesario
Git: feature branches
Git: feature branches
• Todos los branches se crean a partir de master
• Los branches son “baratos”
• Es fácil cambiar de una tarea a otra (solo hay que
hacer commit y cambiar de branch si es que hay
trabajo a medias)
• Tratamos de evitar: git stash
• Los conflictos se resuelven en los feature branches
Git: feature branches
• Tratamos de hacer la mayor cantidad de
commits
• Eso ayuda a la trazabilidad de los cambios en el
código
• No es buena idea hacer commits mounstruo
Git: feature branches
• Tratamos de nombrar los branches usando una
jerarquía que describa la intención del branch
• Así es sencillo saber para que fue creado el branch
• bug
• feature
• refactor
• deploy
Git: feature branches
Git: feature branches
• git checkout -b {bug|feature|refactor}/{idIssueJira}
{comentario}
• git checkout -b bug/MTFANAPI-25_problema_al_buscar_partidos
• git checkout -b feature/MTFANAPI-23_perfil_usuario
• git checkout -b feature/MTFANAPI-23
Git: feature branches
Git: Pull Request
• Tratamos de evitar commits/pushes en master
• Cuando el desarrollador termina su tarea, crea
un Pull Request hacia master
• Opcionalmente se asigna a todo el equipo como
revisor
Git: Pull Request
Cuando al menos 2 aprueban
el PR se hace merge
Git commits
Si pongo el id de issue de Jira en el comentario del commit
Cosas magicas suceden
Git commits
Si pongo el id de issue de Jira en el comentario del commit
Cosas magicas suceden
Jenkins
Integración Continua
Jenkins
• Tenemos varios trabajos (Jenkins Jobs)
• Uno que verifica los cambios en rama master y ejecuta
al menos toda la suite de pruebas
• mt_fan_api_master_test!
• Genera reportes
• Pruebas
• Cobertura de código
• Análisis estático de código (Lint)
• Si el trabajo termina exitosamente, automáticamente
hace merge al branch “deploy/staging”
Jenkinscobertura de código
Cantidad de pruebas
Violaciones de
análisis estatico
Jenkins
• Implementamos un pipeline
de construcción encadenado
• Esto significa que si el trabajo
anterior funciona
correctamente, otro trabajo se
dispara
Jenkins
• mt_fan_api_deploy_staging!
• Se dispara cuando hay cambios en el branch “deploy/staging”
• Lo único que hace es el despliegue de la API en el ambiente
de staging (muchos le llaman ambiente de “desarrollo” o
“develop”)
• El ambiente de desarrollo IMO es cada maquina de los
desarrolladores
• Si el despliegue es exitoso, entonces se dispara el trabajo que
contiene las pruebas funcionales.
Jenkins
• mt_fan_functional_tests!
• Ejecuta pruebas funcionales sobre ambiente de
staging

Mais conteúdo relacionado

Destaque

Destaque (6)

SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
SGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page InterfaceSGCE 2012 Lightning Talk-Single Page Interface
SGCE 2012 Lightning Talk-Single Page Interface
 
Machine Learning & Apache Mahout
Machine Learning & Apache MahoutMachine Learning & Apache Mahout
Machine Learning & Apache Mahout
 
SGNext Elasticsearch
SGNext ElasticsearchSGNext Elasticsearch
SGNext Elasticsearch
 
JVM Reactive Programming
JVM Reactive ProgrammingJVM Reactive Programming
JVM Reactive Programming
 
SGCE 2014 micro services
SGCE 2014 micro servicesSGCE 2014 micro services
SGCE 2014 micro services
 

Semelhante a Serling dev team, development process

Semelhante a Serling dev team, development process (20)

Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
Flujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en gitFlujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en git
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
 
Git with gifs
Git with gifsGit with gifs
Git with gifs
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Git, como no romper un repositorio
Git, como no romper un repositorioGit, como no romper un repositorio
Git, como no romper un repositorio
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con git
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Git windows
Git windowsGit windows
Git windows
 
Un modelo exitoso para git
Un modelo exitoso para gitUn modelo exitoso para git
Un modelo exitoso para git
 

Mais de Domingo Suarez Torres

Mais de Domingo Suarez Torres (20)

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
 
Contenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMXContenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMX
 
Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de Microservicios
 
Java Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDLJava Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDL
 
meetup digital ocean kubernetes
meetup digital ocean kubernetesmeetup digital ocean kubernetes
meetup digital ocean kubernetes
 
Peru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVMPeru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVM
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
 
Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architecture
 
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 Observability
 
Cloud Native Mexico Presentacion
Cloud Native Mexico PresentacionCloud Native Mexico Presentacion
Cloud Native Mexico Presentacion
 
gRPC: Beyond REST
gRPC: Beyond RESTgRPC: Beyond REST
gRPC: Beyond REST
 
Devops Landscape
Devops LandscapeDevops Landscape
Devops Landscape
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 
Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016
 
Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Serling dev team, development process

  • 1. Serling dev team GEx’s Platform Procesos, practicas y patrones de desarrollo
  • 2. Objetivo • Mostrar los distintos procesos, practicas, patrones y algunas de las herramientas.
  • 4. Jira • Cada cosa en la que un desarrollador trabaja, debe tener un issue en Jira • Task • Bug • Refactor • Improvement • A veces trabajamos en cosas que no tienen issue, tratamos de evitarlo
  • 6. Git • Master branch • Intentamos que sea la rama más estable posible. • Sobre esta rama se ejecutan pruebas después de cada commit/push (Ver explicación más adelante sobre Jenkins) • No hacemos commit/push directo (solo en quick fixes)
  • 7. Git: feature branches • Se crea un branch por cada cosa que el desarrollador necesita hacer • Generalmente el nombre del branch es el id del issue de Jira • Evitamos que cada desarrollador tenga un único branch. p.e. • domix development branch • Usamos tantos branch como sea necesario
  • 9. Git: feature branches • Todos los branches se crean a partir de master • Los branches son “baratos” • Es fácil cambiar de una tarea a otra (solo hay que hacer commit y cambiar de branch si es que hay trabajo a medias) • Tratamos de evitar: git stash • Los conflictos se resuelven en los feature branches
  • 10. Git: feature branches • Tratamos de hacer la mayor cantidad de commits • Eso ayuda a la trazabilidad de los cambios en el código • No es buena idea hacer commits mounstruo
  • 11. Git: feature branches • Tratamos de nombrar los branches usando una jerarquía que describa la intención del branch • Así es sencillo saber para que fue creado el branch • bug • feature • refactor • deploy
  • 13. Git: feature branches • git checkout -b {bug|feature|refactor}/{idIssueJira} {comentario} • git checkout -b bug/MTFANAPI-25_problema_al_buscar_partidos • git checkout -b feature/MTFANAPI-23_perfil_usuario • git checkout -b feature/MTFANAPI-23
  • 15. Git: Pull Request • Tratamos de evitar commits/pushes en master • Cuando el desarrollador termina su tarea, crea un Pull Request hacia master • Opcionalmente se asigna a todo el equipo como revisor
  • 17. Cuando al menos 2 aprueban el PR se hace merge
  • 18. Git commits Si pongo el id de issue de Jira en el comentario del commit Cosas magicas suceden
  • 19. Git commits Si pongo el id de issue de Jira en el comentario del commit Cosas magicas suceden
  • 21. Jenkins • Tenemos varios trabajos (Jenkins Jobs) • Uno que verifica los cambios en rama master y ejecuta al menos toda la suite de pruebas • mt_fan_api_master_test! • Genera reportes • Pruebas • Cobertura de código • Análisis estático de código (Lint) • Si el trabajo termina exitosamente, automáticamente hace merge al branch “deploy/staging”
  • 22. Jenkinscobertura de código Cantidad de pruebas Violaciones de análisis estatico
  • 23. Jenkins • Implementamos un pipeline de construcción encadenado • Esto significa que si el trabajo anterior funciona correctamente, otro trabajo se dispara
  • 24. Jenkins • mt_fan_api_deploy_staging! • Se dispara cuando hay cambios en el branch “deploy/staging” • Lo único que hace es el despliegue de la API en el ambiente de staging (muchos le llaman ambiente de “desarrollo” o “develop”) • El ambiente de desarrollo IMO es cada maquina de los desarrolladores • Si el despliegue es exitoso, entonces se dispara el trabajo que contiene las pruebas funcionales.
  • 25.
  • 26. Jenkins • mt_fan_functional_tests! • Ejecuta pruebas funcionales sobre ambiente de staging