SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
A História do LinkApi, como
chegamos numa Arquitetura para
suportar 1 milhão de integrações
por minuto.
Waldyr Felix
CTO da Orange Founders
Head de Tecnologia da Fcamara
Daniel Loscheck
Desenvolvedor do LinkApi
Consultor da FCamara
ȗ
O que é o LinkApi?
Ideia do LinkApi
SAP
Buscar	
Pedidos
Vtex
Buscar	
Produtos
KPL
Buscar	
Frete
Magento
Inserir	
Produtos
Protheus
Inserir	NF
Vtex
Inserir	
Produto
Node.js + Straw
• Node.js possui	I/O	não	bloqueante
• Baixo	workload
• Alta	produtividade	na	criação	de	novos	conectores
• Straw facilita	a	distribuição	dos	processos
• Framework	de	processamento	em	tempo	real
• Bug	sem	solução	ao	chegar	em	20	mil	tasks simultâneas	L
Python + Celery
• Solução	robusta	e	bastante	conhecida	do	mercado
• Maior	case	de	sucesso:	Mozilla
• Documentação	mais	completa	que	o	Straw
• Ninguém	sabe	Python	L
• Celery é	bem	mais	complexo	do	que	o	Straw L
Node.js + Kue + Redis
• Extremamente	performático
• Implementação	simples
• Fácil	de	configurar	e	manter
• Documentação	fraca	L
• Bug	causando	o	não	fechamento	das	conexões	do	Redis	L
Node.js + RabbitMQ + Docker
• Extremamente	performático
• Fácil	de	manter	e	escalar
• Aumentou	a	complexidade	da	solução	L
• Funciona	J
O que mudou no LinkApi?
Get
Integration
Get Trigger
Trigger	
Exec
Create
Task
Get Action
Action
Exec
Get
Integration
Trigger	
Exec
Action
Exec
Nova arquitetura do LinkApi?
• Robustez	com	o	RabbitMQ
• Escalabilidade	com	mais	nós	do	RabbitMQ em	cluster
• Escalabilidade	com	mais	Workers (containers	do	docker)
• docker service scale linkapi_trigger=3 linkapi_action=10
• Vazão	de	tasks dos	Workers agora	é	parametrizável
• Métricas	de	mensageria	com	o	painel	do	RabbitMQ
Ganhos com o novo LinkApi?
Visão do futuro para o LinkApi
• Tudo	como	container	
• Esquema	de	filas	por	integração
• Integrações	por	webhook
• API’s de	consulta	para	os	clientes
• Melhoria	de	UX
Links Interessantes
• Benchmark	do	Apache	Kafka
https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines
• Comparativo	entre	Message Brokers
https://dzone.com/articles/exploring-message-brokers
• Artigo	sobre	Message Queue
https://www.cloudamqp.com/blog/2014-12-03-what-is-message-queuing.html
• Apresentação	sobre	Escalando	a	Infraestrutura	do	Instagram
https://www.infoq.com/presentations/instagram-scale-infrastructure
• Artigo	sobre	quando	usar	Kafka	ou	RabbitMQ
https://content.pivotal.io/rabbitmq/understanding-when-to-use-rabbitmq-or-apache-kafka
Waldyr Felix
CTO da Orange Founders
Head de Tecnologia da Fcamara
Daniel Loscheck
Desenvolvedor do LinkApi
Consultor da FCamara
ȗ

Weitere ähnliche Inhalte

Ähnlich wie A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão de integrações por minuto

Ähnlich wie A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão de integrações por minuto (20)

Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
 
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JS
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
DC2012 - First steps with Firemonkey and iOS apps in Delphi XE2
DC2012 - First steps with Firemonkey and iOS apps in Delphi XE2 DC2012 - First steps with Firemonkey and iOS apps in Delphi XE2
DC2012 - First steps with Firemonkey and iOS apps in Delphi XE2
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
Microserviços
MicroserviçosMicroserviços
Microserviços
 
Modernizando projetos legados usando APIs
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIs
 
RAD Studio 10.2 Tokyo
RAD Studio 10.2 TokyoRAD Studio 10.2 Tokyo
RAD Studio 10.2 Tokyo
 
NoSQL e Python
NoSQL e PythonNoSQL e Python
NoSQL e Python
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
 
Bi sobre Big Data - Como fazer?
Bi sobre Big Data - Como fazer?Bi sobre Big Data - Como fazer?
Bi sobre Big Data - Como fazer?
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
 
Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?
 
Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC Week
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 

Mehr von Waldyr Felix

Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
Waldyr Felix
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
Waldyr Felix
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic Auth
Waldyr Felix
 

Mehr von Waldyr Felix (20)

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performance
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do Docker
 
HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity Framework
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic Auth
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 

A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão de integrações por minuto

  • 1. A História do LinkApi, como chegamos numa Arquitetura para suportar 1 milhão de integrações por minuto. Waldyr Felix CTO da Orange Founders Head de Tecnologia da Fcamara Daniel Loscheck Desenvolvedor do LinkApi Consultor da FCamara ȗ
  • 2. O que é o LinkApi?
  • 4. Node.js + Straw • Node.js possui I/O não bloqueante • Baixo workload • Alta produtividade na criação de novos conectores • Straw facilita a distribuição dos processos • Framework de processamento em tempo real • Bug sem solução ao chegar em 20 mil tasks simultâneas L
  • 5.
  • 6. Python + Celery • Solução robusta e bastante conhecida do mercado • Maior case de sucesso: Mozilla • Documentação mais completa que o Straw • Ninguém sabe Python L • Celery é bem mais complexo do que o Straw L
  • 7.
  • 8. Node.js + Kue + Redis • Extremamente performático • Implementação simples • Fácil de configurar e manter • Documentação fraca L • Bug causando o não fechamento das conexões do Redis L
  • 9.
  • 10. Node.js + RabbitMQ + Docker • Extremamente performático • Fácil de manter e escalar • Aumentou a complexidade da solução L • Funciona J
  • 11.
  • 12. O que mudou no LinkApi? Get Integration Get Trigger Trigger Exec Create Task Get Action Action Exec Get Integration Trigger Exec Action Exec
  • 14. • Robustez com o RabbitMQ • Escalabilidade com mais nós do RabbitMQ em cluster • Escalabilidade com mais Workers (containers do docker) • docker service scale linkapi_trigger=3 linkapi_action=10 • Vazão de tasks dos Workers agora é parametrizável • Métricas de mensageria com o painel do RabbitMQ Ganhos com o novo LinkApi?
  • 15.
  • 16. Visão do futuro para o LinkApi • Tudo como container • Esquema de filas por integração • Integrações por webhook • API’s de consulta para os clientes • Melhoria de UX
  • 17. Links Interessantes • Benchmark do Apache Kafka https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines • Comparativo entre Message Brokers https://dzone.com/articles/exploring-message-brokers • Artigo sobre Message Queue https://www.cloudamqp.com/blog/2014-12-03-what-is-message-queuing.html • Apresentação sobre Escalando a Infraestrutura do Instagram https://www.infoq.com/presentations/instagram-scale-infrastructure • Artigo sobre quando usar Kafka ou RabbitMQ https://content.pivotal.io/rabbitmq/understanding-when-to-use-rabbitmq-or-apache-kafka
  • 18. Waldyr Felix CTO da Orange Founders Head de Tecnologia da Fcamara Daniel Loscheck Desenvolvedor do LinkApi Consultor da FCamara ȗ