SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Entrega Contínua para Mobile
O que considerar na entrega para mobile
Patrícia Muniz
Recife
"Um dos ensinamentos do movimento lean de desenvolvimento
de software é a importância de otimizar o todo.
...
Somente quando você tem controle sobre o progresso de cada
mudança desde sua introdução até sua implantação em
produção é que pode começar a otimizar a qualidade e a
velocidade de sua entrega."
Entrega Contínua, Jez Humble & David Farley
Incorporar as práticas de DevOps* em projetos para mobile é
uma necessidade para sua sobrevivência, por conta da matriz
de variação e do modelo de distribuição dinâmico.
* DevOps como a filosofia que integra desenvolvimento,
qualidade e infraestrutura
características do negócio (por região, por perfil de usuário, ...)
dispositivos (fabricantes, versão de OS, resoluções, densidade, ...)
propósitos de uso (dev, testes, beta, staging, produção)
10101010101010
010101010101010
010101010101010
1010101010101010
Entrega contínua
deploy
para teste
Para cada grupo de dispositivos
Integração contínua
Código VCS
commit +
push
App
build test Unit Test
Results
App Results
App Results
App Results
testes de
integração
testes de
UI
testes de
compatibilidade
App
(UAT/Beta)
deploy para
staging
Um Pipeline Simplificado para Mobile
Implantação
contínua
App
deploy para
produção
Monitoramento
packaging e
submissão
Entrega contínua
deploy
para teste
Para cada grupo de dispositivos
Integração contínua
Código VCS
commit +
push
App
build test Unit Test
Results
App Results
App Results
App Results
testes de
integração
testes de
UI
testes de
compatibilidade
App
(UAT/Beta)
deploy para
staging
Um Pipeline (um pouco menos) Simplificado para Mobile
Implantação
contínua
App
deploy para
produção
Monitoramento
packaging e
submissão
App' +
Server'
App'' +
Server''
App''' +
Server'''
App'''' +
Server''''
App +
Server
(UAT/Beta)
App +
Server Monitoramento
características do negócio (por região, por perfil de usuário, ...)
dispositivos (fabricantes, versão de OS, resoluções, densidade, ...)
propósitos de uso (dev, testes, beta, staging, produção)
10101010101010
010101010101010
010101010101010
1010101010101010
características do negócio (por região, por perfil de usuário, ...)
dispositivos (fabricantes, versão de OS, resoluções, densidade, ...)
propósitos de uso (dev, testes, beta, staging, produção)
10101010101010
010101010101010
010101010101010
1010101010101010
"Entrega Contínua é a automatização do ciclo de
compilação, testes, empacotamento e deploy com
relatórios de cada fase."
Marco Valtas no Agile Vale 2011
ENTREGA CONTÍNUA
- Automatizar a Análise Estática e o Controle de Licenças
- Android: PMD, Lint, FindBugs
- iOS: PMD, Dry, Dtrace
- Black Duck Protex
- Regras específicas do cliente
- Cuidado: Variações de uma mesma app podem
gerar relatórios diferentes!
ENTREGA CONTÍNUA
- Automatizar a Build e o Deploy
- Scripts (ant, gradle, maven) que automatizam as variações
- Dos manifest e properties
- Dos assets e resources
- Das assinaturas
- Atenção: Gerenciar arquivos e dependências desnecessários
em variações da mesma App
ENTREGA CONTÍNUA
- Automatizar a Build e o Deploy
- Não se limita à geração dos arquivos .apk ou .aar
- E os servers?
- E as bases de dados e arquivos compartilhados na nuvem?
- E o upgrade de versões anteriores?
- Depois disso, e a recuperação a falhas?
- rollback de versão, conflito de dados
ENTREGA CONTÍNUA
- Automatizar a Build e o Deploy
- Trunk Based Development vs Feature Branch
- Feature Toggle
- Quem vai mudar o toggle no cliente?
- Seu "feature toggle" é mais feature do que toggle?
- Automatizar os Testes
- Versões do mesmo aplicativo, para propósitos/targets
diferentes, precisam de infraestruturas distintas?
- Servidores devem responder de forma diferente
para cada versão do aplicativo?
- A execução automatizada dos testes produz os relatórios
adequados?
ENTREGA CONTÍNUA
- Automatizar os Testes
- Testes Manuais
- Afinal, o que não dá pra automatizar?
- Não consigo automatizar (ainda), mas posso monitorar e
gerar relatórios?
- Se o ADB e o AAPT podem no Android, por que não eu?
- Talvez possa, mas devo?
ENTREGA CONTÍNUA
ENTREGA CONTÍNUA
- Automatizar os Testes
- Testes Automatizados
- Essencial para muitas variações de app e para sprints curtas
- Testes unitários nem sempre precisam ser testados em
dispositivos
- Os demais testes (integração, UI, compatibilidade, …) quase
sempre precisam do dispositivo
- Automação não apenas em emuladores
- Amazon Device Farm
- Google Cloud Test Lab
- Xamarin Test Cloud
- Automatizar a Entrega
- Para quem?
- Testers, beta testers, cliente (staging), usuários finais
(produção)
- Track de publicação, que pode ser alpha, beta, staged rollout
ou production
- Beta (testers selecionados) != Staged rollout (público reduzido)
ENTREGA CONTÍNUA
- Automatizar a Entrega
- Como?
- Ação do usuário
- Notificações (cloud messages)
- Auto update
- Cuidado: Feature toggles, router (verde-azul) e canary fazem
sentido na solução integrada com um servidor?
ENTREGA CONTÍNUA
- Automatizar a Entrega
- Onde?
- Nas lojas (Play Store, Amazon App Market, ...)
- Em um Repository/Dependency Manager
- Artifactory
- Bintray
ENTREGA CONTÍNUA
- Automatizar a Entrega
- Onde?
- No servidor proprietário
- Controle local de versões
- Adaptar servidor para o processo de continuous deployment
- Alguns aplicativos para celular são eles próprios gerenciadores
de outras aplicações
ENTREGA CONTÍNUA
E A IMPLANTAÇÃO CONTÍNUA?
- Packaging e Submissão também precisam ser automatizados e
cobrirem a matriz de variação
- Preferencialmente, o Monitoramento faz parte do mesmo pipeline
- A aplicação dá suporte ao monitoramento?
- Caso não, volte 20 casas
E A IMPLANTAÇÃO CONTÍNUA?
- "Entrega" pode ser apenas para o cliente, e não diretamente na loja
- Quem vai cuidar da implantação de fato?
- Regras Internas de Governança
- Relatórios
- Manuais
- Checklists
- Screenshots
- Procedimentos
Ferramentas mais Populares
- Maior valor para projetos simples. Permite automatizar todo o
processo, mas não de uma forma direta para projetos complexos
Jenkins
Go.CD
- Maior valor para projetos complexos, pois foi construído para isso
Travis CI
- Maior valor para projetos simples. Possui algumas restrições para
execução de testes automatizados
Perguntas?
pmuniz@thoughtworks.com
pmunizferreira@gmail.com

Mais conteúdo relacionado

Mais procurados

Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Marcus Carvalho
 
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasMVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasRover Marinho
 
GCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesGCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesMisael Santos
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1Tiago Vizoto
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
DevOps - Melhores práticas na plataforma microsoft
DevOps - Melhores práticas na plataforma microsoftDevOps - Melhores práticas na plataforma microsoft
DevOps - Melhores práticas na plataforma microsoftIgor Abade
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...minastestingconference
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Javaelliando dias
 
Apresentação Monografia Virtualização
Apresentação Monografia VirtualizaçãoApresentação Monografia Virtualização
Apresentação Monografia VirtualizaçãoKleber Lyra
 

Mais procurados (20)

Palestra Gerenciamento de Projetos com Scrum e MPS.Br
Palestra Gerenciamento de Projetos com Scrum e MPS.BrPalestra Gerenciamento de Projetos com Scrum e MPS.Br
Palestra Gerenciamento de Projetos com Scrum e MPS.Br
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)
 
Apresentação JAGUAR Software Público
Apresentação JAGUAR Software PúblicoApresentação JAGUAR Software Público
Apresentação JAGUAR Software Público
 
TESTE DE SOFTWARE PARA MOBILE (S40 & WP)
TESTE DE SOFTWARE PARA MOBILE (S40 & WP)TESTE DE SOFTWARE PARA MOBILE (S40 & WP)
TESTE DE SOFTWARE PARA MOBILE (S40 & WP)
 
Trabalho sic benchmark
Trabalho sic   benchmarkTrabalho sic   benchmark
Trabalho sic benchmark
 
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasMVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
 
GCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesGCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de Versões
 
Pacote swing
Pacote swingPacote swing
Pacote swing
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Apresentação controle de versão
Apresentação controle de versãoApresentação controle de versão
Apresentação controle de versão
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
DevOps - Melhores práticas na plataforma microsoft
DevOps - Melhores práticas na plataforma microsoftDevOps - Melhores práticas na plataforma microsoft
DevOps - Melhores práticas na plataforma microsoft
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 
X-Zone Road-Map 2009
X-Zone Road-Map 2009X-Zone Road-Map 2009
X-Zone Road-Map 2009
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
 
Fundamentos em Containers
Fundamentos em ContainersFundamentos em Containers
Fundamentos em Containers
 
Apresentação Monografia Virtualização
Apresentação Monografia VirtualizaçãoApresentação Monografia Virtualização
Apresentação Monografia Virtualização
 

Semelhante a Android Dev Conference 2017 - Entrega Contínua para Mobile

Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Camilla Gomes
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
Introdução à Versão 8.0 do Supervisório InduSoft Web Studio
Introdução à Versão 8.0 do Supervisório InduSoft Web StudioIntrodução à Versão 8.0 do Supervisório InduSoft Web Studio
Introdução à Versão 8.0 do Supervisório InduSoft Web StudioAVEVA
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farm
26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farm26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farm
26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farmTiago Guimarães da Silva
 
Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008Pedro Lamas
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudiMasters
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
[DevOps Summit Brasil] Procura-se: DevOps!
[DevOps Summit Brasil] Procura-se: DevOps![DevOps Summit Brasil] Procura-se: DevOps!
[DevOps Summit Brasil] Procura-se: DevOps!Camilla Gomes
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...tdc-globalcode
 
Plugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeekPlugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeekThiago Bertuzzi
 
DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?Letticia Nicoli
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisÉdipo Souza
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...fabio perrella
 

Semelhante a Android Dev Conference 2017 - Entrega Contínua para Mobile (20)

Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Introdução à Versão 8.0 do Supervisório InduSoft Web Studio
Introdução à Versão 8.0 do Supervisório InduSoft Web StudioIntrodução à Versão 8.0 do Supervisório InduSoft Web Studio
Introdução à Versão 8.0 do Supervisório InduSoft Web Studio
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Mobile tests usando AWS Device Farm
Mobile tests usando AWS Device FarmMobile tests usando AWS Device Farm
Mobile tests usando AWS Device Farm
 
26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farm
26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farm26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farm
26/10 - Meetup Dev.up!, Appium - Executando testes mobile utilizando device farm
 
Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na Cloud
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
[DevOps Summit Brasil] Procura-se: DevOps!
[DevOps Summit Brasil] Procura-se: DevOps![DevOps Summit Brasil] Procura-se: DevOps!
[DevOps Summit Brasil] Procura-se: DevOps!
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 
Plugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeekPlugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeek
 
DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Android Dev Conference 2017 - Entrega Contínua para Mobile

  • 1. Entrega Contínua para Mobile O que considerar na entrega para mobile Patrícia Muniz Recife
  • 2.
  • 3. "Um dos ensinamentos do movimento lean de desenvolvimento de software é a importância de otimizar o todo. ... Somente quando você tem controle sobre o progresso de cada mudança desde sua introdução até sua implantação em produção é que pode começar a otimizar a qualidade e a velocidade de sua entrega." Entrega Contínua, Jez Humble & David Farley
  • 4. Incorporar as práticas de DevOps* em projetos para mobile é uma necessidade para sua sobrevivência, por conta da matriz de variação e do modelo de distribuição dinâmico. * DevOps como a filosofia que integra desenvolvimento, qualidade e infraestrutura
  • 5. características do negócio (por região, por perfil de usuário, ...) dispositivos (fabricantes, versão de OS, resoluções, densidade, ...) propósitos de uso (dev, testes, beta, staging, produção) 10101010101010 010101010101010 010101010101010 1010101010101010
  • 6. Entrega contínua deploy para teste Para cada grupo de dispositivos Integração contínua Código VCS commit + push App build test Unit Test Results App Results App Results App Results testes de integração testes de UI testes de compatibilidade App (UAT/Beta) deploy para staging Um Pipeline Simplificado para Mobile Implantação contínua App deploy para produção Monitoramento packaging e submissão
  • 7. Entrega contínua deploy para teste Para cada grupo de dispositivos Integração contínua Código VCS commit + push App build test Unit Test Results App Results App Results App Results testes de integração testes de UI testes de compatibilidade App (UAT/Beta) deploy para staging Um Pipeline (um pouco menos) Simplificado para Mobile Implantação contínua App deploy para produção Monitoramento packaging e submissão App' + Server' App'' + Server'' App''' + Server''' App'''' + Server'''' App + Server (UAT/Beta) App + Server Monitoramento
  • 8. características do negócio (por região, por perfil de usuário, ...) dispositivos (fabricantes, versão de OS, resoluções, densidade, ...) propósitos de uso (dev, testes, beta, staging, produção) 10101010101010 010101010101010 010101010101010 1010101010101010
  • 9. características do negócio (por região, por perfil de usuário, ...) dispositivos (fabricantes, versão de OS, resoluções, densidade, ...) propósitos de uso (dev, testes, beta, staging, produção) 10101010101010 010101010101010 010101010101010 1010101010101010
  • 10. "Entrega Contínua é a automatização do ciclo de compilação, testes, empacotamento e deploy com relatórios de cada fase." Marco Valtas no Agile Vale 2011
  • 11. ENTREGA CONTÍNUA - Automatizar a Análise Estática e o Controle de Licenças - Android: PMD, Lint, FindBugs - iOS: PMD, Dry, Dtrace - Black Duck Protex - Regras específicas do cliente - Cuidado: Variações de uma mesma app podem gerar relatórios diferentes!
  • 12. ENTREGA CONTÍNUA - Automatizar a Build e o Deploy - Scripts (ant, gradle, maven) que automatizam as variações - Dos manifest e properties - Dos assets e resources - Das assinaturas - Atenção: Gerenciar arquivos e dependências desnecessários em variações da mesma App
  • 13. ENTREGA CONTÍNUA - Automatizar a Build e o Deploy - Não se limita à geração dos arquivos .apk ou .aar - E os servers? - E as bases de dados e arquivos compartilhados na nuvem? - E o upgrade de versões anteriores? - Depois disso, e a recuperação a falhas? - rollback de versão, conflito de dados
  • 14. ENTREGA CONTÍNUA - Automatizar a Build e o Deploy - Trunk Based Development vs Feature Branch - Feature Toggle - Quem vai mudar o toggle no cliente? - Seu "feature toggle" é mais feature do que toggle?
  • 15. - Automatizar os Testes - Versões do mesmo aplicativo, para propósitos/targets diferentes, precisam de infraestruturas distintas? - Servidores devem responder de forma diferente para cada versão do aplicativo? - A execução automatizada dos testes produz os relatórios adequados? ENTREGA CONTÍNUA
  • 16. - Automatizar os Testes - Testes Manuais - Afinal, o que não dá pra automatizar? - Não consigo automatizar (ainda), mas posso monitorar e gerar relatórios? - Se o ADB e o AAPT podem no Android, por que não eu? - Talvez possa, mas devo? ENTREGA CONTÍNUA
  • 17. ENTREGA CONTÍNUA - Automatizar os Testes - Testes Automatizados - Essencial para muitas variações de app e para sprints curtas - Testes unitários nem sempre precisam ser testados em dispositivos - Os demais testes (integração, UI, compatibilidade, …) quase sempre precisam do dispositivo - Automação não apenas em emuladores - Amazon Device Farm - Google Cloud Test Lab - Xamarin Test Cloud
  • 18. - Automatizar a Entrega - Para quem? - Testers, beta testers, cliente (staging), usuários finais (produção) - Track de publicação, que pode ser alpha, beta, staged rollout ou production - Beta (testers selecionados) != Staged rollout (público reduzido) ENTREGA CONTÍNUA
  • 19. - Automatizar a Entrega - Como? - Ação do usuário - Notificações (cloud messages) - Auto update - Cuidado: Feature toggles, router (verde-azul) e canary fazem sentido na solução integrada com um servidor? ENTREGA CONTÍNUA
  • 20. - Automatizar a Entrega - Onde? - Nas lojas (Play Store, Amazon App Market, ...) - Em um Repository/Dependency Manager - Artifactory - Bintray ENTREGA CONTÍNUA
  • 21. - Automatizar a Entrega - Onde? - No servidor proprietário - Controle local de versões - Adaptar servidor para o processo de continuous deployment - Alguns aplicativos para celular são eles próprios gerenciadores de outras aplicações ENTREGA CONTÍNUA
  • 22. E A IMPLANTAÇÃO CONTÍNUA? - Packaging e Submissão também precisam ser automatizados e cobrirem a matriz de variação - Preferencialmente, o Monitoramento faz parte do mesmo pipeline - A aplicação dá suporte ao monitoramento? - Caso não, volte 20 casas
  • 23. E A IMPLANTAÇÃO CONTÍNUA? - "Entrega" pode ser apenas para o cliente, e não diretamente na loja - Quem vai cuidar da implantação de fato? - Regras Internas de Governança - Relatórios - Manuais - Checklists - Screenshots - Procedimentos
  • 24. Ferramentas mais Populares - Maior valor para projetos simples. Permite automatizar todo o processo, mas não de uma forma direta para projetos complexos Jenkins Go.CD - Maior valor para projetos complexos, pois foi construído para isso Travis CI - Maior valor para projetos simples. Possui algumas restrições para execução de testes automatizados