Muchas startups son mejores que una

O cómo trabajamos en InVision

por Pablo Fredrikson

Pablo Fredrikson

@pablokbs

  • Nerd
  • 11 años con Linux
  • Senior SRE @ InVision

 

¿Qué es una startup?

Velocidad

¿Que vamos a ver?

  • Equipos
  • Relaciones
  • Gente
  • Releases
  • Fallas
  • Herramientas
  • Progreso

Equipos

Equipos

  • Menos de 8 personas
  • Autónomos (deploys, código, herramientas, responsabilidades, configuraciones)
  • Forma de trabajo (hangouts, trello, jira, standups)

¿Autónomos?

  • Más divertido y motivado
  • Libertad a hacer lo que quieran (y como quieran)
  • Rápido (menos discusiones de cómo resolver un problema)
  • Menos dependencias entre equipos (menos esperas)

Autonomía

Alineamiento

Líder decide
qué y cómo

Micro
managing

Líder presenta el problema y
equipo elige cómo resolverlo

Todos hacen lo que quieren

Relaciones

Todos para uno, uno para todos

Preguntas que me hacen:

  • ¿Qué lenguaje/tecnología usan?
  • ¿Cómo manejan las tareas?
  • ¿Qué tan seguido hacen deploys?

Depende del equipo

Ventajas

  • El estándar se crea sólo (por ejemplo Git, Jira)
  • Cada equipo es dueño de su servicio y código
  • Herramientas compartidas
  • Cualquiera puede tocar cualquier código
    • Mejora la calidad
    • La gente aprende

Gente

Mis compañeros son los mejores

EGO

Motivación

Releases

¡Rápido, rápido, rápido!

Release difícil

Releases menos frecuentes

Release fácil

Releases más frecuentes

¿Cómo lo hacemos más facil?

  • Pequeños
  • Frecuentes
  • Feature flags (fácil de revertir)
  • Automatización de tests y CD (deploy bot)

Fallas

Fallar está permitido, pero que sea rápido

Errores rápidos

  • Afectan usuarios por menos tiempo
  • Rollbacks rápidos
  • Features separadas
  • RCA (Análisis de origen de problemas)
    • No es para culpar
    • ¿Qué aprendimos?
    • ¿Cómo mejoramos?

Herramientas

Bueno, algunas cosas no son tan liberales

Cosas obligatorias comunes

  • Git
  • Librerías base
    • Monitoreo
    • Tests
    • Autenticación
  • Retrospectivas
  • Demos
  • Standups diarias

No todo es feliz

Todo cambia, mejora

7 Servers windows

NAS para storage

Base de datos en windows

2 deploys por semana

Migración a AWS

4~5 microservicios

2 entornos

~50 servers

1 deploy por dia

10 microservicios

20 entornos

400 servers

2 deploys por dia

30 microservicios

30 entornos

1000 servers

5 deploys por dia

50 microservicios

60 entornos

600 servers

20 deploys por dia

Mar 2015

Jun 2015

Dic 2015

Mar 2016

Jun 2016

Futuro (cercano)

  • Entornos dinámicos y automáticos
  • Migración completa a docker/kubernetes
  • Monitoreo increíble con Chaos monkey
  • ???

Gracias

¿Preguntas?

Made with Slides.com