La «Agilidad Radical» de Zalando se está convirtiendo en una forma de escalar para las empresas.

    Google puede hacer que un sistema monolítico funcione a escala, pero usted no es Google. Y, para llegar a una escala similar a la de Google, va a tener que hacer la transición a una arquitectura de microservicios, o se va a estrellar y quemar.

    Esa es una lección que aprendí al ponerme al día con Eric Bowman, un maestro en escalar plataformas masivas de comercio electrónico. La última vez que hablé con él fue hace dos años, después de que dirigiera la re-arquitectura del sitio web de Gilt para que pudiera manejar sus enormes desafíos de escalamiento y los picos de tráfico diarios.

    En la actualidad, dirige la ingeniería de Zalando, el gigante alemán de comercio electrónico que emplea a más de 10.000 personas y envía más de 1.500 marcas de moda a clientes de 15 países europeos, generando 3.430 millones de euros en ingresos el año pasado.

    Con más de 700 personas en su equipo de ingeniería, hablé con Eric sobre las lecciones que ha aprendido al trasladar enormes negocios en línea en producción de una arquitectura heredada a una plataforma reactiva moderna. La respuesta, resulta, se reduce a pensar de forma diferente sobre la arquitectura y la apertura de código.

    Pasar a los microservicios sin necesidad de apagar el equipo

    Incluso si usted cree que las luminarias de las nubes como Adrian Cockcroft y su insistencia en las arquitecturas de microservicios, puede ser difícil llegar allí. Cuando Bowman se unió a Zalando, necesitaba encontrar una manera de cambiar de su arquitectura monolítica Java a una arquitectura ágil y basada en microservicios, manteniendo el sitio de Zalando en funcionamiento.

    No ocurrió de la noche a la mañana.

    En palabras de Bowman,»Reestructurar así es un trabajo de 18 a 24 meses». En Zalando, el sitio fue originalmente construido en Magento usando PHP, y en un tiempo fue el sitio de Magento más grande del mundo. Después de toparse con serios problemas de escalamiento, el equipo optó por pasar unos meses reescribiendo toda la pila en Java, tomando algunas decisiones poco ortodoxas a lo largo del camino, como mantener la lógica de negocio en los procedimientos almacenados en PostgreSQL, y usar SOAP.

    VER Por qué los microservicios están a punto de tener su momento de «nube» (ConsejoTecnologico.com)

    Ambas fueron decisiones controvertidas en su momento, pero también increíblemente inteligentes… por un tiempo. Eventualmente, estas tecnologías condujeron a sistemas que eran difíciles de evolucionar, y ninguno de los dos es grande a medida que los equipos escalan. En un momento dado, Bowman me dijo: «Sentí que no podíamos actualizar nada sin actualizar todo. Algunas compañías pueden hacer que un sistema monolítico funcione a escala, pero es caro, y no somos Google o Facebook. Aún.»

    Una de las formas en que Bowman logró esto fue dejando caer SOAP en favor de REST en una búsqueda de una arquitectura basada en microservicios, algo que Zalando ha adoptado en serio. REST permite que las APIs evolucionen, lo que resulta ser un punto de apoyo masivo cuando las APIs pueden evolucionar sin romperse.

    Sin embargo, como Bowman subraya, «La gente se ve envuelta en discusiones sobre si algo es’verdaderamente RESISTENTE’ y pierde de vista por qué es tan importante el RESISTIMIENTO: fue inventado para que Internet pudiera actualizarse sin romperlo, y cualquier gran empresa se puede beneficiar de adoptar estas ideas con el fin de construir sistemas resistentes».

    Agilidad radical

    Lo más importante es que Zalando ha adoptado un enfoque «API First» basado en OpenAPI, de modo que sus APIs se desacoplan de sus implementaciones, todas siguen el mismo estilo y se benefician de la revisión por pares. La combinación de API First y REST (bien hecho) resulta en interacciones altamente estables entre sistemas que están en constante evolución, destaca Bowman.

    «También construimos en un estilo SaaS, lo que significa que todos los servicios que creamos están en Internet abierto y construidos para ser utilizados por otras empresas además de nosotros mismos», dijo Bowman.

    VER ¿Son reales los microservicios, o sólo la última palabra de moda? (ZDNet)

    Parte de este «estilo SaaS» es una fuerte dependencia de la nube, «en parte porque tiene un efecto tan sutil y profundo en la forma en que los ingenieros construyen los sistemas.» Continuó:

    Para las empresas que todavía utilizan centros de datos, existe este terrible anti-patrón que surge cuando se necesitan semanas para que el nuevo hardware funcione en vivo para ejecutar nuevos sistemas. Esto tiene un efecto horrible sobre la complejidad a lo largo del tiempo. En pocas palabras, aplica una sutil presión de diseño para seguir añadiendo complejidad a los sistemas que ya están desplegados, y a lo largo de meses o años el resultado son sistemas que son mucho más difíciles de evolucionar de lo que deberían ser.

    Bowman llama a esta combinación de organización y arquitectura «Agilidad Radical», que lanzó en marzo de 2015. Entre otras cosas, señaló, «esta apertura nos ha permitido abrir nuestra pila tecnológica a las nuevas tecnologías y ha permitido que lenguajes como Scala, Clojure e Go se afiancen».

    Esta Agilidad Radical ha sido posible gracias a Lightbend, la compañía detrás de algunas de las tecnologías clave que Zalando ha utilizado para diseñar este enfoque, lo que ha dado lugar a una gran cantidad de actividades de código abierto en Scala, Akka, Play like play-swagger, barba y scarl.

    La importancia de ser abierto

    Otro principio fundamental de la nueva agilidad de Zalando es el código abierto. Le pregunté a Bowman qué papel juega el código abierto en la ingeniería de Zalando:

    Más información sobre el código abierto

    «Cuando se trata de dinero y de alta disponibilidad, hay que ser capaz de ir hasta el metal para diagnosticar los problemas», señaló Bowman. «Tener algo de misión crítica sin código fuente es inconcebible para mí.»

    Aunque admitió a regañadientes que «AWS es la excepción» a esta regla, continuó: «Como industria que está cambiando el mundo a través de lo que construimos, a una escala antes inconcebible, somos terriblemente malos en la codificación de principios de software», lo que conduce a «una enorme cantidad de variación incidental y accidental». En este desorden, «Muchos ojos y cerebros mirando juntos a problemas difíciles es tremendamente valioso.»

    Valioso para descubrir problemas, pero también para acelerar la innovación.

    Este enfoque abierto y ágil lleva a Bowman a la conclusión de que las empresas que quieren escalar deben «estar preparadas para sacrificar su arquitectura cada dos órdenes de magnitud de crecimiento», porque «lo que funciona bien hoy en día no funcionará cuando el tráfico sea 100 veces mayor». Así son las cosas, o como pueden ser, más bien, con un enfoque de Agilidad Radical a escala.

    Véase también