O Guia Definitivo do Salt, parte 1

Introdução

Cléber Zavadniak
clebertech
3 min readJun 16, 2017

--

Aqui na Dronemapp decidimos gerenciar nossa infraestrutura de computação usando uma ferramenta muito poderosa e interessante chamada “Salt”. Além da minha experiência prévia com ela, contou alguns pontos o fato de ser escrita também em Python, que é a nossa “linguagem default”, ser open source, ter uma comunidade bem ativa e possuir documentação razoavelmente boa.

Do meu ponto de vista, o Salt vive um momento curioso: é bem poderoso, é conceitualmente [até] simples, é muito facilmente extensível, usa YAML e Python (que é uma das linguagens mais fáceis de se aprender), tem um projeto extremamente ativo (vide https://github.com/saltstack/salt/pulse/monthly) e é usada por empresas grandes, como Booking,com, Ubisoft e LinkedIn. Mas, ao mesmo tempo, pouco se ouve falar dele entre as comunidades de desenvolvedores. Minha impressão é que quase todo mundo já ouviu falar, por exemplo, de Puppet ou Cheff, mas quase ninguém conhece o Salt.

Uma pena.

Talvez uma dificuldade seja justamente a falta de bons tutoriais. Eu confesso que penei bastante para conseguir gerar uma configuração usável e útil aqui para a DroneMapp e o motivo foi que, no geral, a documentação oficial foca muito mais em informação, e não conhecimento, e os artigos são escritos, geralmente, sob o ponto de vista de pessoas que já tem fluência em sistemas de gerenciamento de configuração ou de infraestrutura. As soluções para casos de uso reais eu acabei encontrando no StackOverflow, não em tutoriais ou guias, o que parece confirmar minha afirmação de que o “ecossistema de conhecimento” em torno do Salt é mais pobre do que poderia ou deveria ser.

E é por isso que estou escrevendo este artigo. O público alvo será desenvolvedores que nunca lidaram com gerenciamento de configuração ou de infra antes e que não são especialistas em nenhum provedor de infraestrutura de computação (como AWS). Meu objetivo é que, no final dessa série, você tenha conhecimento suficiente para configurar sua própria solução de gerenciamento de infraestrutura e, a partir disso, correr atrás de adaptar e melhorar isso por conta própria.

1- O que é um sistema de gerenciamento de configurações

Talvez o primeiro conceito importante que você precisa absorver é o seguinte:

Trate seus servidores como gado, não como pets.

Eu tenho um catioro. Ele se chama Rufus. E ele é diferente de todos os outros cachorros. Afinal, ele se chama Rufus. E é meu e da minha esposa. E eu tenho uma carteira de vacinação na gaveta da minha escrivaninha e lembro de quando ele chegou em casa, das vacinas que tomou, das “artes” que ele aprontou e sei bem como ele é apegado a nós.

Isso é um pet.

Óunnn! Podemos chamar de Tiglate-Pileser??

E isso, amigo, isso é gado:

Sabe qual o nome daquele boi mais à frente e do lado mais à direita da foto? É “who cares?”. Gado é gado. Gado é 500 quilos de carne sem nome e pronto.

Soa sem carinho? Pois é. Para começar a brincar de devops de verdade e a gerenciar infraestrutura de computação de verdade você deve despir-se desse carinho todo que você tem pelos seus servidores ou instâncias ou o que for.

Leia o restante lá no meu site:

--

--