Download - Erlang/OTP - V Taller de Programación Funcional

Transcript
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