aprovechando la tecnología para un desarrollo ágil

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

Upload: omenar

Post on 28-Jan-2018

297 views

Category:

Software


0 download

TRANSCRIPT

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