ALM Summit Brasil 2014 
ALM Summit Brasil 2014 
Configuration as Code e ALM: a 
nova realidade da automação 
Vinicius Hana
ALM Summit Brasil 2014 
Vinicius Hana 
Microsoft MVP – Visual Studio ALM 
Visual Studio ALM Ranger 
Consultor de ALM e arquitetura na Lambda3
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
ALM Summit Brasil 2014 
Processos manuais 
• Alto custo de posse 
• Lentidão de processos 
• Exigem documentação excessiva 
• Considerável propensão a erros
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
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
ALM Summit Brasil 2014 
Progredindo na 
automação 
Níveis, práticas e ferramentas
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
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
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
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
ALM Summit Brasil 2014 
Como automatizar de 
outra forma? 
Configuração como código
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
ALM Summit Brasil 2014 
Configuração como código 
Configuração 
Estado 
desejado 
Ferramenta 
Estado 
inicial
ALM Summit Brasil 2014 
Configuração como código 
• Ferramentas mais comuns: 
• PowerShell DSC 
• Puppet
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
ALM Summit Brasil 2014 
Demonstração 
PowerShell DSC
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
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
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
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
ALM Summit Brasil 2014 
Demonstração 
PowerShell DSC com Release Management
ALM Summit Brasil 2014 
ALM Summit Brasil 2014 
Obrigado! 
Vinicius Hana 
vinicius.hana@lambda3.com.br 
@viniciushana

Configuration as code e ALM: a nova realidade da automação

  • 1.
    ALM Summit Brasil2014 ALM Summit Brasil 2014 Configuration as Code e ALM: a nova realidade da automação Vinicius Hana
  • 2.
    ALM Summit Brasil2014 Vinicius Hana Microsoft MVP – Visual Studio ALM Visual Studio ALM Ranger Consultor de ALM e arquitetura na Lambda3
  • 3.
    ALM Summit Brasil2014 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 Brasil2014 Processos manuais • Alto custo de posse • Lentidão de processos • Exigem documentação excessiva • Considerável propensão a erros
  • 5.
    ALM Summit Brasil2014 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 Brasil2014 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 Brasil2014 Progredindo na automação Níveis, práticas e ferramentas
  • 8.
    ALM Summit Brasil2014 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 Brasil2014 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 Brasil2014 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 Brasil2014 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 Brasil2014 Como automatizar de outra forma? Configuração como código
  • 13.
    ALM Summit Brasil2014 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 Brasil2014 Configuração como código Configuração Estado desejado Ferramenta Estado inicial
  • 15.
    ALM Summit Brasil2014 Configuração como código • Ferramentas mais comuns: • PowerShell DSC • Puppet
  • 16.
    ALM Summit Brasil2014 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
  • 17.
    ALM Summit Brasil2014 Demonstração PowerShell DSC
  • 18.
    ALM Summit Brasil2014 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 Brasil2014 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 Brasil2014 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 Brasil2014 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 Brasil2014 Demonstração PowerShell DSC com Release Management
  • 23.
    ALM Summit Brasil2014 ALM Summit Brasil 2014 Obrigado! Vinicius Hana vinicius.hana@lambda3.com.br @viniciushana