37
Continuous Delivery para Windows Azure usando Team Foundation Service André Dias ALM Ranger, ALM MVP, MCSD ALM

Continuous Delivery para Windows Azure usando Team Foundation Service

Embed Size (px)

DESCRIPTION

Palestra realizada no Azure Summit Brasil 2013, onde foram apresentadas as diferenças entre Continuous Delivery, Continuous Deployment e Continuous Integration, além de Patters e Anti-Patterns de Deployment e por fim foram realizadas algumas demonstrações de como implementar essas práticas utilizando Team Foundation Services com Azure e Hosted Build e GIT.

Citation preview

Page 1: Continuous Delivery para Windows Azure usando Team Foundation Service

Continuous Delivery para Windows Azure usando Team Foundation Service

André DiasALM Ranger, ALM MVP, MCSD ALM

Page 2: Continuous Delivery para Windows Azure usando Team Foundation Service

Agenda

Continuous Delivery com GIT e Azure

Continuous Delivery com Team Foundation Service e Azure

Conhecer alguns Patterns e Anti-Patterns de Deployment

Entender a diferença entre as práticas de Build e Deployment

Page 3: Continuous Delivery para Windows Azure usando Team Foundation Service

Continuous

Deployment

Continuous

Delivery

Entendendo a diferença

Build Build Server

Continuous

Integration

Build Deployment

PráticasFerramentas

Developer Developer Developer IT Business

Page 4: Continuous Delivery para Windows Azure usando Team Foundation Service

Entendendo a diferença

Build

Build

Ferramentas

Developer

• Compilação do Código• Transformação do código fonte

em binário• F5 do Visual Studio• Exemplos: MSBuild, NAnt, Ant

Page 5: Continuous Delivery para Windows Azure usando Team Foundation Service

Entendendo a diferença

Build Server

Build

Ferramentas

Developer

• Servidor Dedicado para Build• Compilação do Código do Time• Independência de Pessoas e

Estações de Trabalho• Melhora o Gerenc. de

Dependências• Permite Agendamento de Builds• Sistema de Relatórios• Mecanismo de Eventos

Page 6: Continuous Delivery para Windows Azure usando Team Foundation Service

Entendendo a diferença

Continuous

Integration

Build

Práticas

Developer

• Precisa de um Build Server• Disparo Automático de Build a

cada alteração de código• Foco em encontrar erros de

integração o mais cedo possível• Build Rápida e Auto Testável• Incentiva Commits Frequentes • Facilidade em obter os binários

Page 7: Continuous Delivery para Windows Azure usando Team Foundation Service

uma

PAUSApara reflexão

Page 8: Continuous Delivery para Windows Azure usando Team Foundation Service

Meu software está

Integrado, Compilado, Testado e

Sem Bugs Conhecidos

mas até entrar em produçãoseu Business Value = 0

Page 9: Continuous Delivery para Windows Azure usando Team Foundation Service

Entendendo a diferença

Continuous

Deployment

Deployment

Práticas

IT

• Um passo além da CI• Evitar estoque de código• Foco em reduzir o “Cycle Time”• Cada commit implanta uma

nova build em produção• Pipeline 100% Automatizado• Requer diversos tipos de testes

e alto percentual de cobertura

Page 10: Continuous Delivery para Windows Azure usando Team Foundation Service

outra

PAUSApara reflexão

Page 11: Continuous Delivery para Windows Azure usando Team Foundation Service

Será que é isso mesmo que eu

quero?

Page 12: Continuous Delivery para Windows Azure usando Team Foundation Service

Quantas versões do meu produto eu terei

que suportar?

Page 13: Continuous Delivery para Windows Azure usando Team Foundation Service

Como que fica o plano de Marketing e

Treinamento alinhado com Entregas Frequentes?

Page 14: Continuous Delivery para Windows Azure usando Team Foundation Service

Por outro lado, eu vou atender os Early

Adopters, Melhorar o Feedback e a

Implantação é 100% automatizada

Page 15: Continuous Delivery para Windows Azure usando Team Foundation Service

Não dá pra colocar um controle nesse tal de

Continuous Deployment e eu

decido quando vai ou não para produção?

Page 16: Continuous Delivery para Windows Azure usando Team Foundation Service

Continuous Delivery

O estado da arte

Page 17: Continuous Delivery para Windows Azure usando Team Foundation Service

Entendendo a diferença

Continuous Delivery

Deployment

Práticas

Business

• É o Continuous Deployment alinhado com a Estratégia da Empresa

• Ambiente de produção a um clique de distância

• Confia na automação e na colaboração de todos os envolvidos (Dev, Tester, DBA, SysAdmins, Usuários, Stakeholders)

Page 18: Continuous Delivery para Windows Azure usando Team Foundation Service

É isso!Quero Continuous

Delivery implantado na empresa até semana

que vem!

Page 19: Continuous Delivery para Windows Azure usando Team Foundation Service

Lembre-se

Continuous Delivery é a etapa final de uma “Cadeia

Ágil”Se a base da cadeia não

estiver bem estabelecida, CD vai mais atrapalhar do

que ajudar.

Page 20: Continuous Delivery para Windows Azure usando Team Foundation Service

CuriosidadeQuais dessas práticas

a Microsoft Utiliza?

Page 21: Continuous Delivery para Windows Azure usando Team Foundation Service

Recomendações

Page 22: Continuous Delivery para Windows Azure usando Team Foundation Service

Se dói, faça mais frequentemente

Page 23: Continuous Delivery para Windows Azure usando Team Foundation Service

Mais importante que ter o processo de deployment

automatizado é ter o processo de Rollback

automatizado

Page 24: Continuous Delivery para Windows Azure usando Team Foundation Service

Quer medir algo? Meça a entrega

“Working software is the primary measure of progress”, AgileManifesto

Page 25: Continuous Delivery para Windows Azure usando Team Foundation Service

Patterns

Page 26: Continuous Delivery para Windows Azure usando Team Foundation Service

Blue Green

Usuários Roteador

Blue Slice

Green Slice

Web Server

Blue Slice

Green Slice

App Server

Blue Slice

Green Slice

DB Server

Page 27: Continuous Delivery para Windows Azure usando Team Foundation Service

Blue Green (Mesmo DB)

Usuários Roteador

Blue Slice

Green Slice

Web Server

Blue Slice

Green Slice

App Server

DB

DB Server

Page 28: Continuous Delivery para Windows Azure usando Team Foundation Service

AntiPatterns

Page 29: Continuous Delivery para Windows Azure usando Team Foundation Service

Implantar Software

Manualmente

Anti Patterns

Page 30: Continuous Delivery para Windows Azure usando Team Foundation Service

Mais uma

PAUSApara reflexão

Page 31: Continuous Delivery para Windows Azure usando Team Foundation Service

Todo programador quer aprender Design Patterns, TDD, BDD,

Arquitetura Emergente, Agilidade, etc.

Mas são raros os programadores que querem aprender técnicas de automação de build/deployment.

Page 32: Continuous Delivery para Windows Azure usando Team Foundation Service

Ambientes Diferentes para

Desenvolvimento, Homologação e

Produção

Anti Patterns

Page 33: Continuous Delivery para Windows Azure usando Team Foundation Service

Gerenciamento de Configuração Manual

Anti Patterns

Page 34: Continuous Delivery para Windows Azure usando Team Foundation Service

Chega de teoria! Vamos ver as demos desse Continuous Delivery com Blue Green que implanta

sozinho e me deixa virar a chave quando eu quiser.

Ufa!!

Page 35: Continuous Delivery para Windows Azure usando Team Foundation Service

DemoTeam Foundation Service +Hosted Build +Azure

Page 36: Continuous Delivery para Windows Azure usando Team Foundation Service

DemoGIT + Azure

Page 37: Continuous Delivery para Windows Azure usando Team Foundation Service

Contato – Q&A

André DiasCQO – Chief Quality OfficerBR Soluções [email protected]

@AndreDiasBRhttp://blog.andredias.net/