SlideShare uma empresa Scribd logo
1 de 17
Convivendo e
Migrando para
Microserviços
DESAFIOS E OPORTUNIDADES
SÃO PAULO – 8/11/2018
Agenda
• Introdução
• Provocação
• O primeiro pattern (Strangler)
• Macro cenário – dados e aplicações
• Dados
• Aplicações
• Conclusão
• Perguntas
iurovski@everis:~$ > whoami
Danilo Iurovski
Digital Architect everis
Atuando desde 1998 no mercado de TI (dev, engenheiro, arquiteto)
Mercado financeiro – foco em altos volumes, latência, etc.
Experiência em projetos de inovação
Período sabático como Gerente de Projetos
Binge-watcher e cinéfilo (tive uma vídeo locadora de VHS)
danilo.iurovski@everis.com
https://www.linkedin.com/in/daniloiurovski/
11 99322-4428
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
Num passado recente assumimos que:
Migração incremental
“The only thing a Big Bang
migration guarantees is a big
*Bang*.”
-- Martin Fowler
O estrangulamento
Sementes distribuídas
por pássaros fazem
este novo tipo de planta
crescer fincando suas
raízes na planta antiga
competindo pelo solo,
até estrangular ela e
tomar seu lugar...
Strangler Pattern
https://www.martinfowler.com/bliki/StranglerApplication.html
O verdadeiro estrangulamento
Duas abordagens comuns no mercado:
• Realizar o estrangulamento inicial pelas
funcionalidades que trazem mais valor ao negócio,
porque estas normalmente sofrem evoluções mais
constantes e adotar uma arquitetura orientada a
microserviços com todo seu entorno de devsecops e
sua infraestrutura em cloud traz benefícios e agilidade
para os times;
• Construir as funcionalidades novas já na plataforma de
aplicação moderna. É importante começar a reduzir ou
frear as evoluções do sistema legado.
O monolito residual pode permanecer por tempo
indeterminado – partes de menor valor par ao negócio, mais
estável e com poucas mudanças, podem ou não migrar.
Dados e Aplicações
UI
Camada de Negócios
Interface de Dados
Microserviço
UI
Microserviço Microserviço Microserviço
Microserviço
Seu próprio data store
COMO???
Não esquecer do entorno: DevSecOps, Infaestrutura, Processos, Novos Skills, novos times!
Dados
DDD
O modelo de dados do monolito normalmente está defasado....
Como os microserviços possuem seus dados segregados por domínios e não mais
centralizados, é provável que novas estruturas de dados se formem para refletir melhor
um domínio específico... (Campos, valores, etc.)
Esse é o primeiro passo.
Dica: os domínios funcionais dos microserviços normalmente fazem uma analogia a
estrutura de comunicação da empresa (Conway’s Law)
Replicate Data to
avoid widespread
changes
Split the
Domain Model
Refactor the
Database
Dados
MONOLITO
MONOLITO SERVIÇO DE ENVIO
Replique os dados do novo serviço para o monolito
EXEMPLO
QUEBRANDO
BARREIRAS
Período transitório
(não afeta os clientes
originais).
Mantenha os registros
originais em read-only
Dados – Replicando e convivendo
Scripts
ETL
Triggers
CDC
Levar em conta que cada informação tem uma periodicidade de atualização.
Tecnologias como o Change Data Capture são muito úteis para intervalos
pequenos de sincronização (Kafka Connector, Attunity, Apache NiFi,
StreamSets, etc.)
Big Data
Aplicações – Novas Funcionalidades
“Ahhh, não consigo parar meus projetos, o PO e as metas de negócios não param!”
J.D. – Arquiteto
Sênior
Sincronismo de bases
Aplicações – Novas Funcionalidades
SÍNCRONO ASSÍNCRONO
Anti-corruption Layer Pattern
Aplicações – Migrando partes do Monolito
FATIAMENTO
Perguntas
Algumas referências
Muito obrigado!

Mais conteúdo relacionado

Semelhante a Convivendo e migrando para microservices

Agenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalAgenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalJoao Galdino Mello de Souza
 
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
 
Micro serviços com node.js
Micro serviços com node.jsMicro serviços com node.js
Micro serviços com node.jsBruno Trecenti
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEJoao Galdino Mello de Souza
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a ServiceDenis Vieira
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEJoao Galdino Mello de Souza
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaTdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaDextra Sistemas / Etec Itu
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?Denodo
 
Webinar: Oportunidades e requisitos no projeto de hardware para IoT
Webinar: Oportunidades e requisitos no projeto de hardware para IoTWebinar: Oportunidades e requisitos no projeto de hardware para IoT
Webinar: Oportunidades e requisitos no projeto de hardware para IoTEmbarcados
 
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com HolyLatinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com HolyDextra
 
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Leandro Guimarães
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
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
 
Multicloud Reality Test
Multicloud Reality TestMulticloud Reality Test
Multicloud Reality TestAlex Hübner
 
Webinar projetos e ti - business intelligence - como fazer
Webinar   projetos e ti - business intelligence - como fazerWebinar   projetos e ti - business intelligence - como fazer
Webinar projetos e ti - business intelligence - como fazerProjetos e TI
 

Semelhante a Convivendo e migrando para microservices (20)

Agenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacionalAgenda Versão Final - CMG 14a. conferencia nacional
Agenda Versão Final - CMG 14a. conferencia nacional
 
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
 
Micro serviços com node.js
Micro serviços com node.jsMicro serviços com node.js
Micro serviços com node.js
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a Service
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaTdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
BigData
BigDataBigData
BigData
 
Java Web, o Tutorial
Java Web, o TutorialJava Web, o Tutorial
Java Web, o Tutorial
 
Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?
 
Webinar: Oportunidades e requisitos no projeto de hardware para IoT
Webinar: Oportunidades e requisitos no projeto de hardware para IoTWebinar: Oportunidades e requisitos no projeto de hardware para IoT
Webinar: Oportunidades e requisitos no projeto de hardware para IoT
 
Latinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com HolyLatinoware 2012 - Desenvolvendo Interfaces com Holy
Latinoware 2012 - Desenvolvendo Interfaces com Holy
 
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
1 Ids On Campus V3a
1 Ids On Campus V3a1 Ids On Campus V3a
1 Ids On Campus V3a
 
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
 
Multicloud Reality Test
Multicloud Reality TestMulticloud Reality Test
Multicloud Reality Test
 
Webinar projetos e ti - business intelligence - como fazer
Webinar   projetos e ti - business intelligence - como fazerWebinar   projetos e ti - business intelligence - como fazer
Webinar projetos e ti - business intelligence - como fazer
 

Convivendo e migrando para microservices

  • 1. Convivendo e Migrando para Microserviços DESAFIOS E OPORTUNIDADES SÃO PAULO – 8/11/2018
  • 2. Agenda • Introdução • Provocação • O primeiro pattern (Strangler) • Macro cenário – dados e aplicações • Dados • Aplicações • Conclusão • Perguntas
  • 3. iurovski@everis:~$ > whoami Danilo Iurovski Digital Architect everis Atuando desde 1998 no mercado de TI (dev, engenheiro, arquiteto) Mercado financeiro – foco em altos volumes, latência, etc. Experiência em projetos de inovação Período sabático como Gerente de Projetos Binge-watcher e cinéfilo (tive uma vídeo locadora de VHS) danilo.iurovski@everis.com https://www.linkedin.com/in/daniloiurovski/ 11 99322-4428
  • 5. Migração incremental “The only thing a Big Bang migration guarantees is a big *Bang*.” -- Martin Fowler
  • 6. O estrangulamento Sementes distribuídas por pássaros fazem este novo tipo de planta crescer fincando suas raízes na planta antiga competindo pelo solo, até estrangular ela e tomar seu lugar... Strangler Pattern https://www.martinfowler.com/bliki/StranglerApplication.html
  • 7. O verdadeiro estrangulamento Duas abordagens comuns no mercado: • Realizar o estrangulamento inicial pelas funcionalidades que trazem mais valor ao negócio, porque estas normalmente sofrem evoluções mais constantes e adotar uma arquitetura orientada a microserviços com todo seu entorno de devsecops e sua infraestrutura em cloud traz benefícios e agilidade para os times; • Construir as funcionalidades novas já na plataforma de aplicação moderna. É importante começar a reduzir ou frear as evoluções do sistema legado. O monolito residual pode permanecer por tempo indeterminado – partes de menor valor par ao negócio, mais estável e com poucas mudanças, podem ou não migrar.
  • 8. Dados e Aplicações UI Camada de Negócios Interface de Dados Microserviço UI Microserviço Microserviço Microserviço Microserviço Seu próprio data store COMO??? Não esquecer do entorno: DevSecOps, Infaestrutura, Processos, Novos Skills, novos times!
  • 9. Dados DDD O modelo de dados do monolito normalmente está defasado.... Como os microserviços possuem seus dados segregados por domínios e não mais centralizados, é provável que novas estruturas de dados se formem para refletir melhor um domínio específico... (Campos, valores, etc.) Esse é o primeiro passo. Dica: os domínios funcionais dos microserviços normalmente fazem uma analogia a estrutura de comunicação da empresa (Conway’s Law) Replicate Data to avoid widespread changes Split the Domain Model Refactor the Database
  • 10. Dados MONOLITO MONOLITO SERVIÇO DE ENVIO Replique os dados do novo serviço para o monolito EXEMPLO QUEBRANDO BARREIRAS Período transitório (não afeta os clientes originais). Mantenha os registros originais em read-only
  • 11. Dados – Replicando e convivendo Scripts ETL Triggers CDC Levar em conta que cada informação tem uma periodicidade de atualização. Tecnologias como o Change Data Capture são muito úteis para intervalos pequenos de sincronização (Kafka Connector, Attunity, Apache NiFi, StreamSets, etc.) Big Data
  • 12. Aplicações – Novas Funcionalidades “Ahhh, não consigo parar meus projetos, o PO e as metas de negócios não param!” J.D. – Arquiteto Sênior Sincronismo de bases
  • 13. Aplicações – Novas Funcionalidades SÍNCRONO ASSÍNCRONO Anti-corruption Layer Pattern
  • 14. Aplicações – Migrando partes do Monolito FATIAMENTO