[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas

Preview:

Citation preview

Entrega Contínua na Infoglobo:

gerando valor em 2 horas

@samantacicilia

• Focada no Impresso em processo de migração para o digital;

• Focada no Impresso em processo de migração para o digital;

• Agilidade nasceu em TI e está indo (gradualmente) para as áreas de negócio;

• Focada no Impresso em processo de migração para o digital;

• Agilidade nasceu em TI e está indo (gradualmente) para as áreas de negócio;

Principais Plataformas

Principais Plataformas

Principais Plataformas

Alguns Números

Alguns Números

PageViews: >192M/mês

Alguns Números

PageViews: >192M/mês

Projetos: 55@2015

Alguns Números

PageViews: >192M/mês

Projetos: 55@2015

Funcionários: 2.200

Em TI: 135 + 128

O mega deploy

da meia-noiteO mega deploy da meia-noite

Nossa maior prioridade é satisfazer o

cliente, através da entrega adiantada

e contínua de software de valor.

Manifesto Ágil - 2001

Pipeline de Implantação

Pipeline de Implantação

● Implementação automatizada do processo de compilar todas as partes de uma

aplicação, implantá-las em um ambiente qualquer – homologação ou produção

– testá-la e efetuar sua entrega final.

Pipeline de Implantação

● Implementação automatizada do processo de compilar todas as partes de uma

aplicação, implantá-las em um ambiente qualquer – homologação ou produção

– testá-la e efetuar sua entrega final.

Pipeline de Implantação

● Implementação automatizada do processo de compilar todas as partes de uma

aplicação, implantá-las em um ambiente qualquer – homologação ou produção

– testá-la e efetuar sua entrega final.

Ferramentas

Ferramentas

Kvalito

QATools

Nosso Pipeline

Estágio de Commit

Estágio de Commit

Estágio de Commit

● Entrada: Código

○ compilar projeto;

○ executar testes unitários;

○ executar Sonar;

○ gerar binário;

○ armazenar no repositório (binário + propriedades).

Estágio de Commit

● Entrada: Código

○ compilar projeto;

○ executar testes unitários;

○ executar Sonar;

○ gerar binário;

○ armazenar no repositório (binário + propriedades).

● Saída: Binários e Relatórios

Deploy em INTEGRAÇÃO

Deploy em INTEGRAÇÃO

Deploy em INTEGRAÇÃO

● Entrada: Versão para Deploy

○ pegar binário no repositório;

○ verificar propriedades do binário (pode fazer deploy?);

○ executar deploy em Integração;

○ atualizar propriedades do binário.

Deploy em INTEGRAÇÃO

● Entrada: Versão para Deploy

○ pegar binário no repositório;

○ verificar propriedades do binário (pode fazer deploy?);

○ executar deploy em Integração;

○ atualizar propriedades do binário.

● Saída: Servidores e propriedades do binário atualizados

Promover para STAGING

Deploy STAGING

Deploy STAGING

Deploy em STAGING

Deploy em STAGING

Deploy em STAGING

● Entrada: Versão para Deploy

○ pegar binário no repositório;

○ verificar propriedades do binário (pode fazer deploy?);

○ executar deploy em Staging;

○ atualizar propriedades do binário.

Deploy em STAGING

● Entrada: Versão para Deploy

○ pegar binário no repositório;

○ verificar propriedades do binário (pode fazer deploy?);

○ executar deploy em Staging;

○ atualizar propriedades do binário.

● Saída: Servidores e propriedades do binário atualizados

Promover para PRODUÇÃO

Promover para PRODUÇÃO

Promover para PRODUÇÃO

Promover para PRODUÇÃO

Promover para PRODUÇÃO

Promover para PRODUÇÃO

Promover para PRODUÇÃO

Análise de Log Automatizada

Análise de Log Automatizada

● Logs da Aplicação;

Análise de Log Automatizada

● Logs da Aplicação;

● Sumarização do TOP 15 erros que mais ocorreram;

Análise de Log Automatizada

● Logs da Aplicação;

● Sumarização do TOP 15 erros que mais ocorreram;

● Verificação de erros 404 e 50X;

Análise de Log Automatizada

● Logs da Aplicação;

● Sumarização do TOP 15 erros que mais ocorreram;

● Verificação de erros 404 e 50X;

● Envio de e-mail para todos os responsáveis;

Análise de Log Automatizada

● Logs da Aplicação;

● Sumarização do TOP 15 erros que mais ocorreram;

● Verificação de erros 404 e 50X;

● Envio de e-mail para todos os responsáveis;

● Tomada de decisão se o processo vai até o final (Deploy em PRODUÇÃO);

Análise de Log Automatizada

● Logs da Aplicação;

● Sumarização do TOP 15 erros que mais ocorreram;

● Verificação de erros 404 e 50X;

● Envio de e-mail para todos os responsáveis;

● Tomada de decisão se o processo vai até o final (Deploy em PRODUÇÃO);

● Muito importante para os produtos mais antigos;

Análise de Log Automatizada

● Logs da Aplicação;

● Sumarização do TOP 15 erros que mais ocorreram;

● Verificação de erros 404 e 50X;

● Envio de e-mail para todos os responsáveis;

● Tomada de decisão se o processo vai até o final (Deploy em PRODUÇÃO);

● Muito importante para os produtos mais antigos;

● Preocupação de OPS.

Análise de Log Automatizada

Testes de Performance Automatizados

Testes de Performance Automatizados● Scritps do Jmeter;

Testes de Performance Automatizados● Scritps do Jmeter;

● Cenários pré-definidos;

Testes de Performance Automatizados● Scritps do Jmeter;

● Cenários pré-definidos;

● Limite máximo aceitável de tempo.

Testes de Performance Automatizados● Scritps do Jmeter;

● Cenários pré-definidos;

● Limite máximo aceitável de tempo.

Abrir Coordenação de Mudança Automática

Abrir Coordenação de Mudança Automática

Deploy em PRODUÇÃO

Deploy em PRODUÇÃO

Deploy em PRODUÇÃO

Deploy em PRODUÇÃO

Deploy em PRODUÇÃO

● Entrada: Versão para Deploy

○ pegar binário no repositório;

○ verificar propriedades do binário (pode fazer deploy?);

○ executar deploy em Produção;

○ atualizar propriedades do binário.

Deploy em PRODUÇÃO

● Entrada: Versão para Deploy

○ pegar binário no repositório;

○ verificar propriedades do binário (pode fazer deploy?);

○ executar deploy em Produção;

○ atualizar propriedades do binário.

● Saída: Servidores e propriedades do binário atualizados

Alguns Resultados

Alguns Resultados

• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

Alguns Resultados

• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

• Deploy em qualquer horário;

Alguns Resultados

• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

• Deploy em qualquer horário;

• 90 pipelines em 1 ano;

Alguns Resultados

• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

• Deploy em qualquer horário;

• 90 pipelines em 1 ano;

Alguns Resultados

• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

• Deploy em qualquer horário;

• 90 pipelines em 1 ano;

• Devs fazendo Deploy em PRODUÇÃO (pelo Jenkins, é claro) \o/;

Alguns Resultados

• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

• Deploy em qualquer horário;

• 90 pipelines em 1 ano;

• Devs fazendo Deploy em PRODUÇÃO (pelo Jenkins, é claro) \o/;

• Redução do tempo de entrega

Alguns Resultados

• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

• Deploy em qualquer horário;

• 90 pipelines em 1 ano;

• Devs fazendo Deploy em PRODUÇÃO (pelo Jenkins, é claro) \o/;

• Redução do tempo de entrega (15 dias para 2 horas).

Ainda existem Desafios

Ainda existem Desafios

• Derrubar os mitos;

Ainda existem Desafios

• Derrubar os mitos;

• Testes Unitários e TDD;

Ainda existem Desafios

• Derrubar os mitos;

• Testes Unitários e TDD;

• DevOps;

Ainda existem Desafios

• Derrubar os mitos;

• Testes Unitários e TDD;

• DevOps;

• Mobile;

Ainda existem Desafios

• Derrubar os mitos;

• Testes Unitários e TDD;

• DevOps;

• Mobile;

• Disseminar o conhecimento sobre Entrega Contínua;

Ainda existem Desafios

• Derrubar os mitos;

• Testes Unitários e TDD;

• DevOps;

• Mobile;

• Disseminar o conhecimento sobre Entrega Contínua;

• Pipelines de alguns projetos antigos.

Ainda existem Desafios

• Derrubar os mitos;

• Testes Unitários e TDD;

• DevOps;

• Mobile;

• Disseminar o conhecimento sobre Entrega Contínua;

• Pipelines de alguns projetos antigos.

Próximos Passos

Próximos Passos

Próximos Passos• Incluir Banco de Dados no Pipeline;

Próximos Passos• Incluir Banco de Dados no Pipeline;

• Criar pipeline do legado;

Próximos Passos• Incluir Banco de Dados no Pipeline;

• Criar pipeline do legado;

• Pipeline pra mobile;

Próximos Passos• Incluir Banco de Dados no Pipeline;

• Criar pipeline do legado;

• Pipeline pra mobile;

• DevOps;

Próximos Passos• Incluir Banco de Dados no Pipeline;

• Criar pipeline do legado;

• Pipeline pra mobile;

• DevOps;

• Evoluir Dashboard de Métricas;

Próximos Passos• Incluir Banco de Dados no Pipeline;

• Criar pipeline do legado;

• Pipeline pra mobile;

• DevOps;

• Evoluir Dashboard de Métricas;

• Testes Automatizados de Segurança;

Próximos Passos• Incluir Banco de Dados no Pipeline;

• Criar pipeline do legado;

• Pipeline pra mobile;

• DevOps;

• Evoluir Dashboard de Métricas;

• Testes Automatizados de Segurança;

• Testes unitários de Javascript no Pipeline.

Referências

Referências

Contatos

➔ testedesoftware.com

➔ rtstreinamentos.com.br

➔ medium.com/@samantacicilia

➔ Linkedin: Samanta Cicilia

➔ Twitter: @samantacicilia

➔ Slideshare: pt.slideshare.net/samantacicilia/

➔ Email: samanta.souza@infoglobo.com.br

➔ Email: samycici@gmail.com