Microservices - Arquitetura, Ecossistema e Desafios

Ryan Padilha
Ryan PadilhaSolution Architect | Software Engineer
Copyright 2015 Google Inc
Ryan Padilha (ryan.padilha@gmail.com)
Arquitetura, Ecossistema e Desafios
Apresentação técnica arquitetura orientada a serviços
TechTalk
Microservices
Copyright 2015 Google Inc
Simply in love with technology.
JavaEE expert, SOA specialist and technical writer.
Experience of 13+ years in solution design and development software.
Working on Software Architecture, DevOps Culture and Cloud Computing.
http://ryanpadilha.com.br
http://br.linkedin.com/in/ryanpadilha
Ryan Padilha
Copyright 2015 Google Inc
Agenda
Introdução
Estilo Arquitetural
1
2
Ecossistema e Desafios3
• Descritivo
• Definição de estilo arquitetural baseado em computação distribuída.
• Os desafios da escalabilidade e alocação de recursos em regras de negócios.
• A cultura de DevOps com automatização por infra-estrutura como código.
Linhas de Pesquisa4
Copyright 2015 Google Inc
Introdução
• Webservices - TCC na Graduação de SI, ano de 2008.
• Arquitetura de Sistemas em XML - Proposta de IC na Graduação, ano de 2008.
Copyright 2015 Google Inc
Introdução
Copyright 2015 Google Inc
Introdução
• Princípios de serviços em SOA:
1. São reutilizáveis
2. Compartilham um contrato formal
3. Possuem um baixo acoplamento
4. Abstraem a lógica
5. São capazes de se compor
6. São autônomos
7. Evitam alocação de recursos por longo tempo
8. São capazes de serem descobertos
• “APIs are the missing link for SOA success” - WSO2
Copyright 2015 Google Inc
Estilo Arquitetural
• Afinal o que define o termo Microservices ‘14 ?
• É um estilo arquitetural
• Conjunto de pequenos serviços (componentes)
• Execução em processo individual
• Mecanismo leve de comunicação através de API de recursos HTTP
• Desenvolvimento baseado em capacidades de negócios
• Deploy independente automatizado
• Gerenciamento centralizado mínimo
• Projetado para ser resiliente e design evolutivo
• Tecnologias heterogêneas e armazenamento poliglota
• https://martinfowler.com/articles/microservices.html
Copyright 2015 Google Inc
Otimismo ?
Copyright 2015 Google Inc
Estilo Arquitetural
• Pré-requisitos
• Rápido provisionamento: ambientes em cloud computing
• Monitoramento básico: detecção rápida de problemas graves
• Deployment instantâneo: forte pipeline de implantação com profile
• Implante o primeiro, mantenha-o saudável e aprenda com ele!
• DevOps - Mudança organizacional, a operação deve fazer parte do código!
Copyright 2015 Google Inc
Estilo Arquitetural
• Pros
• Estrutura modular com fronteiras bem definidas
• Serviços autônomos menores com deploys contínuos
• Ecossistema de tecnologias heterogêneas
• Cons
• Concepção de sistemas distribuídos são mais complexos
• Gerenciamento de consistência difícil
• Redistribuição regular de serviços em ambientes distribuídos
Copyright 2015 Google Inc
Estilo Arquitetural
Copyright 2015 Google Inc
Estilo Arquitetural
• Bounded context modules
• Database per Service
• API Gateway
• Circuit break
• Access Token
• Health check API
• Application Metrics
• Message Broker (RPI)
• http://microservices.io/patterns/microservices.html
Copyright 2015 Google Inc
Ecossistema e Desafios
• Comece com o monolítico e defina bem as fronteiras dos módulos
• Monitoramento em tempo real, verificando elementos da arquitetura
• Latência em chamada a API remotas
• Perfeita combinação entre mecanismo síncrono e assíncrono
• Entrega contínua com provisionamento e implantação automatizado
• Modelo de maturidade em equipes de produtos
• Times orientados pelo conceito “you build, you run it”
• Aprenda a manter o ecossistema no ar e acelere
• Consequências graves para a operação no ecossistema
• O mecanismo de autenticação e autorização à recursos levado a sério
Copyright 2015 Google Inc
Ecossistema e Desafios
• https://martinfowler.com/bliki/MonolithFirst.html - Strangler Pattern
Copyright 2015 Google Inc
Ecossistema e Desafios
Copyright 2015 Google Inc
Ecossistema e Desafios
Copyright 2015 Google Inc
Linhas de Pesquisa - Futuro :D
Referência: https://xebialabs.com/periodic-table-of-devops-tools/
Copyright 2015 Google Inc
Meu muito obrigado!
“Quando você descobre algo,
você se sente como se estivesse
apaixonado”. Wozniak
Copyright 2015 Google Inc
Referências
• https://martinfowler.com/articles/microservices.html
• http://microservices.io/index.html
• Building Microservices, Sam Newman
• Microservices for Java Developers, Christian Posta.
• Migrating to Microservices Databases, Edson Yanaga
• Reactive Microservices Architecture, Jonas Bonér
• Microservices from Theory to Practice, IBM Redbooks
• InfoQ eMag: Microservices, Issue 16
• Architectural Styles and the Design of Network-based Software
Architectures, Roy Fielding
1 de 19

Recomendados

Python em Ambientes Distribuídos - Arquitetura Moderna por
Python em Ambientes Distribuídos - Arquitetura ModernaPython em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura ModernaRyan Padilha
354 visualizações16 slides
Percepções de uma viagem em dois mundos: Java e Python por
Percepções de uma viagem em dois mundos:  Java e PythonPercepções de uma viagem em dois mundos:  Java e Python
Percepções de uma viagem em dois mundos: Java e PythonRyan Padilha
356 visualizações19 slides
Arquitetura monolítica à orientação a serviços por
Arquitetura monolítica à orientação a serviçosArquitetura monolítica à orientação a serviços
Arquitetura monolítica à orientação a serviçosRyan Padilha
359 visualizações16 slides
Explicando DevOps por
Explicando DevOpsExplicando DevOps
Explicando DevOpss4nx
1.1K visualizações81 slides
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS por
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSProvisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSIgor Abade
302 visualizações13 slides
Latinoware - Quarkus io cloud native apps por
Latinoware - Quarkus io cloud native appsLatinoware - Quarkus io cloud native apps
Latinoware - Quarkus io cloud native appsRaul Leite
82 visualizações26 slides

Mais conteúdo relacionado

Mais procurados

SharePoint Framework - Uma plataforma aberta e conectada por
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaLambda3
112 visualizações15 slides
Aplicação da arquitetura de micro serviços em softwares corporativos por
Aplicação da arquitetura de micro serviços em softwares corporativosAplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativosEmmanuel Neri
846 visualizações16 slides
Powerlogic ISV Partner por
Powerlogic ISV PartnerPowerlogic ISV Partner
Powerlogic ISV PartnerPowerlogic Consultoria e Sistemas
360 visualizações9 slides
IaaS, PaaS e SaaS para Developers por
IaaS, PaaS e SaaS para DevelopersIaaS, PaaS e SaaS para Developers
IaaS, PaaS e SaaS para DevelopersRenato Groff
1K visualizações27 slides
Como garantir a qualidade de sua API? por
Como garantir a qualidade de sua API?Como garantir a qualidade de sua API?
Como garantir a qualidade de sua API?Claudenir Freitas
105 visualizações24 slides
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste... por
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...Victor Cavalcante
555 visualizações25 slides

Mais procurados(20)

SharePoint Framework - Uma plataforma aberta e conectada por Lambda3
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectada
Lambda3112 visualizações
Aplicação da arquitetura de micro serviços em softwares corporativos por Emmanuel Neri
Aplicação da arquitetura de micro serviços em softwares corporativosAplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativos
Emmanuel Neri846 visualizações
IaaS, PaaS e SaaS para Developers por Renato Groff
IaaS, PaaS e SaaS para DevelopersIaaS, PaaS e SaaS para Developers
IaaS, PaaS e SaaS para Developers
Renato Groff1K visualizações
Como garantir a qualidade de sua API? por Claudenir Freitas
Como garantir a qualidade de sua API?Como garantir a qualidade de sua API?
Como garantir a qualidade de sua API?
Claudenir Freitas105 visualizações
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste... por Victor Cavalcante
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
Introdução ao IBM Bluemix - Silvia Matsuora (Solution IT Architect - Ecosyste...
Victor Cavalcante555 visualizações
Desenvolvimento de Aplicações com LightSwitch por Comunidade NetPonto
Desenvolvimento de Aplicações com LightSwitchDesenvolvimento de Aplicações com LightSwitch
Desenvolvimento de Aplicações com LightSwitch
Comunidade NetPonto996 visualizações
ASP.NET Core Day Campinas por Jaqueline Ramos
ASP.NET Core Day CampinasASP.NET Core Day Campinas
ASP.NET Core Day Campinas
Jaqueline Ramos130 visualizações
Minicurso sobre testes de interfaces com Selenium por Renato Groff
Minicurso sobre testes de interfaces com SeleniumMinicurso sobre testes de interfaces com Selenium
Minicurso sobre testes de interfaces com Selenium
Renato Groff569 visualizações
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021 por Renato Groffe
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Renato Groffe262 visualizações
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços por Thiago Pereira
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
Thiago Pereira5.3K visualizações
ASP.NET Identity por Rodrigo Kono
ASP.NET IdentityASP.NET Identity
ASP.NET Identity
Rodrigo Kono3.8K visualizações
Introdução ao CakePHP por Rafael Cichini
Introdução ao CakePHPIntrodução ao CakePHP
Introdução ao CakePHP
Rafael Cichini294 visualizações
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net por Fabian Gehrke
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .netTDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
Fabian Gehrke855 visualizações
Um método para o desenvolvimento de software baseado em microsserviços por Thiago Pereira
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviços
Thiago Pereira3.4K visualizações
WSO2 para o Governo Brasileiro por Edgar Silva
WSO2 para o  Governo BrasileiroWSO2 para o  Governo Brasileiro
WSO2 para o Governo Brasileiro
Edgar Silva3.6K visualizações
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021 por Renato Groffe
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Renato Groffe313 visualizações
[O Palco é Delas!] Azure DevTest Labs por Jaqueline Ramos
[O Palco é Delas!] Azure DevTest Labs[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs
Jaqueline Ramos248 visualizações
Manifeste-se! por s4nx
Manifeste-se!Manifeste-se!
Manifeste-se!
s4nx 767 visualizações

Similar a Microservices - Arquitetura, Ecossistema e Desafios

Desafio de crescer por
Desafio de crescerDesafio de crescer
Desafio de crescerGuilherme
307 visualizações35 slides
Construindo aplicações Cloud Native em Go por
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoAlvaro Viebrantz
142 visualizações54 slides
Flask e Docker - rumo a AWS! por
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Ryan Padilha
208 visualizações16 slides
Sonarqube por
SonarqubeSonarqube
SonarqubeCDS
1.7K visualizações25 slides
Aula 2 - Modelos de processos por
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processosLeinylson Fontinele
3.3K visualizações73 slides
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade por
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
118 visualizações42 slides

Similar a Microservices - Arquitetura, Ecossistema e Desafios(20)

Desafio de crescer por Guilherme
Desafio de crescerDesafio de crescer
Desafio de crescer
Guilherme307 visualizações
Construindo aplicações Cloud Native em Go por Alvaro Viebrantz
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
Alvaro Viebrantz142 visualizações
Flask e Docker - rumo a AWS! por Ryan Padilha
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!
Ryan Padilha208 visualizações
Sonarqube por CDS
SonarqubeSonarqube
Sonarqube
CDS1.7K visualizações
Aula 2 - Modelos de processos por Leinylson Fontinele
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
Leinylson Fontinele3.3K visualizações
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade por André Abe Vicente
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
André Abe Vicente118 visualizações
JHipster - Produtividade e Maturidade em suas mãos por Thiago Soares
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
Thiago Soares132 visualizações
DevOps & Docker com a stack Microsoft por Graziella Bonizi
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
Graziella Bonizi271 visualizações
WSO2 - Visão Geral de Negócios por Edgar Silva
WSO2 - Visão Geral de NegóciosWSO2 - Visão Geral de Negócios
WSO2 - Visão Geral de Negócios
Edgar Silva3.1K visualizações
Introdução ao RUP por Igor Takenami
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
Igor Takenami6.7K visualizações
Microsoft ALM = Produtividade por Adriano Bertucci
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
Adriano Bertucci1.6K visualizações
Workshop soa, microservices e devops por Diego Pacheco
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
Diego Pacheco1.5K visualizações
Monitorando APIs REST com o Application Insights por Renato Groff
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application Insights
Renato Groff894 visualizações
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil por Renato Groff
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Renato Groff4.2K visualizações
Plataforma Android: Produtividade Além do SDK por Ryan Padilha
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
Ryan Padilha660 visualizações
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ... por Alvaro Brognoli
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Alvaro Brognoli2.6K visualizações
APIs Atributos e Tecnologia por Fábio Rosato
APIs Atributos e TecnologiaAPIs Atributos e Tecnologia
APIs Atributos e Tecnologia
Fábio Rosato382 visualizações
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019 por Renato Groff
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Renato Groff353 visualizações
Datalakers 2018 Qmeeting por Roberto Oliveira
Datalakers 2018 QmeetingDatalakers 2018 Qmeeting
Datalakers 2018 Qmeeting
Roberto Oliveira124 visualizações

Microservices - Arquitetura, Ecossistema e Desafios

  • 1. Copyright 2015 Google Inc Ryan Padilha (ryan.padilha@gmail.com) Arquitetura, Ecossistema e Desafios Apresentação técnica arquitetura orientada a serviços TechTalk Microservices
  • 2. Copyright 2015 Google Inc Simply in love with technology. JavaEE expert, SOA specialist and technical writer. Experience of 13+ years in solution design and development software. Working on Software Architecture, DevOps Culture and Cloud Computing. http://ryanpadilha.com.br http://br.linkedin.com/in/ryanpadilha Ryan Padilha
  • 3. Copyright 2015 Google Inc Agenda Introdução Estilo Arquitetural 1 2 Ecossistema e Desafios3 • Descritivo • Definição de estilo arquitetural baseado em computação distribuída. • Os desafios da escalabilidade e alocação de recursos em regras de negócios. • A cultura de DevOps com automatização por infra-estrutura como código. Linhas de Pesquisa4
  • 4. Copyright 2015 Google Inc Introdução • Webservices - TCC na Graduação de SI, ano de 2008. • Arquitetura de Sistemas em XML - Proposta de IC na Graduação, ano de 2008.
  • 5. Copyright 2015 Google Inc Introdução
  • 6. Copyright 2015 Google Inc Introdução • Princípios de serviços em SOA: 1. São reutilizáveis 2. Compartilham um contrato formal 3. Possuem um baixo acoplamento 4. Abstraem a lógica 5. São capazes de se compor 6. São autônomos 7. Evitam alocação de recursos por longo tempo 8. São capazes de serem descobertos • “APIs are the missing link for SOA success” - WSO2
  • 7. Copyright 2015 Google Inc Estilo Arquitetural • Afinal o que define o termo Microservices ‘14 ? • É um estilo arquitetural • Conjunto de pequenos serviços (componentes) • Execução em processo individual • Mecanismo leve de comunicação através de API de recursos HTTP • Desenvolvimento baseado em capacidades de negócios • Deploy independente automatizado • Gerenciamento centralizado mínimo • Projetado para ser resiliente e design evolutivo • Tecnologias heterogêneas e armazenamento poliglota • https://martinfowler.com/articles/microservices.html
  • 8. Copyright 2015 Google Inc Otimismo ?
  • 9. Copyright 2015 Google Inc Estilo Arquitetural • Pré-requisitos • Rápido provisionamento: ambientes em cloud computing • Monitoramento básico: detecção rápida de problemas graves • Deployment instantâneo: forte pipeline de implantação com profile • Implante o primeiro, mantenha-o saudável e aprenda com ele! • DevOps - Mudança organizacional, a operação deve fazer parte do código!
  • 10. Copyright 2015 Google Inc Estilo Arquitetural • Pros • Estrutura modular com fronteiras bem definidas • Serviços autônomos menores com deploys contínuos • Ecossistema de tecnologias heterogêneas • Cons • Concepção de sistemas distribuídos são mais complexos • Gerenciamento de consistência difícil • Redistribuição regular de serviços em ambientes distribuídos
  • 11. Copyright 2015 Google Inc Estilo Arquitetural
  • 12. Copyright 2015 Google Inc Estilo Arquitetural • Bounded context modules • Database per Service • API Gateway • Circuit break • Access Token • Health check API • Application Metrics • Message Broker (RPI) • http://microservices.io/patterns/microservices.html
  • 13. Copyright 2015 Google Inc Ecossistema e Desafios • Comece com o monolítico e defina bem as fronteiras dos módulos • Monitoramento em tempo real, verificando elementos da arquitetura • Latência em chamada a API remotas • Perfeita combinação entre mecanismo síncrono e assíncrono • Entrega contínua com provisionamento e implantação automatizado • Modelo de maturidade em equipes de produtos • Times orientados pelo conceito “you build, you run it” • Aprenda a manter o ecossistema no ar e acelere • Consequências graves para a operação no ecossistema • O mecanismo de autenticação e autorização à recursos levado a sério
  • 14. Copyright 2015 Google Inc Ecossistema e Desafios • https://martinfowler.com/bliki/MonolithFirst.html - Strangler Pattern
  • 15. Copyright 2015 Google Inc Ecossistema e Desafios
  • 16. Copyright 2015 Google Inc Ecossistema e Desafios
  • 17. Copyright 2015 Google Inc Linhas de Pesquisa - Futuro :D Referência: https://xebialabs.com/periodic-table-of-devops-tools/
  • 18. Copyright 2015 Google Inc Meu muito obrigado! “Quando você descobre algo, você se sente como se estivesse apaixonado”. Wozniak
  • 19. Copyright 2015 Google Inc Referências • https://martinfowler.com/articles/microservices.html • http://microservices.io/index.html • Building Microservices, Sam Newman • Microservices for Java Developers, Christian Posta. • Migrating to Microservices Databases, Edson Yanaga • Reactive Microservices Architecture, Jonas Bonér • Microservices from Theory to Practice, IBM Redbooks • InfoQ eMag: Microservices, Issue 16 • Architectural Styles and the Design of Network-based Software Architectures, Roy Fielding