Gracias a AWS, podremos ofrecer un mayor nivel de redundancia y resiliencia a nuestros usuarios globales, lo que nos abre las puertas de un mundo completamente nuevo en términos de nuestro crecimiento a futuro. 
Vijay Ramesh Jefe de ingeniería de datos

Change.org es la plataforma de cambio social más grande del mundo, con más de 130 millones de usuarios en 196 países. Como corporación B certificada, un nuevo tipo de compañía que utiliza capacidad empresarial para fines sociales benéficos, la misión de la compañía es permitir que las personas de cualquier parte sean protagonistas del cambio que quieren concretar. Al ser una plataforma abierta, cualquiera puede empezar una campaña e, inmediatamente, movilizar a cientos de personas localmente o cientos de miles de todo el mundo para concretar un cambio, desde detener el acoso escolar en las escuelas hasta parar los ataques con ácido en India. Change.org tiene oficina central en San Francisco y algunos de sus inversionistas son Bill Gates, Richard Branson, Arianna Huffington y los fundadores de LinkedIn, Yahoo, Twitter e eBay. 

Como Change.org creció rápidamente durante los últimos años, especialmente a nivel internacional, buscó incorporar con mayor frecuencia nuevas características para el sitio. Sin embargo, la organización no contaba con la elasticidad necesaria para hacerlo con su anterior infraestructura en la nube administrada. "Nuestro equipo de ciencia de datos en particular quería iterar con mayor rapidez, pero teníamos algunos problemas con nuestro entorno anterior que, a veces, entorpecía la incorporación rápida de nuevos recursos", dice Vijay Ramesh, ingeniero de datos principal de ciencia de datos en Change.org. "También necesitábamos la agilidad necesaria para realizar iteraciones con tipos muy diferentes de topologías de máquinas para aprendizaje automático. Por ejemplo, queríamos usar máquinas con muchos núcleos, pero también otras de menor tamaño con procesos paralelos".

Change.org también utiliza en gran medida integración continua (CI), una práctica de desarrollo que exige la integración del código en un repositorio varias veces al día, para garantizar la existencia de código de alta calidad. Pero la organización usaba un sistema de CI propio que demoraba los lanzamientos de nuevas características. "Cada una de las compilaciones de CI demoraba hasta una hora para finalizar, lo que era demasiado tiempo", dice Ramesh. "Esa demora dificultaba aún más poder probar rápidamente las nuevas características e implementarlas". Además, el sistema necesitaba demasiado mantenimiento manual. "Varios de nuestros ingenieros invertían unas cuantas horas al día en el mantenimiento del flujo de trabajo de CI, pero esa no es nuestra principal responsabilidad", dice Ramesh. "Queremos utilizar todo nuestro tiempo en el desarrollo de nuevas características".

La organización también necesitaba escalar con mayor facilidad la plataforma del sitio web para poder admitir los picos de tráfico. "Observamos crecimientos repentinos y masivos de tráfico cuando el sitio se menciona en los medios, por ejemplo, pero no fue fácil traer nodos de servidores en tiempo real para admitir esos crecimientos", dice Ramesh. "Fue necesaria nuestra intervención manual y llevó más de una hora poner en funcionamiento los nuevos recursos para responder a los picos de tráfico".

Como el equipo de ciencia de datos de Change.org estaba resuelto a encontrar una plataforma web más escalable y ágil, decidió trasladar algunos de sus recursos de aprendizaje automático a Amazon Web Services (AWS). "Nos gustó la flexibilidad y escalabilidad de AWS", dice Ramesh. El equipo de ciencia de datos empezó a usar instancias de Amazon Elastic Compute Cloud (Amazon EC2) en producción para trabajos de canalización en lote y focalización de emails.

A continuación, Change.org configuró dos clústeres de Amazon Redshift, con un total de 16 terabytes cada uno. Ambos clústeres contienen todos los datos de eventos y relacionales de la compañía. El primero es un clúster de inteligencia empresarial (BI) de producción que transmite datos de clientes desde la base de datos de MySQL a Redshift. El segundo clúster se utiliza para análisis offline y el equipo de investigación y desarrollo recopila datos de eventos de logs y experimentales en Amazon Simple Storage Service (Amazon S3) y los carga en Redshift. Este clúster se mantiene actualizado a través del servicio AWS Data Pipeline. "Realizamos muchas pruebas con las nuevas características y cambios del sitio, por lo que configuramos un sistema para que los ingenieros trabajasen en lo que quisieran sin preocuparse por afectar el entorno de producción", dice Ramesh. Además, los analistas de negocios de la organización pueden crear informes y paneles ejecutivos para analizar los datos de transmisión de un evento en Redshift. Muchas herramientas de email de la organización realizan consultas en Redshift.

Si bien Change.org aún conserva algunos de sus recursos en su entorno on-premise, utiliza cada vez más los recursos de AWS bajo demanda y se encuentra en el proceso de migrar su entorno de producción completo a AWS.

Change.org también eligió utilizar Solano CI, una solución de CI hospedada. Solano CI se ejecuta en su totalidad en AWS. Utiliza Elastic Load Balancing para dirigir el tráfico de entrada, Amazon S3 para almacenar datos y Amazon Relational Database Service (Amazon RDS) para ejecutar la base de datos. Solano CI es un sistema escalable diseñado para reducir el tiempo de pruebas de los desarrolladores y, al mismo tiempo, minimizar el mantenimiento del sistema de CI y optimizar el uso de la instancia de AWS, lo que disminuye de manera significativa el TCO. "Desde que implementamos Solano CI, pudimos cerrar por completo nuestro sistema de CI", dice Ramesh.  

Al utilizar la elasticidad bajo demanda de AWS, Change.org puede desarrollar nuevas características con mayor rapidez. "Nuestro equipo de ciencia de datos puede iterar muy rápidamente gracias a la elasticidad que proporciona AWS", dice Ramesh. "Por ejemplo, cuando creamos motores de recomendaciones, las demandas de cálculo variaban mucho según el tipo de algoritmo que utilizábamos o el volumen de datos en cuestión. Pero con AWS podemos hacer todo en el camino, usando únicamente los recursos que necesitamos en base a lo que estemos haciendo para el proyecto. En consecuencia, no tenemos que solicitar servidores ni planificar por anticipado".

La organización también puede utilizar el entorno para pruebas automáticas Solano CI para reducir el tiempo de pruebas y enviar nuevas características a producción más rápido. Desde que cambió a Solano CI, la organización redujo el tiempo de compilación promedio de una hora a 15 minutos gracias a la paralelización automática de Solano CI. "Podemos implementar más compilaciones de CI todos los días, lo que significa que podemos incorporar más cambios en el sitio diariamente", dice Ramesh. "Gracias a Solano CI, estamos ofreciendo beneficios con mayor rapidez a nuestros usuarios finales". Además, Change.org puede identificar defectos más rápido porque puede ejecutar más pruebas con Solano CI. Dice, "La detección temprana de defectos nos permite garantizar que tendremos un código de mayor calidad y, básicamente, producir mejores características".

Change.org también posee la escalabilidad necesaria para admitir picos de tráfico. "Con AWS, podemos responder mucho más fácilmente ante crecimientos repentinos de tráfico en nuestro sitio web", dice Ramesh. "A medida que observamos un crecimiento del tráfico, se conectan automáticamente nuevos servidores de segundo plano. Y, cuando el tráfico disminuye, los servidores se desconectan nuevamente. El proceso es muy ágil y fiable. Además, como no requiere intervención manual de nuestros ingenieros, no nos lleva una hora girar nuevos recursos. Es instantáneo".

Además, el entorno de Solano CI está diseñado para escalar, por lo que Change.org puede responder al aumento de las exigencias de compilación de pruebas. "Algunas veces, cuando se acerca el lanzamiento de características importantes y se aproxima la fecha límite, tenemos un número inusualmente alto de compilaciones que debemos ejecutar", dice Ramesh. "Solano CI escala para atender esas necesidades porque se beneficia de la escalabilidad de AWS".

Además, como el sistema de CI ahora está basado en la nube, los desarrolladores de Change.org ya no necesitan invertir su tiempo en tareas de mantenimiento. De manera inteligente y automática, Solano CI optimiza las pruebas para que los desarrolladores de Change.org no tengan que administrar un sistema de CI, configurar máquinas virtuales o garantizar que los nodos de CI estén funcionando correctamente. "Nuestros desarrolladores no tienen que preocuparse por el mantenimiento de nuestro sistema de CI", dice Ramesh. "Pueden confiar en Solano CI para todo y enfocarse en lo que mejor saben hacer: crear excelentes herramientas para nuestro sitio web que brinden beneficios a nuestros usuarios finales de todo el mundo".

Change.org planea aumentar en gran medida el uso de AWS una vez que se complete la migración al entorno. "Estamos muy interesados en las varias regiones y zonas de disponibilidad que AWS tiene a nivel mundial, un beneficio que no teníamos con nuestra solución anterior", dice Ramesh. "Poder crear una arquitectura de sitio web que nos permita responder al tráfico global será una ventaja muy importante para nosotros. Nuestro crecimiento internacional en los últimos años fue notable, y lo será aún más gracias a AWS. Tendremos un mayor nivel de redundancia y resiliencia para nuestros usuarios globales, lo que nos abre las puertas de un mundo completamente nuevo en términos de nuestro crecimiento a futuro".

solano-labs-logo

Un socio tecnológico avanzado de la red de socios de AWS (APN) con la competencia de operaciones de desarrollo de AWS. Solano Labs ofrece sistemas escalables y eficaces para integración (CI) e implementación (CD) continuas que les permiten a los desarrolladores de software aumentar la calidad y eficiencia de ingeniería y, simultáneamente, reducir costos.

Para obtener más información sobre cómo Solano Labs puede ayudar a su empresa a crear y administrar su entorno de AWS, consulte la lista de Solano Labs en el directorio de socios de AWS.
 

Para obtener más información sobre cómo AWS puede ayudarlo a administrar su sitio web, visite la página informativa sobre sitios web y alojamiento de sitios web.