Guto Carvalho: Treinamento Puppet Fundamentals em Brasília
24 de Abril de 2015, 18:22 - sem comentários aindaPuppet Fundamentals
23, 24 e 25 de Junho de 2015
Horário: 09:00 às 18:00
Local: Brasília/DF
Data marcada!
Saiba mais sobre o treinamento:
=> https://puppetlabs.com/services/training/puppet-fundamentals
=> http://instruct.com.br/calendario.html
Eu serei o instrutor :)
[s]
Guto
Gomex: Lançamento do Docker 1.6
20 de Abril de 2015, 9:12 - sem comentários aindaO Docker continua crescendo muito rápido e com pouco mais de 2 meses, lança uma nova versão recheada de novidades.
Entre as novidades desse lançamento temos: Label para containers, cliente Docker para Windows, driver para log. Isso sem contar com os lançamentos do compose 1.2, Swarm 0.2 e machine 0.2. Vamos detalhar um pouco esse mega release.
Label para containers
Esse recurso é muito interessante a nível de organização e agrupamento. Uma vez que as tags tem um papel quase como “versionamento”, as labels assumem a marcação que pode incluir “assuntos”, “funcionalidades”, “ambiente” e afins nos containers. Pode parecer pouca coisa para quem usa o Docker para uma situação específica, mas para grandes soluções é uma ajuda e tanto.
Quer aprender a usar? Leia aqui.
Cliente Docker para Windows
Finalmente parece que a Microsoft conseguiu entrar em alguma tendência no momento certo, pois está apostando fortemente no Docker. A demonstração disso foi a submissão de 70 pull requests. Assim como no MAC, O Windows somente poderá ser utilizado como cliente remoto que deve ser conectar a um Docker “Server”, que ainda é só pode ser instalado nativamente apenas no GNU/Linux.
Muitos amantes do GNU/Linux podem ficar tristes com essa declaração, mas a grande funcionalidade do Docker que é “Faça uma vez, rode em qualquer lugar” talvez dependa desse suporte nativo mais amplo da Microsoft. Isso levando em consideração que ela cumpra sua promessa de manter a compatibilidade.
Você pode ler mais sobre isso no blog da Azure.
Driver para log
Tem havido um número crescente de propostas para uma API de registro que lhe permitiria enviar logs de containers para outros sistemas, como Syslog ou um terceiro. Esse novo driver de log segue o mesmo conceito de storage e exec já presente no Docker.
A opção docker run –log-driver tem três possibilidades:
json-file (padrão): Que é basicamente o que já usado no Docker atualmente. Todos os logs dos containers são armazenados na pasta /var/lib/docker/containers/<Containers ID>/<container id>-json.log
syslog: Como o próprio nome já revela, é uma forma de enviar esse log via syslog do host “hospedeiro”. Veja como funciona:
# docker run -d –log-driver=syslog gomex/debian:padrao echo “Hello”
c2ed7a98583c82a90111ffba5fb89e73dcd6e681a03c921da538a84ffd7216d0
No /var/log/syslog estará assim:
Apr 17 23:29:18 gondor docker[15432]: c2ed7a98583c: Hello
Perceba que temos tanto o nome aplicação docker como o ID resumido do container, o que é o suficiente para fazer uma boa gerência desse log. Ótimo para quem deseja minimizar o máximo de processos em execução no container, mas não abre mão de um log centralizado e organizado.
none: Como o próprio nome também já revela, é uma forma de não gerar log do container para o host “hospedeiro”. Essa opção é ótima para containers que geram logs desnecessários.
Outros lançamentos
A comunidade Docker promoverá alguns Meetups para apresentação das novidades do Swarm, Compose e Machine. Não perca!
Referência:
https://blog.docker.com/2015/04/docker-release-1-6/
Guto Carvalho: Perguntas Pontuais DevOps
15 de Abril de 2015, 12:59 - sem comentários aindaRecebi um e-mail com perguntas interessantes sobre o conceito DevOps e automação, vou publicar as perguntas e as respostas pois são questões recorrentes.
1) O DevOps pode ajudar na redução de custos de operação de infraestrutura?
Sim, adotando uma nova metodologia de trabalho e colaboração, com amplo feedback entre os times torna tudo mais simples, os projetos vão andar mais rápido, as pessoas vão se comunicar melhor, a qualidade do trabalho será maior, as entregas vão ocorrer em janelas menores.
Só tome cuidado para não confundir DevOps com infraestrutura ágil ou automação. DevOps é um conceito muito mais amplo que envolve e integra desenvolvimento, qualidade, infraestrutura e operação. A operação não trabalha mais sozinha ou isolada, ela se integra e se enxerga como parte de um único time de TI responsável por fazer o negócio de seu cliente fluir e prosperar.
2) A automação, autohealing e infraestrutura como código pode trazer redução de custos?
Sim, porém automação não tem foco único em reduzir custos, tem foco em manter seu negócio funcionando e fluindo.
Ao automatizar processos, procedimentos, rotinas e tarefas, sua equipe para de fazer trabalho repetitivo e pode focar em projetos, melhorias, capacitação, inovação. Sobra tempo para fazer outras coisas, você faz mais, em menos tempo, de forma controlada e melhor.
Automatizar significa manter a integridade e a saúde do seu ambiente.
Automatizar significa maior controle de suas mudanças.
Automatizar significa mudanças rápidas e precisas.
Automatizar significa reduzir falhas humanas.
Sua equipe vai trabalhar menos, produzir e aumentar sua qualidade.
3) Automatizar significa redução da equipe ou substituição de algum profissional da minha equipe?
De forma alguma. Sua equipe vai conseguir fazer muito mais com automação. Automação não significa redução de equipe, significa ampliação de capacidade de trabalho, fazendo isto com qualidade e controle, utilizando o máximo das tecnologias existentes.
Você vai na realidade aposentar processos arcaicos e repetivos, capacitar sua equipe, evoluir processos e métodos, transformar seu modelo clássico em um modelo mordeno e funcional de gestão de infraestrutura.
Se antes um membro da equipe conseguia gerir no máximo 15 hosts com qualidade, com automação ele conseguirá cuidar de 3000 com segurança.
Sua equipe vai trabalhar menos pois seu ambiente vai funcionar melhor e de forma mais precisa.
A disponibilidade do negócio se estabiliza e atingirá novos patamares.
[s]
Guto
Gomex: Criação automatizada de imagens Docker (GitHub e Docker Hub)
13 de Abril de 2015, 11:40 - sem comentários aindaComo expliquei no artigo anterior sobre Docker, o processo de criação de imagens no Docker é bem simples, mas requer algum esforço e acompanhamento para saber se ele concluiu corretamente e esse resultado será visualizado em linha de comando, normalmente imagem a imagem. Um trabalha “manual”.
Criação em massa
Quando você trabalha com muitas imagens, e a mudança dessas imagens é constante, você precisará de uma solução mais automatizada e de um processo mais simples pra viabilizar a criação dessas imagens. É nesse momento que entra o serviço de automatização de criação das imagens do Docker Hub junto ao GitHub.
Automação de builds
O Docker Hub tem um serviço de Automação da criação de imagens (Build), com integração com GitHub, ou seja, toda vez que você efetuar um commit e push no Dockerfile do seu repositório será realizado automaticamente um novo build da imagem, já armazenando no Docker Hub e apresentando o log de criação dessa imagem. Praticamente uma integração contínua da sua imagem
Para configurar isso é muito simples. Basta seguir os passos abaixo:
- Crie uma Conta no Docker Hub e efetue login.
- Link sua conta do GitHub através do menu “Link Accounts”.
- Configure o build automatizado.
- Escolha o projeto GitHub que deseja utilizar. Lembre-se que ele precisa ter um
Dockerfile
para efetuar a build. - Escolha a branch que você quer efetuar a build (Por padrão é usada a branch
master
). - Dê um nome a esse build automatizado.
- Opcionalmente, aplique uma tag Docker tag para a build.
- Especifique onde o
Dockerfile
está localizado. O padrão é “/"
.
Uma vez o build automatizado é configurado ele será ativado automaticamente e em poucos minutos você pode visualizar sua imagem Docker Hub. Ela será mantida sincronizada com base no Dockerfile do seu repositório GitHub até que você desative o Build automatizado em questão.
Visualizando a situação da build
Se você quiser visualizar a situação do seu build automatizado, basta acessa o menu “Build detail” na sua imagem dentro da sua conta do Docker Hub, assim conseguirá visualizar o status da sua build e todo o histórico.
Como funciona a atualização
Vale lembrar que você o build automatizado não será ativado com o comando “docker push"
, você apenas poderá enviar modificação, e por consequência efetuar automaticamente o build dessa imagem, através do git commit e push para o repositório previamente configurado no link entre GitHub e Docker Hub.
Você pode criar múltiplos builds automatizados por repositório e configurar ele para apontar para um específico Dockerfile ou branch diferente.
Build Triggers
É possível ativar o build automatizado a partir de uma url. Basta habilitar o “Build triggers” em sua build automatizada. Agora você conseguirá gerar uma build por demanda e não apenas com base em commit e push.
Atenção!
Vale a pena lembrar que todo processo descrito aqui não leva em consideração repositórios e imagens privadas. Caso seja sua situação de não publicizar esse trabalho, tenha cuidado com relação a isso.
Referência
https://docs.docker.com/userguide/dockerrepos/
Guto Carvalho: Treinamento Architect em San Jose/CA
10 de Abril de 2015, 15:51 - sem comentários aindaEste ano eu estive em San Jose/CA e participei do novo treinamento Puppet Architect da Puppetlabs. O treinamento foi ministrado por um instrutor da Puppetlabs.
É importante mencionar que todos os treinamentos nos Estados Unidos da América são ministrados por instrutores que são funcionários da Puppetlabs, já em outros países, normalmente são os parceiros que ministram estes cursos, como ocorre aqui no Brasil com a Instruct.
Instrutores que são funcionários de parceiros precisam fazer todos os cursos oficiais, se certificar (PCP) e participar e de um treinamento específico para instrutores ministrado pelo time de educação da Puppetlabs.
No curso de San Jose havia apenas dois brasileiros, eu e o Miguel Filho. O curso foi bem interessante, a pegada deles no curso é bem diferente da nossa didática de aulas no Brasil, foi curioso ver que eles não gostam de improvisar, dar asas a criatividade, testar novas soluções, eles seguem certinho o material, excutam os exemplos e as soluções a risca.
Culturas diferentes, metodologias diferentes. Eu já gosto de estimular em meus alunos o pensamento fora da caixinha, quero que eles enxerguem novas soluções, novas abordagens, novos caminhos para resolver labs, indo além do material, isso parece funcionar muito bem aqui no Brasil :)
O material continua com nível técnico muito alto, exemplos bem interessantes, cenários que refletem a realidade de muitos tipos de clientes que atendemos no Sul e Sudeste.
A nova abordagem de cenários Monolíticos, Dispersos e Dispersos com Multi Master é incrível, está muito fácil criar diversos servidores Puppet Master e distribuir isso em sua rede, basta fazer a classificação de um node com uma classe específica e pronto, novo master atendendo.
Recomendo o curso para quem deseja aprender a escalar seu ambiente do jeito certo - entendendo o planejamento de capacidade com puppet, classificar nodes de forma personalizada - escrevendo seu próprio classificador, estender o uso do HIERA, utilizar HIERA com criptografia, utilizar o R10K para gerenciar ambientes com GIT, usar o Mcollective sem frontend, interagir com APIs do Puppet e PuppetDB, entender e utilizar exported resources na prática, dentre muitas outras coisas.
O curso valeu muito, pelo conteúdo, pelo instrutor, por entender a dinâmica e a metodologia da Puppetlabs, pela viagem e pelo investimento, que se paga fácilmente ao aplicá-lo nos clientes que temos no Brasil.
Como já participei do treinamento de instrutores, agora estou apto a ministrar esse treinamento no Brasil, em breve vamos definir uma data e divulgar.
[s]
Guto