Ao usar a AWS, obteremos maior redundância e resiliência para os usuários globais, o que abre um mundo totalmente novo para nós em termos de crescimento futuro. 
Vijay Ramesh Engenheiro chefe de dados

A Change.org é a maior plataforma de mudanças sociais com mais de 130 milhões de usuários em 196 países. Como uma empresa certificada no Sistema B, um novo tipo de empresa que usa o poder empresarial para o bem-estar social, sua missão é emponderar pessoas em qualquer lugar para que elas possam criar as mudanças que desejam ver realizadas. E, por ser uma plataforma aberta, qualquer pessoa pode iniciar uma campanha e mobilizar imediatamente centenas de pessoas localmente ou centenas de milhares em todo o mundo para criar mudanças, promovendo causas como o fim do bullying nas escolas e os ataques com ácido na Índia. A sede da Change.org fica em São Francisco e os seus criadores incluem nomes como Bill Gates, Richard Branson, Arianna Huffington, além dos fundadores do LinkedIn, Yahoo, Twitter e eBay. 

Como a Change.org cresceu rapidamente nos últimos anos, especialmente fora dos EUA, ela desejava lançar novos recursos do site com maior frequência. No entanto, a empresa não tinha a elasticidade necessária para fazer isso usando sua infraestrutura gerenciada antiga. "Nossa equipe de ciência de dados (em especial) desejava iterar mais rapidamente, mas tivemos alguns problemas com o ambiente antigo que às vezes dificultava a adição rápida de novos recursos", diz Vijay Ramesh, Engenheiro de dados chefe da equipe de ciência de dados da Change.org. "Nós também precisávamos da agilidade para fazer iterações usando tipos muito diferentes de topologias de máquina para o aprendizado de máquina. Por exemplo, desejávamos usar máquinas com muitos núcleos e, ao mesmo tempo, usar máquinas menores com processos em paralelo."

A Change.org também depende muito da integração contínua (CI), uma prática de desenvolvimento que exige a integração de código em um repositório várias vezes ao dia para garantir código de alta qualidade. Mas a empresa usou um sistema de CI desenvolvido internamente que estava atrasando os lançamentos de novos recursos. "Cada uma das compilações de CI levava até uma hora para ser finalizada, o que é um tempo muito elevado", comenta Ramesh. "Isso tornava mais difícil testar rapidamente novos recursos e implantá-los." E o sistema também exigia um alto nível de manutenção manual. "Muitos dos nossos engenheiros gastavam algumas horas ao dia fazendo a manutenção do fluxo de trabalho de CI, embora esta não seja nossa principal competência", diz Ramesh. "Desejamos focar todo nosso tempo no desenvolvimento de novos recursos".

A empresa também precisava escalar com maior facilidade a plataforma do site para lidar com os picos no tráfego. "Vemos picos de tráfego enormes quando somos mencionados na mídia, por exemplo, mas não era fácil criar nós de servidor em tempo real para apoiar esses picos", diz Ramesh. "Isso exigia intervenção manual da nossa parte e era necessário mais de uma hora para colocarmos os novos recursos em execução e os enviarmos para o ambiente de produção para responder aos picos."

Determinada a encontrar uma plataforma web mais ágil e escalável, a equipe de ciência de dados da Change.org decidiu migrar alguns de seus recursos de aprendizado de máquina para a Amazon Web Services (AWS). "Nós gostamos da flexibilidade e da escalabilidade da AWS", diz Ramesh. A equipe de ciência de dados começou a usar instâncias do Amazon Elastic Compute Cloud (Amazon EC2) no ambiente de produção para o direcionamento de e-mails e o trabalho com pipelines em lote.

Depois, a Change.org configurou dois clusters do Amazon Redshift, somando um total de 16 terabytes cada. Os dois clusters contêm todos os dados relacionais e de eventos da empresa. O primeiro é um cluster de inteligência de negócios (BI) do ambiente de produção que faz o stream de dados do cliente de um banco de dados MySQL para o Redshift. O segundo cluster é usado para análise off-line e o departamento de P e D coleta dados de evento experimentais e de log do Amazon Simple Storage Service (Amazon S3) e os carrega no Redshift. Esse cluster é mantido atualizado por meio do serviço AWS Data Pipeline. "Fazemos muitas experiências com novos recursos e alterações no site, por isso configuramos um sistema para os nossos engenheiros trabalharem em qualquer coisa que eles desejarem sem que precisem se preocupar em como isso poderá afetar a produção", diz Ramesh. Além disso, nossos analistas empresariais podem criar relatórios e painéis executivos para analisar os dados de stream de eventos no Redshift. Muitas das ferramentas de e-mail da empresa consultam o Redshift.

Embora a Change.org ainda mantenha alguns de seus recursos no ambiente local, ela está usando cada vez mais recursos da AWS sob demanda e encontra-se no processo de migrar seu ambiente de produção completo para a AWS.

A Change.org também escolheu usar a Solano CI, uma solução de CI hospedada. A Solano CI é executada totalmente na AWS, usando o Elastic Load Balancing para rotear o tráfego de entrada, o Amazon S3 para armazenamento físico de dados e o Amazon Relational Database Service (Amazon RDS) para executar seu banco de dados. A Solano CI é um sistema escalável criado para reduzir o tempo de teste para desenvolvedores e, ao mesmo tempo, diminuir a carga da manutenção do sistema de CI e otimizar o uso de instâncias da AWS, o que reduz significativamente o TCO. "Desde a implementação da Solano CI, nós conseguimos desativar totalmente nosso sistema de CI criado internamente", comenta Ramesh.  

Ao utilizar a elasticidade sob demanda da AWS, a Change.org pode desenvolver novos recursos mais rapidamente. "Nossa equipe de ciência de dados pode iterar muito rapidamente graças à elasticidade da AWS", diz Ramesh. "Por exemplo, quando criamos mecanismos de recomendação, as demandas computacionais variam bastante dependendo do tipo de algoritmo que usamos ou da quantidade de dados em questão. Mas podemos fazer tudo isso imediatamente com a AWS, usando apenas os recursos de que precisamos com base no que estamos fazendo para tal projeto. Como resultado, não estamos solicitando servidores nem tendo que planejar com antecedência."

A empresa também pode contar com o ambiente de teste automático da Solano CI para reduzir o tempo de teste e implantar novos recursos no ambiente de produção mais rapidamente. Desde que mudou para a Solano CI, a empresa reduziu seu tempo de compilação médio de uma hora para 15 minutos por meio da paralelização automática da Solano CI. "É possível implantar mais compilações de CI diariamente, o que, no fim das contas, significa que é possível fazer mais alterações no site todos os dias", diz Ramesh. "Estamos disponibilizando benefícios mais rapidamente para os nossos usuários finais por causa da Solano CI." Além disso, a Change.org pode identificar defeitos mais rapidamente, pois pode executar mais testes com a Solano CI. Ele diz, "Ao detectar defeitos mais rapidamente, é possível garantir código de maior qualidade e, consequentemente, produzir recursos melhores".

A Change.org também tem a escalabilidade necessária para sustentar os picos no tráfego. "Podemos responder muito mais facilmente aos picos no tráfego que ocorrem no site usando a AWS", diz Ramesh. "Conforme o tráfego surge, novos servidores em segundo plano se conectam on-line automaticamente. E, quando o tráfego diminuir, esses servidores ficam off-line novamente. É muito confiável e rápido. E, como ele não exige intervenção manual dos nossos engenheiros, não passamos uma hora para ativar novos recursos. Isso acontece instantaneamente."

Adicionalmente, o ambiente da Solano CI foi criado para escalar, portanto a Change.org pode sustentar melhor os aumentos nos requisitos de compilações de teste. "Às vezes, quando estamos prestes a lançar recursos principais e estamos chegando perto do prazo final, obtemos um número excepcionalmente alto de compilações que precisamos executar", comenta Ramesh. "A Solano CI escala para sustentar essas necessidades, pois ela se beneficia da escalabilidade da AWS."

E, como seu sistema de CI agora baseia-se na nuvem, os desenvolvedores da Change.org não precisam mais perder tempo em tarefas de manutenção. A Solano CI otimiza testes de modo inteligente e automático para que os desenvolvedores da Change.org não precisem gerenciar um sistema de CI, configurar máquinas virtuais ou garantir que os nós de CI estejam funcionando corretamente. "Nossos desenvolvedores não precisam perder tempo se preocupando com a manutenção do nosso sistema de CI", revela Ramesh. "Eles podem ter a certeza de que a Solano CI fará tudo, portanto podem focar-se naquilo que fazem de melhor: criar excelentes ferramentas para o site que agreguem o máximo de valor para os nossos usuários finais em todo o mundo."

A Change.org planeja expandir amplamente seu uso da AWS após concluir a migração para o ambiente. "Estamos muito entusiasmados com o fato de que a AWS tem várias regiões e zonas de disponibilidade em todo o mundo, algo que não tínhamos com a nossa solução anterior", diz Ramesh. "Poder desenvolver uma arquitetura de site que nos permitirá responder ao tráfego global será uma grande vantagem para nós. Nós crescemos muito internacionamente durante os últimos anos e poderemos acelerar isso ainda mais usando a AWS. Obteremos maior redundância e resiliência para os usuários globais, o que abre um mundo totalmente novo para nós em termos de crescimento futuro."

solano-labs-logo

Um parceiro de tecnologia avançado da Rede de parceiros da AWS (APN) com a competência em DevOps da AWS. A Solano Labs disponibiliza sistemas excelentes e escaláveis para integração contínua (CI) e implantação contínua (CD) que permitem que os desenvolvedores de software aumentem a eficiência e a qualidade da engenharia enquanto reduzem custos.

Para obter mais informações sobre como o Solano Labs pode ajudar a sua empresa a criar e gerenciar o ambiente da AWS, consulte as informações do Solano Labs  no Diretório de parceiros da AWS.
 

Para saber mais sobre como a AWS pode ajudar no gerenciamento de sites, acesse a nossa página de detalhes sobre sites e hospedagem de sites.