tdc 2015 - além do pen-drive: empacotando seu software para distribuição e implantação

21
Além do pen-drive: Empacotando seu software para distribuição e implantação IGOR ABADE V. LEITE ( @IGORABADE ) MICROSOFT MVP, VISUAL STUDIO ALM LAMBDA3 (WWW.LAMBDA3.COM.BR)

Upload: igor-abade

Post on 11-Aug-2015

186 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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)

Page 2: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Desde 2006• Visual Studio Team System• Visual Studio ALM

Sobre mim

@igorabadewww.tshooter.com.br

Desde 2010• Consultoria• Desenvolvimento• TreinamentoDemocracia Organizacional

Page 3: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Code Complete!Fim da codificaçãoSoftware pronto e testado

Hora de entregar ao usuário finalMas como entregar os bits?

Page 4: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Como entregar os bits?

Como eu vejoComo realmente é

Page 5: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Como entregar os bits?

Page 6: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Demo

Page 7: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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

Page 8: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

ClickOnce• Criado para “Smart

Clients”• Distribuição online• Auto Update• Apenas .NET• Suporte limitado a CI

Legal, mas... Não.

Page 9: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantaçã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

Page 10: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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

Page 11: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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?

Page 12: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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

Page 13: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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

Page 14: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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

Page 15: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Configuração de Infraestrutura

Page 16: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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

Page 17: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

O que é DSC?

Page 18: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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...

Page 19: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

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

Page 20: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Implantações Agent-basedImplantações Agentless (PowerShell DSC)

TFS Drop Location

RM DesktopRM Web

QA

DEV

RM Server

Page 21: TDC 2015 - Além do pen-drive: empacotando seu software para distribuição e implantação

Q&A

tshooter.com.br

@igorabade