Menu
Blog Infra como Código

Puppet Enterprise: saiba como a Walmart provisionou 55 mil nodes

O Puppet Enterprise tem sido escolhido por centenas de empresas ao redor do mundo para realizar a automatização de infraestruturas e, como consequência, aumentar a produtividade de equipes de TI e reduzir o tempo de entrega das demandas. O Walmart, uma das maiores redes do varejo americano, possui uma excelente experiência com o sistema: os profissionais conseguiram escalar mais de 55 mil nodes e esse número está em crescimento contínuo.

Confira, abaixo, o que disse Martin Jackson, especialista em tecnologia da empresa e um dos precursores do projeto de aplicação do Puppet Enterprise no Walmart.

 

1) Empoderamento para atingir objetivos

Um pouco mais de três anos atrás, nós iniciamos uma jornada. Nosso objetivo era muito simples: reduzir nossos tempos de entrega e melhorar a qualidade da nossa infraestrutura utilizando a automação. Graças a um time excepcional e a alguns softwares open source, nós conseguimos atingir a maioria das nossas metas em relação ao nosso projeto inicial.

Nossa história começou com confiança e empoderamento. Uma pequena equipe foi formada para iniciar a automatização de nossos processos de criação de servidores: nossa esperança era trazer a automação para todo o nosso ambiente de computação distribuída, incluindo servidores em nossos data centers corporativos e nuvens públicas, bem como em nossos centros de distribuição e lojas. Para conseguir isso, optamos por trabalhar com o Puppet 3 Open Source.

 

2) Desafio inicial: provisionamento de nodes

No começo, não sabíamos quantos nodes conseguiríamos rodar utilizando o Puppet. O que sabíamos é que gostaríamos de unificar e centralizar as funções, ter um processo definido e um ponto de contato para o maior número de processos de desenvolvimento possível. Nossa grande virada ocorreu quando começamos a construir os servidores de datacenter com o Puppet por volta de Junho de 2014. A nossa chefia nos enviou um grande desafio: “Quantos nodes podemos provisonar com o Puppet até o feriado?”

Nossa resposta foi cerca de 2.000 nodes, que pensamos que era um número bem alto. Uma pequena equipe de engenheiros de várias áreas da nossa infraestrutura estava no escritório de nossa vice-presidência, sentindo-se confiante de que 2000 nodes fariam uma grande diferença. O vice-presidente olhou para o número 2.000, escrito em um quadro branco, e calmamente apagou o “2” e substituiu-o com um “7.” Ficamos muito surpresos.

Estávamos falando sobre o uso de uma nova tecnologia da estaca zero em cerca de 500 lojas em menos de dois meses. Será que o sistema conseguiria ter mesmo uma escala tão grande? Não tínhamos ideia. E agora nosso objetivo seria dobrar e até triplicar isso.

Nosso vice-presidente nos disse: “Temos mais de 10.000 lojas. 500 não fará uma grande diferença. Um dos engenheiros da sala, que tinha trabalhado em sistemas de loja quase toda a sua carreira, disse: “Bem, se queremos provisionar 7.000, por que não implementar em toda a rede de lojas? “Isso significava 30.000 nodes. O vice-presidente disse: “Tudo bem! Parece que você está sonhando bem alto.”

 

3) Como escalar o número de nodes rapidamente?

Nos dois meses seguintes, implantamos os nodes, geralmente em torno de 500 ou 2.000 de cada vez. A primeira vez que tentamos fazer 500, ficamos sobrecarregados com os nossos servidores Puppet, então aprendemos a adicionar as lógicas splay e retry ao nossos processos de instalação e de bootstrap. Várias vezes, quebramos a nossa infraestrutura Puppet e tivemos que construir mais servidores Puppet, ou classificadores. Era isso ou precisávamos tornar os servidores que já tínhamos ainda maiores.

 

4) A cultura aplicada pelos líderes faz a diferença

Em qualquer momento, a nossa chefia poderia ter dito: “Obrigado por tentar, mas parece que isto não vai funcionar por muito tempo”. Mas eles nos deram a oportunidade de trabalhar com os problemas, e isso fez toda a diferença. O sistema aguentou. Então, em meados de outubro – duas semanas antes do nosso prazo – nós terminamos todo o projeto. Tínhamos mais de 30.000 nodes nos informando sobre uma única infraestrutura.


Uma vez que tivemos o Puppet implementado na cadeia de lojas, foi bastante fácil aplicá-lo no nosso servidor brownfield. Tínhamos respondido à questão de saber se o Puppet poderia ou não ser escalado na nossa empresa. Mas, muito mais importante, tínhamos provado a nós mesmos e à organização como um todo que poderíamos usar Puppet como um sistema para gerenciar a mudança de infraestrutura com velocidade e qualidade.

 

5) Expansão de nodes também com Windows

Depois que Puppet 4 foi lançado e o suporte para o Puppet no Windows melhorou, nossas equipes do Windows decidiram que queriam usar o Puppet também. Hoje temos mais de 55.000 nodes em funcionamento relatando em uma única instância administrativa do Puppet. Atualizamos a infraestrutura três vezes e estamos executando as versões mais recentes de todas as ferramentas e recursos disponíveis.

Mas tudo isso começou quando a nossa liderança tomou a decisão consciente de confiar em nós. Isso levou a um incrível nível de orgulho e profissionalismo na solução que construímos, e que, por sua vez, levou a alguns resultados surpreendentes, para nós e para a nossa empresa.


Se você quiser saber mais sobre como implementar o Puppet Enterprise na sua empresa, ou se tiver alguma dúvida sobre automação de infraestruturas, entre em contato conosco clicando aqui 🙂