continuous delivery & apis - evoluindo uma arquitetura orientada a serviços

48
Globalcode – Open4education Trilha – Microservices e APIs Marcelo Fernandes & Samanta Cicilia [email protected]/@MCarvalhoF [email protected]/@samantacicilia

Upload: samanta-cicilia

Post on 11-Aug-2015

185 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Trilha – Microservices e APIsMarcelo Fernandes & Samanta Cicilia

[email protected]/@[email protected]/@samantacicilia

Page 2: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Continuous Delivery & APIs: Evoluindo uma Arquitetura Orientada

a Serviços

Page 3: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Coordenador de Arquitetura de TI & Qualidade

Doutorando em Software Economics. NCE-UFRJMestrado em Gestão Estratégica de TI. NCE-UFRJ

Project Management Professional (PMI)Certified Scrum Product Owner (Scrum Alliance)Tibco * Certified

Contatos➔ Linkedin: marcelo (carvalho) fernandes➔ Twitter: @MCarvalhoF➔ Email: [email protected]➔ Email: [email protected]

Page 4: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

QA na InfogloboCoach e Co-fundadora RTS Treinamentos

MBA Garantia de Qualidade de Software POLI-UFRJ

Certified Tester Foundation Level (ISTQB)Certified Scrum Master (Scrum Alliance)

Sites➔ testedesoftware.com➔ rtstreinamentos.com.br➔ medium.com/@samantacicilia

Contatos➔ Linkedin: Samanta Cicilia➔ Twitter: @samantacicilia➔ Slideshare: pt.slideshare.net/samantacicilia/➔ Email: [email protected]➔ Email: [email protected]

Page 5: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Quem somos...

Page 6: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Sobre a Infoglobo...

• Focada no Impresso em processo de migração para o digital;• Empresa sem Cultura Ágil

Nasceu em TI, indo para as áreas de negócio

• Sites & Apps:

Page 7: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Principais Plataformas

Page 8: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Alguns números

PageViews: >192M/mês

Projetos: 55@2015

Funcionários: 2.200Em TI: 263

Page 9: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Estratégia de TI

Page 10: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Evolução da abordagem da Arquitetura de TI

EAI SOA APIs <2008 2011 2015> Scrum SAFe

Page 11: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Plataforma de Integração

Page 12: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Provedores & Consumidores

Page 13: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Ambientes

Sandbox

Desenvolvimento

HomologaçãoHomologação

ProduçãoProdução

Page 14: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Processo de deploy - Pré Continuous Delivery

Pacote

Page 15: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Continuous Delivery

Manifesto Ágil - 2001

Page 16: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Benefícios

● Autonomia aos times

● Reduzir erros

● Reduzir estresse

● Flexibilidade de Implantação

● Prática leva a perfeição

● Todo check-in é uma versão em

potencial

Page 17: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

8 Princípios

1. Criar um processo de confiabilidade e repetitividade de entrega de versão2. Automatize quase tudo3. Mantenha tudo sob controle de versão4. Se é difícil, faça com mais frequência e amenize o sofrimento5. A qualidade DEVE estar presente desde o início6. Pronto quer dizer versão entregue7. Todos são responsáveis pelo processo de entrega8. Melhoria Contínua

Page 18: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

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.

Page 19: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Pipeline de Implantação

Page 20: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Práticas

● Compile seus binários somente uma vez● Faça a implantação da mesma maneira em cada ambiente● Use Smoke Tests● Implante em uma cópia de Produção● Se qualquer parte do pipeline falhar, pare o processo

Page 21: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Continuous Delivery

http://www.rubiconred.com/continuous-delivery-for-oracle-soa-and-bpm/

Page 22: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Ferramentas

Page 23: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Nosso Pipeline

CommitStage

Deploy DSV

Smoke Tests

Deploy QLT

Smoke Tests

Testes Regressivos

Testes de Performance

Deploy PRD

Exportar XML

Exportar XML

Page 24: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Page 25: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Nosso Pipeline

CommitStage

Deploy DSV

Smoke Tests

Deploy QLT

Smoke Tests

Testes Regressivos

Testes de Performance

Deploy PRD

Exportar XML

Exportar XML

Page 26: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Commit Stage

● Entrada para o Pipeline de Implantação

● Feedback para os devs

● Entrada: Código - Saída: Binários e Relatórios

● Validate + build EAR

Page 27: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Nosso Pipeline

CommitStage

Deploy DSV

Smoke Tests

Deploy QLT

Smoke Tests

Testes Regressivos

Testes de Performance

Deploy PRD

Exportar XML

Exportar XML

Page 28: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Deploys

Page 29: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Deploys

Page 30: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Nosso Pipeline

CommitStage

Deploy DSV

Smoke Tests

Deploy QLT

Smoke Tests

Testes Regressivos

Testes de Performance

Deploy PRD

Exportar XML

Exportar XML

Page 31: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Testes Automatizados

● Smoke Tests

● Testes Regressivos

● Testes de Performance

Page 32: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Promover para QLT

Page 33: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Promover para QLT

Page 34: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Smoke Tests

Page 35: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Exportar XML

Page 36: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Promover para PRD

Page 37: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Nosso Pipeline

CommitStage

Deploy DSV

Smoke Tests

Deploy QLT

Smoke Tests

Testes Regressivos

Testes de Performance

Deploy PRD

Exportar XML

Exportar XML

Page 38: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Testes Regressivos

Page 39: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Nosso Pipeline

CommitStage

Deploy DSV

Smoke Tests

Deploy QLT

Smoke Tests

Testes Regressivos

Testes de Performance

Deploy PRD

Exportar XML

Exportar XML

Page 40: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Testes de Performance

Page 41: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Processo de deploy - Pré Continuous Delivery

Pacote

Page 42: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Processo de deploy - Continuous Delivery

Pacote

Page 43: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Serviços X Pipelines

● 54 serviços com 207 operações (7 anos)

● 37 pipelines de SOA implementados em (6 meses)

Page 44: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Próximos Passos

● DevOps (Docker/Vagrant/Puppet);

● Métricas em Tempo Real - Splunk;

● Devs fazendo Deploy em PRD;

Page 45: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Referências

● http://manifestoagil.com.br/● Continuous Delivery in a Complex S.O.A● Continuous Delivery at Google● The Evolution of Continuous Delivery at Scale @ Linkedin● Deploying the Netflix API● http://pt.slideshare.net/richardlennox/continuous-deliverysoa-final● http://techblog.netflix.com/2013/08/deploying-netflix-api.html● https://gradle.org/continuous-integration-at-linkedin-gradle-2013-summit/● http://www.rubiconred.com/continuous-delivery-for-oracle-soa-and-bpm/● http://www.tomakehurst.com/surviving-soa-with-continuous-delivery-and-wiremock/● https://prezi.com/ityu35i6ppft/devops-and-continuous-delivery-tibcostack/● https://docs.tibco.com/pub/designer/5.8.0_november_2012/pdf/tib_Designer_usr.pdf

Page 46: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Referências

Page 47: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Obrigado!#TheDevConf

Marcelo Fernandes & Samanta Cicilia [email protected]/@MCarvalhoF

[email protected]/@samantacicilia

Page 48: Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços

Globalcode – Open4education

Continuous Delivery & APIs: Evoluindo uma Arquitetura Orientada

a Serviços