PayPal cambia de Java a JavaScript

Diego ZúñigaJavaScript, NodeJS1 Comment

PayPal ha decidido usar JavaScript desde el navegador hasta el servidor para aplicaciones web, renunciando al código escrito en JSP/Java.

Jeff Harrell, Director de Ingeniería de Paypal, ha explicado en algunos blogs porque han decido cambiar, incluyendo algunas conclusiones del resultado del cambio del desarrollo de sus aplicaciones de Java/JSP hacia JavaScript/Node.js.

De acuerdo a Harrell, Los sitios web de PayPal habían acumulado una gran cantidad de deuda técnica, y buscaban tecnología libre de esta deuda, lo que les permitiría una mayor agilidad e innovación de sus productos. Inicialmente, había una significante división entre los ingenieros de Frontend en tecnologías web y los ingenieros quienes programaban el Backend con Java. Cuando una persona de UX (experiencia de usuario) necesitaba bosquejar algunas páginas, ellos tenían que solicitar a los programadores Java modificar el Backend para hacer que funcione. Esto no encajaba con su modelo de desarrollo LeanUX.

Querían una solución de plantillas que les permita desacoplarse de la tecnología del servidor y que les permitiera evolucionar las interfaces de usuario independiente del lenguaje de la aplicación y que trabaje con multiples ambientes. Decidieron ir con Dust.js como framework de plantillas, respaldado por LinkedIn, más Bootstrap y Bower (un administrador de librerías). Piezas adicionales fueron agregados mas tarde: LESS, RequireJS, Backbone.js, Grunt, y Mocha.

Empezaron usando Node.js para crear prototipos de nuevas páginas, concluyendo que esto era extremadamente eficiente y decidieron probarlo en producción. Para esto también construyeron Kraken.js, una capa encima de Express, que es un framework de desarrollo web basado en Node.js. La primera aplicación hecha en Node.js fue la página de información de la cuenta, que es una de las páginas de PayPal mas accedidas, según Harrell. Debido a que estaban preocupados de que la aplicación no escale bien, decidieron crear una aplicación equivalente en Java en el caso de que Node.js no funcione. A continuación se presentan algunas conclusiones con respecto al esfuerzo de desarrollo requerido para ambas aplicaciones:

  Java/Spring JavaScript/Node.js
Tiempo de preparación 0 2 meses
Desarrollo ~5 meses ~3 meses
Ingenieros 5 2
Líneas de código ??? 66 % de ???

El grupo de JavaScript necesitó 2 meses para preparar la infraestructura, pero crearon con menos personas una aplicación con la misma funcionalidad en menos tiempo. Ejecutando la suite de pruebas en el hardware de producción, concluyeron que la aplicación Node.js estaba trabajando mejor que la aplicación con Java, procesando:

“El doble de peticiones por segundo vs la aplicación Java. Esto es incluso mas interesante porque nuestros resultados iniciales de rendimiento fueron usando un único core para la aplicación node.js comparado con 5 cores para la aplicación en Java. Esperamos aumentar esta brecha aún más.”

y teniendo:

“Una disminución del 35% en el tiempo de respuesta promedio para la misma página. En las páginas que empezaron a procesarse 200ms más rápido, los usuarios definitivamente lo notarán.”

Como resultado, PayPal empezó usando las aplicaciones Node.js en producción, y han decidido que todas las aplicaciones web en futuro serán construidas en Node.js, mientras que algunas de las existentes están siendo migradas a Node.js

Uno de los beneficios de usar JavaScript desde el navegador hasta el servidor es, de acuerdo a Harrell, la eliminación de la brecha entre el desarrollo de Frontend y Backend y teniendo un equipo “el cual nos permita entender y reaccionar a las necesidades de nuestros usuarios” …

Más información:

PayPal Switches from Java to JavaScript
http://www.infoq.com/news/2013/11/paypal-java-javascript
Node.js at PayPal
https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
Bill Scott: Clash of the Titans: Releasing the Kraken – “NodeJS” @ “PayPal”
http://www.nearform.com/nodecrunch/release-the-kracken-how-paypal-is-being-revolutionized-by-node-js-and-lean-ux/
https://youtu.be/V5yk5SZxWX4

 

One Comment on “PayPal cambia de Java a JavaScript”

  1. Es una información un tanto desactualizada. Y quiero agregar alguna información un poco más actualizada.

    PayPal no solo hacen uso de su framework krakenjs, mantenido por Jean-Charles Sisk, si no que también usan HapiJS en su arquitectura y microservicios, y el mismo Jean lo menciona en la página oficial de Hapijs(http://hapijs.com/community). Y obviamente ExpressJs no es la panacea; muchas entidades de renombre han optado por usar HapiJs, porque este último, a diferencia de ExpressJs, es mucho más amigable, más modular y más escalable. Eran Hammer, creador de Hapijs cuando trabajaba en Walmart, y hoy Senior Arquitecto en nearForm (http://www.nearform.com/nodecrunch/nearform-welcomes-senior-nodejs-architect-eran-hammer/), menciona en su blog porque decidió crear Hapijs (http://hueniverse.com/2012/12/20/hapi-a-prologue/). Mat Marrison, autor del libro Hapi in action, explica técnicamente porque es mejor Hapijs que Expressjs (http://matt-harrison.com/moving-from-express-to-hapi-js/ ). En fin hay tantas cosas que han cambiado con la llegada de Javascript del lado del servidor con Nodejs, hoy, este último ya en su versión 5. Y todo el éxito que ha tenido ha venido desde tempranas versiones (0.6 para ser un poco más exacto). Y nodejs ha evolucionado de tal manera que ha permitido a muchas empresas reducir sus costos de infraestructura, mejorar sus servicios, sus aplicaciones. Y es que en sí, Javascript está teniendo un éxito tremendo no solo para aplicaciones Web, sino para aplicaciones de escritorio o aplicaciones para móviles.
    En fin, la información presentada en la publicación «paypal cambia de java a javascript» es muy útil para pensar dos veces si hoy por hoy la mejor solución es Java.

    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *