Aprovechando la tecnología para un desarrollo ágil

27
APROVECHANDO LA TECNOLOGÍA PARA UN DESARROLLO ÁGIL Osvaldo Mena Requena Lead Engineer en Cornershop

Transcript of Aprovechando la tecnología para un desarrollo ágil

Page 1: Aprovechando la tecnología para un desarrollo ágil

APROVECHANDO LA TECNOLOGÍA PARA UN

DESARROLLO ÁGILOsvaldo Mena Requena

Lead Engineer en Cornershop

Page 2: Aprovechando la tecnología para un desarrollo ágil

CORNERSHOP• Grocery delivery.

• Presentes en Ciudad de México y Santiago de Chile.

• Inicio del proyecto: Enero del 2015.

• CTO + 2 iOS Developers + 2 Android Developers+ 4 Backend Engineers, 1 QA Engineer.

Page 3: Aprovechando la tecnología para un desarrollo ágil

Customer apps Shopper apps

Operations Reporting and management

Page 4: Aprovechando la tecnología para un desarrollo ágil

ORGANIZACIÓN

Page 5: Aprovechando la tecnología para un desarrollo ágil

PIVOTAL TRACKERAdministración de Proyectos

Page 6: Aprovechando la tecnología para un desarrollo ágil

SLACK

Mensajería Instantánea

Salas de Chat Privados

Integraciones

$$$

Page 7: Aprovechando la tecnología para un desarrollo ágil

EMAILTecnología vieja, pero tecnología al fin y al cabo.

Page 8: Aprovechando la tecnología para un desarrollo ágil

REUNIONESUn mal necesario.

Page 9: Aprovechando la tecnología para un desarrollo ágil

DESARROLLO

Page 10: Aprovechando la tecnología para un desarrollo ágil

GIT FLOW“branching model”

feature, develop and master branches

La historia es fácil de entender.

Page 11: Aprovechando la tecnología para un desarrollo ágil

VAGRANT

• Entornos de desarrollo reproducibles.

• Muy similar al entorno de producción.

• Permite desarrollar y correr tests de forma local.

Page 12: Aprovechando la tecnología para un desarrollo ágil

DOCKER

• Tecnología de virtualización.

• Mismos contenedores corriendo en desarrollo y en producción.

• Entornos reproducibles.

• Ecosistema emergente.

Page 13: Aprovechando la tecnología para un desarrollo ágil
Page 14: Aprovechando la tecnología para un desarrollo ágil

CIRCLE CIContinuous Integration and Deployment

Page 15: Aprovechando la tecnología para un desarrollo ágil

Abstracción de memoria, CPU, almacenamiento, networking y cualquier otro tipo de recurso.

Permite “correr” procesos en un clúster distribuido.

Soporte para Docker Containers.

Page 16: Aprovechando la tecnología para un desarrollo ágil

MARATHONMesos Scheduler

Page 17: Aprovechando la tecnología para un desarrollo ágil
Page 18: Aprovechando la tecnología para un desarrollo ágil

MONITORINGPorque después del deploy, vienen los fallos.

Page 19: Aprovechando la tecnología para un desarrollo ágil

Application Performance& Server Monitoring

Page 20: Aprovechando la tecnología para un desarrollo ágil
Page 21: Aprovechando la tecnología para un desarrollo ágil

INCIDENT MANAGEMENT SYSTEMManda un mail a quien esté on-call.5 minutos después, manda un SMS.

5 minutos después, llámalo.Luego intenta con la siguiente persona disponible.

Page 22: Aprovechando la tecnología para un desarrollo ágil

SENTRYReporte de “crashes” en

tiempo real.

Soporte para una gran cantidad de lenguajes y

plataformas.

Diagnóstico de crashes con información relevante.

Page 23: Aprovechando la tecnología para un desarrollo ágil
Page 24: Aprovechando la tecnología para un desarrollo ágil

LOGGLYAdministración, búsqueda y

resúmenes de logs.

Alternativa DIY: Logstash + Kibana + Elasticsearch.

Page 25: Aprovechando la tecnología para un desarrollo ágil
Page 26: Aprovechando la tecnología para un desarrollo ágil

CORNERSHOP

Alertas y notificaciones oportunas.

Avanzar rápido y en lo que importa.

Jugar con las economías de escala.

La importancia del equipo.

Page 27: Aprovechando la tecnología para un desarrollo ágil

APROVECHANDO LA TECNOLOGÍA PARA UN

DESARROLLO ÁGILOsvaldo Mena Requena

Lead Engineer en Cornershop