tdc 2015 - além do pen-drive: empacotando seu software para distribuição e implantação
TRANSCRIPT
Além do pen-drive:
Empacotando seu software para distribuição e implantaçãoIGOR ABADE V. LEITE (@IGORABADE)
MICROSOFT MVP, VISUAL STUDIO ALMLAMBDA3 (WWW.LAMBDA3.COM.BR)
Desde 2006• Visual Studio Team System• Visual Studio ALM
Sobre mim
@igorabadewww.tshooter.com.br
Desde 2010• Consultoria• Desenvolvimento• TreinamentoDemocracia Organizacional
Code Complete!Fim da codificaçãoSoftware pronto e testado
Hora de entregar ao usuário finalMas como entregar os bits?
Como entregar os bits?
Como eu vejoComo realmente é
Como entregar os bits?
Demo
Windows Installer• Geração declarativa
(data-driven) de instaladores
• Maduro (introduzido com Office 2000)
• Suporta cenários avançados de instalação em Windows• Upgrade/downgrade• Patching, Advertising,
Repair• Modularização (MSM)• Instala qualquer coisa que
rode sobre Windows
Visual Studio Installer• Simples mas limitado• Suporta cenários mais
comuns• Incompatível com CIWindows Installer XML (Wix)• Mais usado; complexo• Todos os recursos do
MSI• Compatível com CI
ClickOnce• Criado para “Smart
Clients”• Distribuição online• Auto Update• Apenas .NET• Suporte limitado a CI
Legal, mas... Não.
NuGet• Gestão de “pacotes de
componentes”• Similar a Ruby Gems e
Maven• Open-source• Descreve formato de
pacote e protocolo• Elimina dependency hell
www.nuget.org
Chocolatey• Gestão de “pacotes de
sistemas"• Similar ao apt-get no
Linux• Utiliza formato de
pacote e protocolo no NuGet
• Baseado em PowerShell
www.chocolatey.org
Além do desktopE deploy na web?Sites, serviços, APIsConteúdo estático e dinâmico
Mesmas necessidades, desafios diferentes.Posso ate usar MSI, mas...
Será que é uma boa ideia?
Web Deploy“Windows Installer para IIS”• Gera um única arquivo ZIP
(similar ao WAR no Java EE)• Pode conter também bancos
de dados, assemblies GAC, chaves Registry, metadados IIS e mais
• Usado também para backup e versionamento
Crie pacotes com• Linha de comando• APIs .NET• Visual Studio• IIS Manager
Web Deploy faz parte do IIS• Componente opcional• Instalar com Web
Platform Installer• Client-side• Web Deployment Tool• Linha de comando
• Server-side• Web Deploy• Serviço IIS
Web Deploy no IIS• Remote Agent Service
• Depende do Web Management Service
• Management Service Delegation
• IIS Deployment Handler
• UI de administração• Importar/exportar• Permissões
Configuração de Infraestrutura
PowerShell DSC
AssumedState
Começa com a descrição de umambiente-alvo
Executa uma sériede ações
DesiredState
Termina no estadodesejado (com sorte!)
Envia uma descrição doestado desejado
DSC atinge o estado desejadoGet.Test.Set
DSC Resources
TFS
Config as Code
Galeriade
Recursos
Configuração de Infraestrutura
O que é DSC?
Defina e Planeje
Desenvolva
Meça e Aprenda
Implante e Opere
MonitoreImplemente
Product backlog
OPS backlog
Software em produção
Requisitos
Perda de focoQualidade é uma fasePassagem de bastão entre desenv e testesIntegração de times multiplataforma
Expectativa dos usuários não atendidas
Requisitos de produção não atendidos/estabelecidos
Dificuldade para identificar causas raiz em incidentes de produção
Ferramentas e processos distintos
Usuários/Stakeholders
Operações
Desenv & Teste
Feedback não gera ação para desenvolvimento
Requisitos não compreendidosPrioridades conflitantes
DevOps, Continuous Delivery, Release Management...
Implantação ContínuaProcesso de implantação unificado para todos os ambientes.Implantações em ambientes específicos a partir de builds automatizados.
Visibilidade do pipelineHistórico de liberações de uma aplicação num só lugar.Monitorar o progresso de cada liberação.
Liberações ConsistentesAprovações para cada etapa da liberação.Fluxo de trabalho de liberação para cada uma de suas aplicações.PowerShell DSC: Infrastructure as Code
Release Management
Ative a implantação contínua
Identifique problemas e padrõesem suas liberações
Verifique o statusde suas liberações
Controle granular sobre todo o processo de liberação
Totalmente integrado ao build automatizado do TFS
Use ações pré-definidasou crie as suas
Defina, por ambiente, o workflow de liberação e as atividades
Dispare ações baseadasnas aprovações
Maneira simples de solicitar e responder a aprovações
Implantações Agent-basedImplantações Agentless (PowerShell DSC)
TFS Drop Location
RM DesktopRM Web
QA
DEV
RM Server
Q&A
tshooter.com.br
@igorabade