SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Arquitetura
de
Microsserviços
Raphael Almeida
Quem sou eu?
Raphael Almeida
Dev PHP desde 2006
Co-fundador do PHPRio, DojoRio,
RubyOnRio …
Community-a-holic
Sistema Monolíticos
Ecossistema de Microsserviços
Migrando o Legado
Sistema Monolíticos
Ecossistema de Microsserviços
Migrando o Legado
Sismetas Monolíticos: Benefícios
Simples
Baixa latência
Repositório e Deploy Únicos
Sismetas Monolíticos: Problemas
Muito código
Devs intimidados
Medo de mudança
Deploy gigante / complexo
Deploy falha, tudo falha
Maior tempo de testes
IDE sobrecarregada
Preso a tecnologia
“If you don’t end up regretting your early technology decisions, you probably over
engineered”
Randy Shoup (ex Google, eBay)
Sistema Monolíticos
Ecossistema de Microsserviços
Migrando o Legado
Microsserviços
Uma arquitetura orientada a serviços fracamente acoplada
com contextos limitados
Microsserviços
Fundamentada na explosão de uma aplicação grande e
monolítica em um conjunto de APIs e componentes muito
pequenos, com baixíssima capacidade funcional, visando
independência e autonomia dessas pequenas partes
Microsserviços: Princípios
Um único propósito
Interfaces simples e bem definidas
Modular e independente
Pequenos times
Autonomia
“... é aquela unidade de software que pode ser aprimorada e
substituída de forma independente”.
Fowler e Lewis sobre componentes
Microsserviços: Serviços externos
Quando utilizamos serviços
externos estamos com a
mesma mensalidade
Microsserviços: Benefícios
Acessando o mesmo front
Desenvolvimento simples
Fim inferno das dependências
Build e Deploy rápidos
fácil de escalar equipes
Liberdade para usar a melhor solução
Maior isolamento e menor risco de falha
Microsserviços: Problemas
Complexibilidade de distribuição e operação
Gestão de múltiplos DBs e Transações
Testes todos os serviços juntos
Sistema Monolíticos
Ecossistema de Microsserviços
Migrando o Legado
Migração: Opções
Comprar uma solução completa (Oracle/Java, .NET)
Escrever do ZERO. Tempo x Investimento
Refatoração (Iterativo e Incremental)
Migração: Opções
Comprar uma solução completa (Oracle/Java, .NET)
Escrever do ZERO. Tempo x Investimento
Refatoração (Iterativo e Incremental)
“The easiest way to encourage best practices is with *code*.
Make it really easy to do the right thing, and harder to do the wrong thing!”
Randy Shoup (ex Google, eBay)
Migração: Prepare a casa
Sistema de Versionamento de Código
Testes Automatizados (Unit > Integration)
Continuous Deploy (CI)
Migração: Refatoração
Procurar os piores gargalos de escalabilidade
Isole com uma interface
Substitua a implementação
Migração: Implementação
Escolha uma ferramenta que simplifique a criação e manutenção
Defina a interface
Protótipo de Implementação
Refatoração
Migração: Evite
Persistência compartilhada
Quebra o encapsulamento e gera acoplamento não mapeado
Microsserviço “Megazorde”
Muita responsabilidade e grande acúmulo de dependências
Migração: Padrões
API Gateway (Sensedia / Amazon)
Monitorar, Gerenciar, Autorizar, Controle de Tráfego
CircuitBreaker
Service Discovery And Balancing (Hystrix)
Reactive Programming
CanaryRelease
Content Router
Bounded Context
Migração: Ferramentas
Docker (Provisionamento)
MounteBank (Testes)
Swagger (Documentação)
Spring Boot, Apigility, ExpressJS …
Netflix OSS
Perguntas?
Raphael Almeida
@raph_almeida

Mais conteúdo relacionado

Mais procurados

DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaDevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaEdureka!
 
DevOps topologies
DevOps topologiesDevOps topologies
DevOps topologiesSushma
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develJose Augusto Carvalho
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começarAdriano Tavares
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker, Inc.
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
 
Microservices
MicroservicesMicroservices
MicroservicesSmartBear
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple stepsIhor Odynets
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Edureka!
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps OverviewSagar Mody
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...Edureka!
 

Mais procurados (20)

DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaDevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
DevOps topologies
DevOps topologiesDevOps topologies
DevOps topologies
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
DevOps
DevOpsDevOps
DevOps
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
 
Microservices
MicroservicesMicroservices
Microservices
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple steps
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps Overview
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 

Destaque

Prepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHPPrepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHPRaphael Almeida
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre DockerMundo Docker
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareRonney Moreira de Castro
 
Ética no serviço público
Ética no serviço públicoÉtica no serviço público
Ética no serviço públicoAnderson Leite
 
Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Rodrigo Kono
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 

Destaque (7)

Prepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHPPrepare-se para o próximo estágio da evolução PHP
Prepare-se para o próximo estágio da evolução PHP
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
Ética no serviço público
Ética no serviço públicoÉtica no serviço público
Ética no serviço público
 
Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)
 
Webinar php extreme 5.3
Webinar php extreme 5.3Webinar php extreme 5.3
Webinar php extreme 5.3
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 

Semelhante a Arquitetura de microsserviços

Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
[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
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Renato Groff
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Daniel Destro Do Carmo
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)Giovanni Bassi
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaRodrigo Marques Teixeira
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Douglas Roeder
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Desenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaDesenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaPaula Santana
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Microserviços com DevOps
Microserviços com DevOpsMicroserviços com DevOps
Microserviços com DevOpsMatheus Hunsche
 
Dockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP PernambucoDockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP Pernambucomatheuscmpm
 

Semelhante a Arquitetura de microsserviços (20)

Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Quem e dev ops
Quem e dev opsQuem e dev ops
Quem e dev ops
 
[DevOps Summit Brasil] Procura-se: DevOps!
[DevOps Summit Brasil] Procura-se: DevOps![DevOps Summit Brasil] Procura-se: DevOps!
[DevOps Summit Brasil] Procura-se: DevOps!
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Desenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaDesenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageria
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Microserviços com DevOps
Microserviços com DevOpsMicroserviços com DevOps
Microserviços com DevOps
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
Microserviços
MicroserviçosMicroserviços
Microserviços
 
Mobicents - Plataforma VoIP Open Source
Mobicents - Plataforma VoIP Open SourceMobicents - Plataforma VoIP Open Source
Mobicents - Plataforma VoIP Open Source
 
Dockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP PernambucoDockerizando a vida - 8º Meetup - PHP Pernambuco
Dockerizando a vida - 8º Meetup - PHP Pernambuco
 

Arquitetura de microsserviços