Liberando versões de 
Maneira Automatizada
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
Você sabe se a versão foi implantada 
corretamente?
Você trabalha assim?
Sua implantação pode estar assim
Mas poderia estar assim 
Porque não é seguro ou confiável?
A Solução dos Seus Problemas.....
Automates deployments 
DEV INT QA PROD 
Team 
Foundation 
Server
Automation available to all stages 
DEV INT QA PROD 
Team 
Foundation 
Server
Automates workflow 
DEV INT QA PROD 
Team 
Foundation 
Server
DEV INT QA PROD 
Team 
Foundation 
Server 
Full traceability
Team Foundation 
Server Drop Location 
RM Web RM Client 
DEV 
QA 
RM Server
DEMO
Links 
 Release Management: 
http://www.visualstudio.com/explore/release-management-vs 
 Chef: https://www.getchef.com/ 
 Julio Arruda – Blog: http://www.julioarruda.com

Liberando versões de forma automatizada #dod14sjc

Notas do Editor

  • #4 É 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?
  • #5 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.
  • #6 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.
  • #7 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
  • #8 É um processo muito mais fácil e rápido de ser executado, já que todo o processo é executado automaticamente,
  • #9 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.
  • #10 A Microsoft possui uma solução em automatização de implantações, conheçam o >>>>mudar
  • #11 Release Management
  • #12 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 .
  • #13 Permite que você configure os processos executados em cada servidor, em sua rede local e/ou no Microsoft Azure
  • #14 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.
  • #15 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
  • #16 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.
  • #17 Você pode automatizar o deploy em cada um dos seus ambientes
  • #18 A automação, fica disponivel em todos os estagios da implantação, seja ele em ambiente de dev, integração, qa, produção
  • #19 Com o RM você pode automatizar seus Workflows para cada ambiente.
  • #20 E também lhe permite toda rastreabilidade da implantação, desde a build do TFS, até a implantação em cada ambiente
  • #21 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.