Histórias de clientes/Marketing digital
2021
Pinterest aprimora a confiabilidade do pipeline de build do iOS em 80,5% com as instâncias Mac do Amazon EC2
O Pinterest aprimorou a velocidade de desenvolvimento, a estabilidade da infraestrutura e o tempo de entrada no mercado ao migrar seu ambiente de compilação do iOS para instâncias Mac do Amazon EC2.
80,5%
Diminuição das falhas de compilação relacionadas à máquina no pipeline de CI/CD em 80,5%
Custos reduzidos
18,4%
Maior confiabilidade e estabilidade
Desenvolvedores capacitados
Para se concentrarem na criação de serviços inovadores
Visão geral
O Pinterest atende a mais de 444 milhões de usuários por mês, no mundo inteiro, com suas aplicações móveis e Web. Para dar suporte à sua aplicação iOS, os desenvolvedores do Pinterest usaram computadores on-premises que podiam acessar o macOS e o ambiente de desenvolvimento integrado Xcode da Apple, necessários para desenvolver, compilar, testar e implantar atualizações e novos recursos para qualquer aplicação da Apple. Porém, a plataforma de descoberta visual queria uma infraestrutura mais rápida e mais eficiente para seu ambiente de compilação do iOS e buscou uma solução na Amazon Web Services (AWS).
O Pinterest migrou seu pipeline de integração contínua e entrega contínua (CI/CD) para aplicações iOS para instâncias Mac do Amazon Elastic Compute Cloud (Amazon EC2), permitindo que os desenvolvedores provisionem e acessem ambientes de computação macOS em nuvem sem interrupções. Com instâncias Mac do Amazon EC2, o Pinterest reduziu as falhas de compilação relacionadas à máquina em 80,5% e aumentou a velocidade de desenvolvimento em 18,4%.
Oportunidade | Acesso a ambientes macOS em nuvem
Como um mecanismo de descobertas visuais usado para encontrar inspirações em categorias como decoração, comida, estilo e beleza, o Pinterest cresceu até se tornar uma plataforma global. Para criar, testar e implantar aplicações para seus usuários do iOS, os desenvolvedores do Pinterest usaram computadores on-premises, que a empresa precisava adquirir, configurar e atualizar manualmente. “Era muito difícil ter de gerenciar máquinas físicas”, afirma Oliver Koo, engenheiro de software sênior do Pinterest. “Precisávamos de pessoal para configurar todos os laptops, monitorá-los e atualizá-los continuamente. Se houvesse problema em uma máquina, enfrentaríamos interrupções no serviço e maior latência.” Esse ambiente on-premises prolongava o desenvolvimento, afetando o tempo de entrada no mercado do Pinterest para os recursos do iOS.
O Pinterest precisava de um modo escalável e eficiente de criar, testar e implantar recursos e atualizações do iOS. Tendo usado os produtos da AWS desde o lançamento em 2010, a empresa recorreu à AWS e descobriu as instâncias Mac do Amazon EC2. O Pinterest percebeu que poderia usar esse serviço para provisionar e acessar ambientes macOS em minutos, escalar a capacidade conforme necessário e otimizar seus custos de computação. “Descobrimos que migrar para a AWS simplificaria a experiência de desenvolvimento”, afirma Oliver. “As instâncias Mac do Amazon EC2 são o primeiro serviço que permite que os usuários executem ambientes macOS sob demanda na nuvem, o que é um divisor de águas.” Em março de 2021, o Pinterest começou a migração de seu pipeline de CI/CD para as instâncias Mac do Amazon EC2.
Com as instâncias Mac do Amazon EC2, reduzimos o número de falhas de compilação relacionadas à máquina em 80,5%, o que é excelente.”
Oliver Koo
Engenheiro de software sênior, Pinterest
Solução | Diminuição do tempo de entrada no mercado com as instâncias Mac do Amazon EC2
Em agosto de 2021, o Pinterest já havia concluído a migração para as instâncias Mac do Amazon EC2. Com essa solução, a empresa simplificou seu pipeline de CI/CD e agora consegue escalar seu ambiente de criação do iOS sob demanda. “Na AWS, agora podemos aumentar o número de máquinas de compilação em 400% no pico de demanda, em vez de gerenciar um grupo estático de máquinas”, afirma Oliver. O Pinterest usa o Buildkite Agent Scaler, que é executado como uma função no AWS Lambda, um serviço de computação com tecnologia sem servidor e orientado por eventos, para realizar a escalabilidade da infraestrutura de CI/CD da empresa com eficiência, acompanhando o número de trabalhos que precisam ser executados e ajustando devidamente o tamanho da frota de instâncias Mac do Amazon EC2 do Pinterest. “Durante períodos de baixa demanda, conseguimos reduzir a escala verticalmente com facilidade”, diz Oliver. Os desenvolvedores não precisam mais esperar que a capacidade fique disponível durante o pico de demanda, o que melhora a velocidade de desenvolvimento. Leva apenas alguns minutos para o Pinterest criar uma nova instância Mac do Amazon EC2, comparado às horas ou dias que levaria para adquirir uma nova máquina. Comparado à execução de compilações com máquinas on-premises, o Pinterest pode desenvolver e lançar aplicações iOS 18,4% mais rapidamente usando instâncias Mac do Amazon EC2. Por não precisar mais adquirir máquinas e pagar apenas pela capacidade de computação do macOS que usa, o Pinterest reduziu consideravelmente seus custos de desenvolvimento.
O Pinterest também simplificou seus processos de compilação usando instâncias Mac do Amazon EC2. Agora ficou mais rápido e mais simples testar novos recursos e atualizações. “O processo de atualização, aplicação de patches e implantação de correções de segurança em nosso pipeline de CI/CD era bastante complexo”, diz Oliver. “Mas as instâncias Mac do Amazon EC2 e os novos processos que desenvolvemos são bem simples de entender.” Para iniciar uma instância do Amazon EC2, o Pinterest compila uma imagem de máquina da Amazon (AMI) contendo informações, como permissões, que controlam quais contas da AWS poderão usá-la. Como os desenvolvedores agora têm a capacidade de criar uma AMI e configurar rapidamente essas regras, a velocidade de desenvolvimento do Pinterest aumentou 42%. Com a infraestrutura simplificada, a integração de novos funcionários do Pinterest também fica mais simples. Consequentemente, os desenvolvedores podem começar a trabalhar mais cedo e a inovar mais rapidamente.
Para manter seu pipeline de CI/CD seguro, o Pinterest conta com produtos da AWS, como o AWS Identity and Access Management (AWS IAM), que fornece controle de acesso detalhado em toda a AWS. Cada cluster de instâncias Mac do Amazon EC2 usa um perfil diferente do AWS IAM com diferentes permissões atribuídas. Quando um usuário tenta acessar o cluster, o sistema automaticamente permite ou nega o acesso com base nas políticas de segurança que o Pinterest configurou. A empresa também usa o AWS Secrets Manager, que ajuda os desenvolvedores a alternar, gerenciar e recuperar facilmente credenciais de bancos de dados e chaves de API ao longo dos ciclos de vida. O Pinterest recorre ao AWS Secrets Manager para centralizar a autenticação do macOS, evitando que usuários não autorizados acessem seu ambiente de compilação do iOS.
O Pinterest usa instâncias Mac do Amazon EC2 para melhorar a estabilidade de seu pipeline de CI/CD, de modo que seus desenvolvedores possam lançar novos recursos mais rapidamente. Antes, os desenvolvedores precisavam reiniciar frequentemente as máquinas on-premises após longos períodos de atividade, interrompendo o desenvolvimento. Agora, eles sempre têm acesso a uma infraestrutura confiável de CI/CD. Consequentemente, os desenvolvedores do Pinterest podem desenvolver recursos melhores e evitar atrasos ao enviar atualizações para a Apple App Store. “Com as instâncias Mac do Amazon EC2, reduzimos o número de falhas de compilação relacionadas à máquina em 80,5%, o que é excelente.” Ao usar as instâncias Mac do Amazon EC2, os desenvolvedores do Pinterest não precisam mais dedicar tempo para solucionar problemas e gerenciar a infraestrutura, assim, podem se concentrar na criação de novos recursos inovadores para oferecer melhor suporte aos usuários do Pinterest.
Resultado | Suporte à inovação contínua com a AWS
Com as instâncias Mac do Amazon EC2, o Pinterest melhorou significativamente os tempos de desenvolvimento e de entrada no mercado, bem como a estabilidade do pipeline de CI/CD. Futuramente, a empresa pretende usar o Amazon Relational Database Service (Amazon RDS), que simplifica a configuração, a operação e a escalabilidade de um banco de dados relacional na nuvem para registrar e monitorar falhas de compilação. Usando esses insights, o Pinterest consegue entender melhor com que frequência determinados erros ocorrem e implantar soluções para solucioná-los. “A AWS é a primeira a fornecer ambientes macOS sob demanda na nuvem”, afirma Oliver. “Com as instâncias Mac do Amazon EC2, os ambientes de compilação iOS e as máquinas Mac ficam bem mais prontamente disponíveis e acessíveis aos desenvolvedores.”
Sobre o Pinterest
O Pinterest é um mecanismo de descoberta visual usado por mais de 444 milhões de pessoas todos os meses para encontrar receitas, ideias de decoração e estilo e muito mais. Com sede em San Francisco, Califórnia, o Pinterest foi lançado em 2010.
Produtos da AWS usados
Amazon EC2
O Amazon Elastic Compute Cloud (Amazon EC2) é um serviço da Web que disponibiliza capacidade computacional segura e redimensionável na nuvem. Ele foi projetado para facilitar a computação em nuvem na escala da web para os desenvolvedores.
Instâncias Mac do Amazon EC2
As instâncias Mac do EC2 permitem que os clientes executem workloads macOS sob demanda na nuvem pela primeira vez, o que amplia a flexibilidade, escalabilidade e o custo-benefício da AWS a todos os desenvolvedores da Apple.
AWS Secrets Manager
O AWS Secrets Manager ajuda você a proteger os segredos necessários para acesso a aplicações, serviços e recursos de TI.
Explore a jornada de inovação do Pinterest usando a AWS
Mais histórias do Pinterest
Comece a usar
Organizações de todos os portes, em todos os setores, estão transformando seus negócios e cumprindo suas missões todos os dias usando a AWS. Entre em contato com nossos especialistas e comece sua própria jornada para a AWS hoje mesmo.