Important note: This session will be in English language.
Have you ever faced a web application project with extreme scalability and performance requirements? Lots of concurrent users? Availability close to 99.9%? A project where infrastructure desing and implementation becomes as relevant as the web application itself, even more?
Let's imagine something. Supose a platform, based on a multi-site Drupal install, and each user can have his/her own site. Not so complex, right? Supose now that we are talking about more than thirty thousand users. Now, it seems scary, uh? Don't panic until knowing the project target, which is one hundred thousands users on the next years. And, of course, we want a full migration from legacy platform, high availability, and a 500% improvement on server response times. And this is the project in which I have been working as DevOps on last year. And now the good news come. The dev team, formed by great professionals, could count on very important allies, like Drupal, Nginx, Docker, Ansible, MongoDB, Node.JS, Apache Mesos and Amazon Web Services (this one included all its buddies: EC2, S3, ElastiCache, DynamoDB, and Route53).
So, this session will describe the project, with some grade of detail, specially focusing on infrastructure, and will review the newfangled technologies used to make it possible. Additionally, the problems found during the implementation - and their solutions - will be described.
Spoiler alert: This project went live on firsts days of April 2015, so it's very fresh! It was an absolute success, on engineering, results and cost optimization levels.
¿Alguna vez te has enfrentado a un proyecto de una aplicación web con unas necesidades de escalabilidad y rendimiento muy exigentes? ¿Un montón de usuarios concurrentes? ¿Una disponibilidad superior al 99,9%? ¿Proyectos en los que el diseño e implementación de la infraestructura cobran la misma relevancia, o incluso más, que la propia aplicación web?
Hagamos un ejercicio de imaginación. Supongamos una plataforma, basada en una instalación multi-site de Drupal, que a cada usuario le permite tener su propio site. No parece muy complejo, ¿verdad? Supongamos ahora que se cuenta con más de treinta mil usuarios. Ahora asusta un poco, ¿eh? No temblemos hasta saber que el objetivo de número de usuarios es alcanzar los cien mil en los próximos dos años. Y por supuesto, con migración desde la plataforma antigua incluída, alta disponibilidad, y una mejora de tiempo de respuesta del servidor de, al menos, un 500% respecto a la versión anterior. Pues bien, estos son los requisitos de partida del proyecto en el que he estado trabajando el último año. Eso sí, no todo fueron malas noticias. El equipo del proyecto, formado por grandes profesionales, contábamos con importantes aliados, entre los que se cuentan Drupal, Nginx, Docker, Ansible, MongoDB, Node.JS, Apache Mesos y Amazon Web Services (éste último se trajo a toda la cuadrilla: EC2, S3, ElastiCache, DynamoDB, Route53, y creo que no me dejo ninguno).
En resumen, la charla describirá el proyecto en relativo detalle, centrándose en el apartado de infraestructura y repasando las novedosas tecnologías que se han empleado para hacerlo posible, así como los problemas encontrados durante el diseño y desarrollo, y las soluciones implementadas para solventarlos.
Spoiler alert: El proyecto se lanzó a producción a principios de abril de 2015 (¡Fresco, fresco! ¡Me lo quitan de las manos, oiga!), y ha sido un éxito, tanto a nivel de ingeniería, como de resultados y de optimización de costes respecto a la versión anterior.