manejando millones de usuarios concurrentes con erlang/otp

23
Manejando Millones de Usuarios Concurrentes con Erlang/OTP Manuel Ángel Rubio Jiménez

Upload: manuel-rubio

Post on 13-Apr-2017

719 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Manuel Ángel Rubio Jiménez

Page 2: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Quién soy?

Manuel A. Rubio

Fundador de Altenwald Solutions, S.L., especializando la empresa en la consultoría para sitios web y mensajería instantánea enfocándonos en la alta concurrencia, alta disponibilidad y entornos distribuidos.

● Programador de hace más de 20 años

● Desarrollando infraestructuras de alta disponibilidad, alta concurrencia y distribuídas desde 2004

● Administrador de sistemas desde 2002 / DevOps desde 2012

Twitter: @MRonErlang

Page 3: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Altenwald Solutions S.L. es desde diciembre de 2013 una empresa dedicada a:

➔ Consultoría de Alta Disponibilidad, Concurrencia y Sistemas Distribuidos en especial si

están construidos con Erlang/OTP.

➔ Soporte a la comunidad de Erlang/OTP a través de libros, documentación y cursos en

castellano. Formamos parte del IEUG (Industrial Erlang Users Group).

➔ Hacer proyectos y productos propios… cosas que están por llegar.

¿Quiénes somos?

Page 4: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Web 2.0

Page 5: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Web 2.0

Page 6: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Web 2.0

Internet

Page 7: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Web 2.0

Internet

Page 8: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Web 2.0

Internet

Page 9: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Problemas Principales de Web 2.0

○ Sesiones: normalmente no se pueden modificar al mismo tiempo.

○ Replicación de base de datos: siempre con cuellos de botella.

○ Master - Slave: solo el master puede realizar escrituras.

○ Master - Master: decrementa la velocidad de acceso a los datos.

○ Caché: incrementa el número de peticiones que necesitamos. Nuevos cuellos de botella y agrega complejidad al flujo de ejecución sobre todo para invalidar datos.

○ Aceleradores y Caché de código: para acelerar la carga del código.

○ Colas para procesos asíncronos o tareas en segundo plano.

○ Concurrencia difícil o imposible de obtener en la mayoría de los casos.

○ Websockets … bueno, necesitamos algo mejor que PHP para esto.

Page 10: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Qué es Erlang?

○ Nació en 1986 como una extensión de Prolog en los Ericsson labs.

○ Lenguaje○ ¿Funcional o no? ... mejor híbrido.○ Orientado a la Concurrencia... Modelo Actor.

○ Máquina Virtual o Plataforma○ Programador y Administrador de Procesos (soporta más de 1.000.000 procs)○ Administración de Memoria○ Intérprete de línea de comandos (shell)○ Interfaz transparente para comunicación entre nodos

○ Características○ Distribuido○ Tolerante a fallos○ Escalable○ Cambio de código en caliente

Page 11: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Por qué Erlang es mejor?

Page 12: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Casos de Uso...

Page 13: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Casos de Uso...

Page 14: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Casos de mala escalabilidad...

Page 15: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Quién usa Erlang/OTP?

Page 16: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Quién usa Erlang/OTP en España?

Page 17: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Qué hay hecho en Erlang/OTP?

ejabberd RabbitMQ CouchBase Riak VerneMQ Chef

Page 18: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Por qué Erlang/OTP lo hace mejor?

Cuando estás atascado conduciendo un Porsche,lo único que puedes hacer es quemar más gasolina

que el resto. La Escalabilidad habla de hacercarreteras más anchas, no coches más rápidos.

- Steve Swartz

Page 19: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Libros en inglés de Erlang/OTP

Page 20: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Libros en inglés de Elixir

Page 21: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Libros en español

○ Erlang/OTP (Volumen I)

○ 1ª Edición en PDF y Papel.

○ 2ª Edición prevista para finales de 2015.

○ Erlang/OTP (Volumen II) aún en desarrollo.

http://erlang-otp.es

Page 22: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

¿Preguntas?

Page 23: Manejando Millones de Usuarios Concurrentes con Erlang/OTP

Agradecimientos

○ Organización de BetaBeers Córdoba

○ ¡A todos vosotros por asistir!