Erlang/OTP - V Taller de Programación Funcional

22
Startups, Telcos y Erlang/OTP V Taller de Programación Funcional Manuel Ángel Rubio Jiménez

description

Charla dada en el marco del IV Congreso Español de Informática (CEDI) en la Universidad Complutense de Madrid, en las jornadas organizadas por PROLE para su V Taller de Programación Funcional.

Transcript of Erlang/OTP - V Taller de Programación Funcional

Page 1: Erlang/OTP - V Taller de Programación Funcional

Startups, Telcos y Erlang/OTP

V Taller de Programación Funcional

Manuel Ángel Rubio Jiménez

Page 2: Erlang/OTP - V Taller de Programación Funcional

¿Quién soy?

○ Programador desde los 12 años... unos 20 años programando en: Perl, Python, Ruby, PHP, Java, C/C++, JavaScript, Pascal, Modula-2, Basic y Erlang.

○ Administrador de sistemas desde los 22 años... unos 10 años administrando Windows, GNU/Linux y BSD.

○ En definitiva... DevOps.

○ Fundador de AltenWald y Freelance.

○ Contacto:

○ Blog: http://bosqueviejo.net

○ Twitter: @MRonErlang

Page 3: Erlang/OTP - V Taller de Programación Funcional

Startups, Telcos y Erlang

Telco IM Games

Page 4: Erlang/OTP - V Taller de Programación Funcional

Startups, Telcos y Erlang

Telco IM Games

Page 5: Erlang/OTP - V Taller de Programación Funcional

Caso

○ En 2005, sistemas C++ y MySQL

○ Máx. 80 usuarios concurrentes

○ Crashes son muy frecuentes

○ En 2006, sistemas C++, Python y MySQL

○ Máx. 1.000 usuarios concurrentes

○ Requiere reinicios, el código es difícil de mantener... muchos errores

○ En 2007, sistemas Erlang, Python y MySQL

○ De 20.000 a 1.000.000 de usuarios concurrentes en Call of Duty 4○ De 500 a 50.000 peticiones por segundo○ De 50 a 1.850 servidores

Page 6: Erlang/OTP - V Taller de Programación Funcional

Caso

Page 7: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: ACD

Page 8: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: ACD

Page 9: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: ACD

Page 10: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: ACD

Page 11: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: ACD

Pruebas de Stress

Page 12: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: AutoMarcador

Page 13: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: AutoMarcador

Page 14: Erlang/OTP - V Taller de Programación Funcional

Red Inteligente: AutoMarcador

Page 15: Erlang/OTP - V Taller de Programación Funcional

Mensajería Instantánea

○ Android y PHP (vía HTTP)

○ Falta de instantaneidad en los mensajes○ Hace falta una gran infraestructura además de ayudas:

■ Memcache■ APC■ FPM, FastCGI, Ngnix, ...

○ Android, iOS y Java (vía XMPP)

○ OpenFire no sirve para una cantidad alta de usuarios concurrentes○ Los deadlocks de Java hacen que todo caiga

○ Android, iOS, BlackBerry, Windows Phone y Erlang (vía XMPP)

○ Escalabilidad asegurada○ Más de 2 millones de usuarios con alto grado de concurrencia

Page 16: Erlang/OTP - V Taller de Programación Funcional

Mensajería Instantánea

ejabberd

componente

componente

componente

app móvil

Page 17: Erlang/OTP - V Taller de Programación Funcional

¿Por qué Erlang?

○ Lenguaje y Plataforma maduras

○ Distribución y Concurrencia nativas

○ Modelo Actor

○ Paradigma funcional

○ Construído e ideal para la programación en la nube de:

○ Sitios web

○ Aplicaciones móviles

○ Aplicaciones de mensajería y telefonía

○ Videojuegos

Page 18: Erlang/OTP - V Taller de Programación Funcional

Libros en inglés

Page 19: Erlang/OTP - V Taller de Programación Funcional

Libro en castellano

http://erlang.bosqueviejo.net

Page 20: Erlang/OTP - V Taller de Programación Funcional

¿Preguntas?

Page 21: Erlang/OTP - V Taller de Programación Funcional

Agradecimientos

○ Comité del TPF 2013

○ Universidad Complutense de Madrid

○ Congreso Español de Informática (CEDI)

○ ¡y a todos vosotros por asistir!

Page 22: Erlang/OTP - V Taller de Programación Funcional

Startups, Telcos y Erlang/OTP

V Taller de Programación Funcional

Manuel Ángel Rubio Jiménez