Alta disponibilidad en Erlang/Elixir

¿Sabias que la mitad de las telecomunicaciones en el mundo pasan por un sistema hecho en Erlang? ¿Sabias que en Erlang pueden estar corriendo dos versiones de tu programa y determinar cuando usar uno u otro? ¿Sabias que con Erlang puedes crear sistemas con cinco nueves de disponibilidad?

La maquina virtual de Erlang (BEAM), así como su framework OTP, ofrecen una plataforma robusta para la creación de aplicaciones que requieren de alta disponibilidad y tolerancia a fallas. Erlang ha sido usado por casi 3 décadas en sistemas productivos que han sido operados y actualizados por años sin tener que ser dados de baja.

Por otro lado, Elixir en un nuevo lenguaje de programación que corre sobre la maquina virtual de Erlang. Elixir aprovecha la infraestructura de la BEAM y OTP, pero además ofrece muchas caracteristicas útiles que uno tiene en Clojure y F#. Elixir ofrece una sintaxis mas familiar que facilita la adopción de esta plataforma entre programadores que vienen de Java, C# o Ruby.

Recientemente Erlang ha salido a la luz pública por ser la plataforma sobre la que está construido el servicio de WhatsApp.

En esta plática vamos a explicar los elementos claves de esta plataforma, su arquitectura, y para que casos es la mejor opción y para cuales no.

Acerca del conferencista

Norberto Ortigoza es instructor para América Latina por parte de Big Nerd Ranch, la empresa de cursos para iOS más importante del mundo. Es Director de Desarrollo en Diverza y co-fundador del grupo Cocoaheads en el Distrito Federal dirigido a desarrolladores en OSX y iOS. También es instructor oficial de Rubymotion. Ha sido programador por más de 20 años, donde ha empleado Sistemas operativos y lenguajes como NeXT, OSX, Solaris, Windows, Smalltalk, Objective-C, C, Java, C#, Ruby, PHP, Python, Perl y en los últimos días Elixir y Go. Ha impartido cursos de desarrollo en India, USA, Colombia, Bélgica y México.

Es Ingeniero en Computación por parte de la Facultad de Ingeniería de la UNAM. Tiene estudios de Maestría en Ciencias de la Computación por la UNAM. Diplomado en Procesos y Arquitectura de Software por parte del SEI - Carnegie Mellon University.