SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Arquitetura de Micro
Serviços
Fernando Ike
Fernando Ike
// fernando.ike@gmail.com
// linkedin.com/in/fernandoike
// twitter.com/fernandoike
// www.10deploys.com
// https://events.docker.com/sao-paulo/
Conway’s law
“Organizações que desenvolvem sistemas tendem a produzir sistemas que são
cópias da comunicação das mesmas.”
Arquitetura Monolítica
“É um único programa que faz praticamente tudo, mostra a interface do usuário,
acessa os dados, processa as compras dos clientes, imprime notas fiscais, lança
mísseis e qualquer outra coisa que a aplicação precise fazer.”
Rod Stephens - Beginning Software Engineering
Benefícios de um monolito
● Facilidade para desenvolver
○ Alcança rapidamente o protótipo ou produto final
● Fácil de atualizar versão
○ basta atualizar o diretório específico da aplicação e reiniciar o serviço
● Fácil de escalar
○ basta subir novas instâncias com o mesmo artefato atrás de balanceador de carga
● Padronização
○ Uniformidade da stack/linguagem de programação no desenvolvimento
Mais comum usar o Monolito
● Uma equipe precisa desenvolver rapidamente uma aplicação
● Os novos membros da equipe devem-se tornar rapidamente produtivos
● A aplicação deve ser fácil de entender e modificar
● Testar as tecnologias emergentes (Frameworks, linguagem de programação,
etc. )
Desvantagens do Monolito
● Quando com uma base de código muito grande são difíceis de manter
● Intimida pessoas que entram na equipe a desenvolver rapidamente
● O medo em mexer no código diminui a velocidade de entrega e também a
qualidade do código
● Continuous Deployment, escalabilidade e confiabilidade tornam-se cada vez
mais complexas e demoradas
Influências
● DevOps
● Cloud
● Continuous Delivery
● Immutable Infrastructure
● Domain-Driven Design
E o que é arquitetura de Micro Serviços?
Uma arquitetura orientada a serviço compostas de elementos levemente
acoplados que possuem contextos delimitados
Adrian Crockcroft
E o que é arquitetura de Micro Serviços?
Micro Serviços são serviços pequenos e autônomos que trabalham em conjunto
Sam Newman
E o que é arquitetura de Micro Serviços?
“É uma forma de desenvolver uma aplicação como uma suíte de pequenos
serviços, cada qual rodando em seu próprio processo (...). Esses serviços são
construídos ao redor de capacidades de negócio e são implantados
independentemente com processos automatizados. (...) Podem ser escritos em
diferentes linguagens e usar tecnologias diferentes de armazenamento de dados”
James Lewis e Martin Fowler
Vantagens
● Arquitetura por serviço mais simples
● “Padronização da comunicação (HTTP Rest, Message Broker)
● Serviços “independentes”
● Tende ser mais fácil aplicar Continuous Delivery
Vantagens
● Aplicação de testes unitários e sistêmicos mais facilmente
● Liberdade de escolher a tecnologia
● Times autocontidos
● Diminuição de potenciais pontos de falhas
Desvantagens
● Exige uma boa maturidade em automação, rastreamento de bugs e
monitoramento
● Aumento da coordenação e comunicação entre equipes para evolução do que
existe ou novos serviços
● Torna mais difícil testes de integração
Desvantagens
● Exige uma boa maturidade em automação, rastreamento de bugs e
monitoramento
● Aumento da coordenação e comunicação entre equipes para evolução do que
existe ou novos serviços
● Torna mais difícil testes de integração
● Mais difícil contratação de pessoas. Mais habilidade são requeridas
Premissas
● Centralização dos logs
● “Instâncias” (VMs e containers) stateless
● Distributed Tracing
● Circuit Breaking
● Health Check
Premissas
● Monitoramento “das regras de negócio”
● Use um serviço de “mensageria” para comunicação entre os Micro Serviços
● Cada Micro Serviço tem sua própria instância de banco de dados
● Múltiplas versões da aplicação rodando ao mesmo tempo
● Uso de um gerenciador de segredos “Secrets”
Orquestrado Coreografado
As Equipes
● Organização das equipes capazes de desenvolver um Micro Serviço/Sistema
de forma autônoma
● Desenvolvimento baseado no Trunk/Master
● Autonomia
● Independência
E o legado?
Quando não usar
● Aplicações CRUD simples
● Quando a complexidade e custo de Micro serviços > Monolito
Obrigado
Fernando Ike - fike@nyalix.com

Más contenido relacionado

La actualidad más candente

TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosThiago Pereira
 
O Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareO Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareEmmanuel Neri
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
Arquitetura de microsserviços
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviçosRaphael Almeida
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Renato Groff
 
Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?Paula Santana
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
 
Power, patterns and pains of microservices
Power, patterns and pains of microservicesPower, patterns and pains of microservices
Power, patterns and pains of microservicesMarcos Barbero
 
Microservices arquitetura - parte1
Microservices arquitetura - parte1Microservices arquitetura - parte1
Microservices arquitetura - parte1Agni Campos
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5Waldyr Felix
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Glauco Vinicius Argentino de Oliveira
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETEduardo Pires
 
Do monolito ao micro serviço
Do monolito ao micro serviçoDo monolito ao micro serviço
Do monolito ao micro serviçoElton Minetto
 

La actualidad más candente (20)

TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
 
O Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareO Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de software
 
Introdução à Microservices
Introdução à MicroservicesIntrodução à Microservices
Introdução à Microservices
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Arquitetura de microsserviços
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviços
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
 
Micro serviços ppt
Micro serviços pptMicro serviços ppt
Micro serviços ppt
 
Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
 
Integração e APIs com Mulesoft
Integração e APIs com MulesoftIntegração e APIs com Mulesoft
Integração e APIs com Mulesoft
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Power, patterns and pains of microservices
Power, patterns and pains of microservicesPower, patterns and pains of microservices
Power, patterns and pains of microservices
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
Microservices arquitetura - parte1
Microservices arquitetura - parte1Microservices arquitetura - parte1
Microservices arquitetura - parte1
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
 
Microservices
MicroservicesMicroservices
Microservices
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NET
 
Do monolito ao micro serviço
Do monolito ao micro serviçoDo monolito ao micro serviço
Do monolito ao micro serviço
 
Microframeworksphp
MicroframeworksphpMicroframeworksphp
Microframeworksphp
 

Similar a Arquitetura Micro Serviços

Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixNatanael Fonseca
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesRodrigo Cândido da Silva
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
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
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Introdução a Service Mesh com Istio
Introdução a Service Mesh com IstioIntrodução a Service Mesh com Istio
Introdução a Service Mesh com IstioJonh Wendell
 
Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingDaniel Checchia
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoPatrick Monteiro
 
Arquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SP
Arquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SPArquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SP
Arquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SPmelidevelopers
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções Edgar Silva
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 

Similar a Arquitetura Micro Serviços (20)

Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura Microservices
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Architecture performance using micro services
Architecture performance using micro servicesArchitecture performance using micro services
Architecture performance using micro services
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Fundamentos em Containers
Fundamentos em ContainersFundamentos em Containers
Fundamentos em Containers
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Microservices
MicroservicesMicroservices
Microservices
 
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
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Introdução a Service Mesh com Istio
Introdução a Service Mesh com IstioIntrodução a Service Mesh com Istio
Introdução a Service Mesh com Istio
 
Microserviços
MicroserviçosMicroserviços
Microserviços
 
Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud Computing
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenho
 
Arquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SP
Arquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SPArquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SP
Arquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SP
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 

Más de Fernando Ike

(Quase) 10 anos de DevOps, e agora?
(Quase) 10 anos de DevOps, e agora? (Quase) 10 anos de DevOps, e agora?
(Quase) 10 anos de DevOps, e agora? Fernando Ike
 
Containers and Databases
Containers and DatabasesContainers and Databases
Containers and DatabasesFernando Ike
 
Infraestrutura Imutável - Agile Trends
Infraestrutura Imutável - Agile TrendsInfraestrutura Imutável - Agile Trends
Infraestrutura Imutável - Agile TrendsFernando Ike
 
Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemFernando Ike
 
DevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus PartyDevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus PartyFernando Ike
 
Blameless: A culpa não é sua
Blameless: A culpa não é suaBlameless: A culpa não é sua
Blameless: A culpa não é suaFernando Ike
 
DevOps: A revolução ruidosa da TI
DevOps: A revolução ruidosa da TIDevOps: A revolução ruidosa da TI
DevOps: A revolução ruidosa da TIFernando Ike
 
Docker Swarm Cluster
Docker Swarm ClusterDocker Swarm Cluster
Docker Swarm ClusterFernando Ike
 
DevOps - Por onde começar
DevOps - Por onde começarDevOps - Por onde começar
DevOps - Por onde começarFernando Ike
 
DevOps Anti-Patterns
DevOps Anti-PatternsDevOps Anti-Patterns
DevOps Anti-PatternsFernando Ike
 
A lista do PostgerSQL Brasil caiu?
A lista do PostgerSQL Brasil caiu? A lista do PostgerSQL Brasil caiu?
A lista do PostgerSQL Brasil caiu? Fernando Ike
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucaoFernando Ike
 
Akamai Cloud Security
Akamai Cloud SecurityAkamai Cloud Security
Akamai Cloud SecurityFernando Ike
 
Management 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeManagement 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeFernando Ike
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
Docker e postgresql
Docker e postgresqlDocker e postgresql
Docker e postgresqlFernando Ike
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneosFernando Ike
 
Banco caiu! E a gora?
Banco caiu! E a gora?Banco caiu! E a gora?
Banco caiu! E a gora?Fernando Ike
 
Researching postgresql
Researching postgresqlResearching postgresql
Researching postgresqlFernando Ike
 

Más de Fernando Ike (20)

(Quase) 10 anos de DevOps, e agora?
(Quase) 10 anos de DevOps, e agora? (Quase) 10 anos de DevOps, e agora?
(Quase) 10 anos de DevOps, e agora?
 
Containers and Databases
Containers and DatabasesContainers and Databases
Containers and Databases
 
Infraestrutura Imutável - Agile Trends
Infraestrutura Imutável - Agile TrendsInfraestrutura Imutável - Agile Trends
Infraestrutura Imutável - Agile Trends
 
Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvem
 
DevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus PartyDevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus Party
 
Blameless: A culpa não é sua
Blameless: A culpa não é suaBlameless: A culpa não é sua
Blameless: A culpa não é sua
 
DevOps: A revolução ruidosa da TI
DevOps: A revolução ruidosa da TIDevOps: A revolução ruidosa da TI
DevOps: A revolução ruidosa da TI
 
Docker Swarm Cluster
Docker Swarm ClusterDocker Swarm Cluster
Docker Swarm Cluster
 
DevOps - Por onde começar
DevOps - Por onde começarDevOps - Por onde começar
DevOps - Por onde começar
 
DevOps Anti-Patterns
DevOps Anti-PatternsDevOps Anti-Patterns
DevOps Anti-Patterns
 
A lista do PostgerSQL Brasil caiu?
A lista do PostgerSQL Brasil caiu? A lista do PostgerSQL Brasil caiu?
A lista do PostgerSQL Brasil caiu?
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Akamai Cloud Security
Akamai Cloud SecurityAkamai Cloud Security
Akamai Cloud Security
 
Management 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeManagement 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidade
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Devops
DevopsDevops
Devops
 
Docker e postgresql
Docker e postgresqlDocker e postgresql
Docker e postgresql
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Banco caiu! E a gora?
Banco caiu! E a gora?Banco caiu! E a gora?
Banco caiu! E a gora?
 
Researching postgresql
Researching postgresqlResearching postgresql
Researching postgresql
 

Arquitetura Micro Serviços

  • 2. Fernando Ike // fernando.ike@gmail.com // linkedin.com/in/fernandoike // twitter.com/fernandoike // www.10deploys.com // https://events.docker.com/sao-paulo/
  • 3. Conway’s law “Organizações que desenvolvem sistemas tendem a produzir sistemas que são cópias da comunicação das mesmas.”
  • 4.
  • 5.
  • 6. Arquitetura Monolítica “É um único programa que faz praticamente tudo, mostra a interface do usuário, acessa os dados, processa as compras dos clientes, imprime notas fiscais, lança mísseis e qualquer outra coisa que a aplicação precise fazer.” Rod Stephens - Beginning Software Engineering
  • 7.
  • 8. Benefícios de um monolito ● Facilidade para desenvolver ○ Alcança rapidamente o protótipo ou produto final ● Fácil de atualizar versão ○ basta atualizar o diretório específico da aplicação e reiniciar o serviço ● Fácil de escalar ○ basta subir novas instâncias com o mesmo artefato atrás de balanceador de carga ● Padronização ○ Uniformidade da stack/linguagem de programação no desenvolvimento
  • 9. Mais comum usar o Monolito ● Uma equipe precisa desenvolver rapidamente uma aplicação ● Os novos membros da equipe devem-se tornar rapidamente produtivos ● A aplicação deve ser fácil de entender e modificar ● Testar as tecnologias emergentes (Frameworks, linguagem de programação, etc. )
  • 10. Desvantagens do Monolito ● Quando com uma base de código muito grande são difíceis de manter ● Intimida pessoas que entram na equipe a desenvolver rapidamente ● O medo em mexer no código diminui a velocidade de entrega e também a qualidade do código ● Continuous Deployment, escalabilidade e confiabilidade tornam-se cada vez mais complexas e demoradas
  • 11.
  • 12. Influências ● DevOps ● Cloud ● Continuous Delivery ● Immutable Infrastructure ● Domain-Driven Design
  • 13. E o que é arquitetura de Micro Serviços? Uma arquitetura orientada a serviço compostas de elementos levemente acoplados que possuem contextos delimitados Adrian Crockcroft
  • 14. E o que é arquitetura de Micro Serviços? Micro Serviços são serviços pequenos e autônomos que trabalham em conjunto Sam Newman
  • 15. E o que é arquitetura de Micro Serviços? “É uma forma de desenvolver uma aplicação como uma suíte de pequenos serviços, cada qual rodando em seu próprio processo (...). Esses serviços são construídos ao redor de capacidades de negócio e são implantados independentemente com processos automatizados. (...) Podem ser escritos em diferentes linguagens e usar tecnologias diferentes de armazenamento de dados” James Lewis e Martin Fowler
  • 16.
  • 17. Vantagens ● Arquitetura por serviço mais simples ● “Padronização da comunicação (HTTP Rest, Message Broker) ● Serviços “independentes” ● Tende ser mais fácil aplicar Continuous Delivery
  • 18. Vantagens ● Aplicação de testes unitários e sistêmicos mais facilmente ● Liberdade de escolher a tecnologia ● Times autocontidos ● Diminuição de potenciais pontos de falhas
  • 19. Desvantagens ● Exige uma boa maturidade em automação, rastreamento de bugs e monitoramento ● Aumento da coordenação e comunicação entre equipes para evolução do que existe ou novos serviços ● Torna mais difícil testes de integração
  • 20. Desvantagens ● Exige uma boa maturidade em automação, rastreamento de bugs e monitoramento ● Aumento da coordenação e comunicação entre equipes para evolução do que existe ou novos serviços ● Torna mais difícil testes de integração ● Mais difícil contratação de pessoas. Mais habilidade são requeridas
  • 21.
  • 22. Premissas ● Centralização dos logs ● “Instâncias” (VMs e containers) stateless ● Distributed Tracing ● Circuit Breaking ● Health Check
  • 23. Premissas ● Monitoramento “das regras de negócio” ● Use um serviço de “mensageria” para comunicação entre os Micro Serviços ● Cada Micro Serviço tem sua própria instância de banco de dados ● Múltiplas versões da aplicação rodando ao mesmo tempo ● Uso de um gerenciador de segredos “Secrets”
  • 25.
  • 26. As Equipes ● Organização das equipes capazes de desenvolver um Micro Serviço/Sistema de forma autônoma ● Desenvolvimento baseado no Trunk/Master ● Autonomia ● Independência
  • 28. Quando não usar ● Aplicações CRUD simples ● Quando a complexidade e custo de Micro serviços > Monolito
  • 29. Obrigado Fernando Ike - fike@nyalix.com