Liberando versões de forma automatizada #dod14sjc

363 visualizações

Publicada em

Palestra realizada no DevBrasil OpenDay de São José dos Campos em 2014, sobre liberação de versões de maneira automatizada utilizando o Release Management

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
363
No SlideShare
0
A partir de incorporações
0
Número de incorporações
55
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • É rotineiro, disponibilizarmos versões para implantação, e realizarmos implantações em diversos ambientes, mas conseguimos ter certeza que a versão implantada está correta?
  • Muitas empresas pelas quais passei, ou outras que conheço alguns desenvolvedores, executam Implantações manuais em seus ambientes , entretanto isso não é mais um processo aceitável, pois a probabilidade de ocorrer um erro, é muito grande.
    Quando um processo é executado manualmente, ocorrerão erros todas as vezes que for executado, ele não pode ser repetido com segurança, e os erros de implantação são difíceis de se mapear.
    Um processo de implantação manualmente, é tedioso, repetitivo, e exige alguém com alto grau de conhecimento, e fazer que alguém com esse conhecimento, fique executando algo tedioso e repetidamente, deixa a probabilidade de erros ainda maior.
  • Se você executa sua implantação manualmente, ela pode ter erros no processo, e acabar sendo mais trabalhosa de se fazer funcionar. Até mesmo porque, pode ter algo que pode ter algum processo que deve ser executado em determinado momento da implantação, e o operador se esquecer e só perceber isso quando forem testar o sistema, e ai, terá que se auditar oque foi esquecido, até lá, seu sistema estará rodando de “qualquer jeito” ou nem rodando.
  • Se você possui um processo automatizado, a probabilidade de erros diminui consideravelmente, pois o processo será executado exatamente como foi configurado previamente em um script de implantação, não é necessário alguém ficar disponível executando uma implantação
  • É um processo muito mais fácil e rápido de ser executado, já que todo o processo é executado automaticamente,
  • E sua equipe pode ter foco, em que é realmente necessário, focar no desenvolvimento, focar em testar, em fim, podem ter foco onde forem melhor aproveitados.
  • A Microsoft possui uma solução em automatização de implantações, conheçam o >>>>mudar
  • Release Management
  • O Release Management funciona como um orquestrador de implantações, onde você configura o seu ambiente, seja local ou na nuvem com o Microsoft Azure e também os processos que devem ser executados em sua implantação .
  • Permite que você configure os processos executados em cada servidor, em sua rede local e/ou no Microsoft Azure
  • O interessante no Release Management, é que você utiliza Scripts para executar os processos de implantação, e também a ferramenta não se restringe apenas a ambientes Windows.
    Caso você tenha um ambiente inteiramente Windows, você pode utilizar Scritps PowerShell para suas automações, já caso você utilize ambientes Hibridos, você pode utilizar o Chef para gerar seus scripts.
  • Com o PowerShell DSC, você pode fazer uma série de verificações na máquina onde será implantado, como por exemplo, se o IIS está instalado, se o Asp.Net está instalado, etc, e isso tudo será executado remotamente através do recurso remoto do PowerShell
  • Os Scripts do PowerShell, ficam armazenados junto com o Código Fonte da aplicação, podendo assim, ser versionado juntamente com a mesma, e caso você queira saber como foi executada uma implantação a 6 meses atrás, é possível, graças ao versionamento do Script.
  • Você pode automatizar o deploy em cada um dos seus ambientes
  • A automação, fica disponivel em todos os estagios da implantação, seja ele em ambiente de dev, integração, qa, produção
  • Com o RM você pode automatizar seus Workflows para cada ambiente.
  • E também lhe permite toda rastreabilidade da implantação, desde a build do TFS, até a implantação em cada ambiente
  • O RM funciona da Seguinte maneira:
    1- O TFS roda a build, e disponibiliza os drops em algum diretório
    2 – O RM pega esses drops, e executa as implantações nos ambientes, de acordo com o Workflow criado, e pode se utilizar tanto do PowerShell(ambientes 100% Windows) quanto do Chef (Ambientes Hibridos)
    3 – O Implantador pode acompanhar o processo de implantação e/ou criar Workflows e aprovações apartir da interface web, ou client na maquina.
  • Liberando versões de forma automatizada #dod14sjc

    1. 1. Liberando versões de Maneira Automatizada
    2. 2. Julio Arruda  Enterprise Deployment Manager pela 2PC;  Blog: www.julioarruda.com.br  Facebook: www.fb.me/julioarrudac  Fã-Page: www.fb.me/julioarrudablog  E-mail: julio.arruda@outlook.com
    3. 3. Você sabe se a versão foi implantada corretamente?
    4. 4. Você trabalha assim?
    5. 5. Sua implantação pode estar assim
    6. 6. Mas poderia estar assim Porque não é seguro ou confiável?
    7. 7. A Solução dos Seus Problemas.....
    8. 8. Automates deployments DEV INT QA PROD Team Foundation Server
    9. 9. Automation available to all stages DEV INT QA PROD Team Foundation Server
    10. 10. Automates workflow DEV INT QA PROD Team Foundation Server
    11. 11. DEV INT QA PROD Team Foundation Server Full traceability
    12. 12. Team Foundation Server Drop Location RM Web RM Client DEV QA RM Server
    13. 13. DEMO
    14. 14. Links  Release Management: http://www.visualstudio.com/explore/release-management-vs  Chef: https://www.getchef.com/  Julio Arruda – Blog: http://www.julioarruda.com

    ×