Grâce à AWS, nous garantirons une redondance et une résilience accrues à nos utilisateurs du monde entier. Cela nous ouvre de nouveaux horizons pour notre croissance future. 
Vijay Ramesh Analyste de données en chef

Change.org est la plus importante plate-forme de pétitions en ligne au monde. Elle revendique plus de 130 millions d'utilisateurs répartis dans 196 pays. En tant que société certifiée « B Corp », un nouveau type d'entreprise mettant le pouvoir de l'entrepreneuriat au service du bien social, Change.org a pour mission de donner aux individus du monde entier les moyens nécessaires pour entreprendre les changements qu'ils souhaitent voir se réaliser. Cette plate-forme ouverte permet à quiconque de lancer une pétition et de mobiliser immédiatement des centaines de personnes au niveau local ou des centaines de milliers de personnes à travers le monde dans le but d'entreprendre des changements, que ce soit pour lutter contre le harcèlement dans les écoles ou pour mettre fin aux attaques à l'acide en Inde. Le siège social de Change.org se trouve à San Francisco. Parmi les investisseurs figurent Bill Gates, Richard Branson, Arianna Huffington, ainsi que les fondateurs de LinkedIn, Yahoo, Twitter et eBay.

Face à sa croissance rapide au cours des dernières années, en particulier à l'international, Change.org a cherché à proposer de nouvelles fonctionnalités plus régulièrement sur son site. Cependant, l'ancienne infrastructure de cloud géré de l'organisation ne lui conférait pas l'élasticité nécessaire pour le faire. « Notre équipe de scientifiques spécialisée dans les données souhaitait notamment itérer plus rapidement, mais nous avons rencontré quelques problèmes avec notre ancien environnement, qui rendait parfois difficile l'ajout rapide de nouvelles ressources », explique Vijay Ramesh, analyste de données en chef pour la science des données chez Change.org. « Nous avions également besoin d'une certaine agilité pour effectuer des itérations en utilisant des types de topologies de machines très différents pour l'apprentissage machine. Par exemple, nous souhaitions utiliser des machines avec de nombreux cœurs, tout en recourant également à des machines plus petites avec des processus parallèles. »

En outre, Change.org dépend largement de l'intégration continue, une pratique de développement qui requiert l'intégration de code dans un référentiel plusieurs fois par jour, pour garantir un code de haute qualité. Cependant, l'organisation utilisait un système d'intégration continue développé en interne qui retardait le lancement de nouvelles fonctionnalités. « Chaque build d'intégration continue prenait jusqu'à une heure, ce qui est trop long », précise M. Ramesh. « Cela a compliqué le test et le déploiement rapides de nouvelles fonctionnalités. » De plus, le système nécessitait trop de maintenance. « Plusieurs de nos ingénieurs consacraient quelques heures par jour à la maintenance du flux d'intégration continue, mais il ne s'agit pas de notre compétence principale », ajoute l'analyste de données en chef. « Nous désirons dédier tout notre temps au développement de nouvelles fonctionnalités. »

L'organisation devait aussi simplifier le dimensionnement de la plate-forme de son site Web afin de gérer les pics de trafic. « Nous constatons d'importants pics de trafic lorsque nous sommes mentionnés dans les médias, par exemple, mais il n'était pas facile pour nous de mettre en place des nœuds de serveur en temps réel afin de supporter ces pics », déclare Vijay Ramesh. « Une intervention manuelle était indispensable de notre côté, et il nous fallait facilement plus d'une heure pour déployer de nouvelles ressources en production afin de répondre aux pics de trafic. »

Déterminée à trouver une plate-forme Web plus agile et évolutive, l'équipe de scientifiques spécialisée dans les données de Change.org a décidé de transférer certaines de ses ressources d'apprentissage machine vers l'offre Amazon Web Services (AWS). « Nous apprécions la flexibilité et l'évolutivité des services AWS », affirme M. Ramesh. L'équipe de scientifiques spécialisée dans les données a commencé à utiliser des instances Amazon Elastic Compute Cloud (Amazon EC2) en production pour le ciblage des e-mails et les travaux de pipeline par lot.

Change.org a ensuite configuré deux clusters Amazon Redshift totalisant 16 téraoctets chacun. Ces deux clusters contiennent toutes les données relationnelles et d'événements de l'entreprise. Le premier est un cluster d'aide à la décision de production qui diffuse des données client à partir d'une base de données MySQL dans Redshift. Le second cluster est utilisé pour les analyses hors ligne, et le service R&D collecte des données expérimentales et du journal d'événements à partir d'Amazon Simple Storage Service (Amazon S3) avant de les charger dans Redshift. Ce cluster est mis à jour par le biais du service AWS Data Pipeline. « Nous adorons tester de nouvelles fonctionnalités et apporter des changements au site. Nous avons donc mis en place un système permettant à nos ingénieurs de travailler sur ce qu'ils veulent, sans avoir à se soucier que cela n'affecte la production », indique l'analyste de données en chef. En outre, les analystes d'affaires de l'organisation peuvent créer des rapports et des tableaux de bord exécutifs pour analyser les données du flux d'événements dans Redshift. La plupart des outils de messagerie électronique de l'organisation interrogent Redshift.

Bien que Change.org conserve toujours certaines de ses ressources dans son environnement sur site, il utilise de plus en plus les ressources AWS à la demande, et la migration de l'ensemble de son environnement de production vers l'offre AWS est en cours.

Change.org a également choisi d'utiliser Solano CI, une solution d'intégration continue hébergée. Solano CI s'exécute entièrement sur AWS, en faisant appel à Elastic Load Balancing pour acheminer le trafic entrant, à Amazon S3 pour stocker les données et à Amazon Relational Database Service (Amazon RDS) pour exécuter sa base de données. Il s'agit d'un système évolutif conçu pour réduire la durée des tests effectués par les développeurs, tout en allégeant la maintenance du système d'intégration continue et en optimisant l'utilisation des instances AWS, ce qui entraîne une baisse considérable du coût total de possession. « Depuis l'implémentation de Solano CI, nous avons pu arrêter complètement notre système d'intégration continue développé en interne », se félicite Vijay Ramesh.

Grâce à l'élasticité à la demande des services AWS, Change.org peut désormais développer de nouvelles fonctionnalités plus rapidement. « Notre équipe de scientifiques spécialisée dans les données peut itérer très rapidement grâce à l'élasticité des services AWS », ajoute M. Ramesh. « Par exemple, pour la création de moteurs de recommandation, les exigences en matière de calcul varient considérablement en fonction du type d'algorithme utilisé ou du volume de données impliqué. Les services AWS nous permettent de tout faire à la volée, en utilisant uniquement les ressources dont nous avons besoin en fonction de ce que nous accomplissons dans le cadre de ce projet. Par conséquent, aucune réquisition de serveurs ni planification à l'avance ne sont nécessaires. »

L'organisation peut également s'appuyer sur son environnement de test automatisé Solano CI pour réduire la durée des tests et déployer de nouvelles fonctionnalités en production plus rapidement. Depuis sa migration vers Solano CI, l'organisation a vu sa durée moyenne de développement passer d'une heure à 15 minutes grâce à l'auto-parallélisation de Solano CI. « Chaque jour, nous sommes en mesure de déployer davantage de builds d'intégration continue, ce qui signifie en fin de compte que nous pouvons apporter plus de changements au site quotidiennement », explique l'analyste de données en chef. « Grâce à Solano CI, nous offrons de la valeur à nos utilisateurs finaux plus rapidement. » De plus, Change.org peut identifier les défaillances plus rapidement, car Solano CI permet l'exécution de davantage de tests. « En détectant les défaillances plus rapidement, nous sommes capables d'assurer un code de meilleure qualité et, à terme, de proposer de meilleures fonctionnalités », précise-t-il.

Change.org bénéficie aussi de l'évolutivité nécessaire pour gérer les pics de trafic. « Les services AWS nous permettent de répondre bien plus facilement aux pics de trafic sur notre site Web », déclare Vijay Ramesh. « Au fur et à mesure de l'augmentation du trafic, de nouveaux serveurs d'arrière-plan sont automatiquement mis en ligne. Lorsque le trafic diminue, ces serveurs sont remis hors ligne. Cette solution est très fiable et rapide. Puisqu'elle ne requiert aucune intervention manuelle de la part de nos ingénieurs, la mise en place de nouvelles ressources ne prend pas une heure. Elle est instantanée. »

En outre, l'environnement Solano CI est conçu pour le dimensionnement, de sorte que Change.org peut mieux prendre en charge les augmentations du nombre de tests requis. « Lorsque nous sommes sur le point de lancer des fonctionnalités majeures et qu'une échéance approche, il arrive que nous devions exécuter un nombre anormalement élevé de builds », indique M. Ramesh. « Solano CI se dimensionne de façon à répondre à ces besoins, car il bénéficie de l'évolutivité de l'offre AWS. »

Puisque le système d'intégration continue de Change.org est désormais basé dans le cloud, les développeurs n'ont plus besoin de consacrer leur temps à des tâches de maintenance. Solano CI optimise les tests intelligemment et automatiquement, de sorte que les développeurs de Change.org n'aient pas à gérer un système d'intégration continue, à configurer des machines virtuelles ou à s'assurer que les nœuds d'intégration continue fonctionnent correctement. « Nos développeurs n'ont pas à se soucier de la maintenance de notre système d'intégration continue », affirme l'analyste de données en chef. « Ils peuvent compter sur Solano CI pour se charger de tout, afin qu'ils puissent se concentrer sur ce qu'ils font le mieux : créer des outils incroyables pour notre site Web, qui apportent la plus grande valeur à nos utilisateurs finaux à travers le monde. »

Change.org prévoit d'accroître considérablement son utilisation des services AWS une fois sa migration vers l'environnement terminée. « Nous nous réjouissons du fait que l'offre AWS propose plusieurs régions et zones de disponibilité dans le monde entier, ce qui n'était pas le cas de notre ancienne solution », ajoute Vijay Ramesh. « Notre capacité à concevoir l'architecture d'un site Web nous permettant de répondre au trafic mondial représentera un avantage certain. Nous nous sommes beaucoup développés à l'international au cours de ces dernières années, et les services AWS vont nous permettre d'aller encore plus loin. Nous garantirons une redondance et une résilience accrues à nos utilisateurs du monde entier. Cela nous ouvre de nouveaux horizons pour notre croissance future. »

solano-labs-logo

Partenaire technologique avancé du réseau de partenaires AWS (APN) disposant de la compétence AWS DevOps. Solano Labs propose des systèmes puissants et évolutifs pour l'intégration et le déploiement continus, qui permettent aux développeurs de logiciels d'accroître l'efficacité et la qualité de l'ingénierie tout en réduisant les coûts.

Pour découvrir comment Solano Labs peut aider votre entreprise à créer et gérer votre environnement AWS, consultez l'entrée Solano Labs dans l'annuaire des partenaires AWS.
 

Pour savoir comment AWS peut vous aider à gérer votre site Web, consultez notre page détaillée Sites Web et hébergement de sites Web.