Automação de infraestrutura, muito além de uma promessa, já é uma realidade a muito tempo no mercado. Veremos como automatizar trabalhos de infraestrutura, quais os ganhos obtidos e quais as práticas mais recomendadas para manter um ambiente saudável de código de infraestrutura.
ALM Summit 2014: Configuração como código e automação
1. ALM Summit Brasil 2014
ALM Summit Brasil 2014
Configuration as Code e ALM: a
nova realidade da automação
Vinicius Hana
2. ALM Summit Brasil 2014
Vinicius Hana
Microsoft MVP – Visual Studio ALM
Visual Studio ALM Ranger
Consultor de ALM e arquitetura na Lambda3
3. ALM Summit Brasil 2014
Realidade atual da automação
• Completamente incipiente
• Poucas empresas investem agressivamente em
automação, mesmo com os ganhos evidentes
• Falta no mercado perfis fortes de DevOps
4. ALM Summit Brasil 2014
Processos manuais
• Alto custo de posse
• Lentidão de processos
• Exigem documentação excessiva
• Considerável propensão a erros
5. ALM Summit Brasil 2014
Trivia – Empresa X
• 1 semana para conseguir uma VM
• Provisionamento errático com configurações
erradas, baixa confiabilidade
• Empresa possui sistemas críticos, escalabilidade
horizontal impactada
6. ALM Summit Brasil 2014
Trivia – Empresa Y
• Equipe de 4 pessoas dedicadas para fazerem
publicações manuais:
• Cópia de arquivos
• Configuração de IIS
• Execução de scripts de SQL
• Janela de 24h para publicar uma versão em
qualquer ambiente que seja
• Ambiente custoso e improdutivo
7. ALM Summit Brasil 2014
Progredindo na
automação
Níveis, práticas e ferramentas
8. ALM Summit Brasil 2014
Record & Replay
• Gravação de passos e interações para posterior
reprodução
• Normalmente não trabalham com código ou
geram código que realiza as tarefas
• Exemplo: Coded UI
9. ALM Summit Brasil 2014
Record & Replay
• Exige execuções manuais constantemente para
garantir que o processo funciona
• Se gerar código, o mesmo tende a ser
complexo e especializado
• Apresenta ganhos em relação ao manual, mas
é bem restrito no geral
10. ALM Summit Brasil 2014
Automação via código
• Usar programação para determinar tarefas de
automação
• Modelo imperativo, determina como as coisas
devem acontecer
• Conhecimento de programação é difundido,
facilita adoção
• Chef é uma ferramenta de exemplo
11. ALM Summit Brasil 2014
Automação via código
• Muitas estruturas precisam ser feitas do nada
• Inflexibilidade de plataforma
• Demanda grande esforço por precisar de:
• Tratamento de erros
• Fluxos alternativos
• Ferramental específico
• Código resultante não é tão legível
• Pode acabar reinventando a roda
12. ALM Summit Brasil 2014
Como automatizar de
outra forma?
Configuração como código
13. ALM Summit Brasil 2014
Configuração como código
• Usar programação para determinar o estado
desejado de configuração
• Modelo declarativo, determina o que deve
acontecer, não como
• Código intuitivo, simples e legível
14. ALM Summit Brasil 2014
Configuração como código
Configuração
Estado
desejado
Ferramenta
Estado
inicial
15. ALM Summit Brasil 2014
Configuração como código
• Ferramentas mais comuns:
• PowerShell DSC
• Puppet
16. ALM Summit Brasil 2014
PowerShell DSC
• DSC: Desired State Configuration
• Extensão do PowerShell a partir do WMF 4
• Já vem por padrão com:
• Instalar ou remover roles do Windows Server
• Manipular registro do Windows
• Gerenciar arquivos e diretórios
• Iniciar ou interromper processos e serviços
• Executar scripts Powershell
• Totalmente extensível
18. ALM Summit Brasil 2014
Consistência de ambientes
• Ambientes podem sofrer influências
imprevistas
• Scripts de configuração podem ficar
desatualizados
• Pode haver conflito de versão de configurações
19. ALM Summit Brasil 2014
Pull server de configurações
• Um servidor que age como “ponto único da
verdade”
• Armazena as configurações que estão vigentes
e assegura que os ambientes estejam de
acordo com elas
• Configurações passam por processo de
“deploy”
• Configurações refletem a realidade na prática
• Atualizações facilitadas
20. ALM Summit Brasil 2014
DSC para deploy
• Via configuração, é possível definir:
• Requisitos de sistema operacional
• Cópia de arquivos
• Execução de binários
• Possui todas as vantagens mencionadas
anteriormente
21. ALM Summit Brasil 2014
Release Management
• TFS 2013 Update 3: scripts DSC como parte de
deployment no Release Management
• Integrando DSC, Release Management e TFS, a
entrega de software é integrada de ponta a
ponta usando
22. ALM Summit Brasil 2014
Demonstração
PowerShell DSC com Release Management
23. ALM Summit Brasil 2014
ALM Summit Brasil 2014
Obrigado!
Vinicius Hana
vinicius.hana@lambda3.com.br
@viniciushana