SlideShare a Scribd company logo
1 of 15
Download to read offline
Globalcode – Open4education
Arquitetura escalável e resiliente com
NGINX, DataSnap, REDIS e MongoDB
Globalcode – Open4education
Que Mario? Aquele ...
18+ anos aprendendo a programar
Desenvolvedor Delphi, Python, JavaScript e Lua
Gestor de Desenvolvimento na CONTACT STUDIO Software
Vivência em soluções de grande porte para Contact Center
http://eugostododelphi.blogspot.com.br
jmarioguedes@gmail.com
Em todas as redes: /jmarioguedes
Não sou eu! Sou eu!
Globalcode – Open4education
Foco desta apresentação
O objetivo maior é o de apresentar uma proposta de arquitetura
escalável e resiliente:
Escalável: Capacidade de atender de 10 a 10.000 usuários sem
reescrita de código.
“Vem monstrão!”
Resiliente: Capacidade de se recuperar .
“Não cai nem fodendo que a vaca tussa!”
Globalcode – Open4education
Macro esquema
CAMADA RESTCAMADA CLIENTE MENSAGERIA MICRO SERVIÇOCAMADA HTTP STORAGE
Globalcode – Open4education
WTF?! Qual o benefício?
Estamos procurando buscar:
Escalabilidade horizontal
Alta resiliência
Alta ortogonalidade
Baixa indisponibilidade por conta de atualizações
Um banco sem esquema permite maior velocidade às
mudanças de regras de negócios
Globalcode – Open4education
DataSnap
É o framework nativo para construção de soluções
multi-camadas no Delphi e C++ Builder
Um ótimo curso com o Rodrigo Mourão:
http://fundamentosdatasnap.rmfactory.com.br/curso
-datasnap
Globalcode – Open4education
NGNIX [engine x]
Servidor web de alta densidade
Promete suportar 10.000 conexões simultâneas
https://nginx.org/en/
Instalação para Windows (não para produção)
http://nginx.org/en/docs/windows.html
Software russo (curiosidade apenas)
Globalcode – Open4education
NGNIX - Propósitos
Extensível via linguagem Lua
Proxy reverso
Encaminhador de requisições
Balanceador
Fail over
Altamente configurável
Globalcode – Open4education
REDIS
Banco noSQL orientado à chave e valor
https://redis.io
Servidor versão Windows (não para produção):
https://github.com/MicrosoftArchive/redis/releases
Manager que eu uso:
https://redisdesktop.com
Cliente para Delphi:
http://www.danieleteti.it/redis-client/
Globalcode – Open4education
REDIS - Propósitos
Armazenamento de sessão DataSnap
Possibilidade de se usar TTL nas chaves
Extensível via linguagem Lua
Cacheamento server-side
“O processamento mais rápido é aquele que não é feito”
Mensageria
Enfileiramento
Publicação e assinatura
Globalcode – Open4education
MONGODB
Banco noSQL orientado à documento
https://www.mongodb.com
Manager que eu uso:
https://studio3t.com
Recomendo, sempre, o curso do Thulio
http://www.thuliobittencourt.com
Globalcode – Open4education
MONGODB - Propósitos
Por já armazenar JSON, diminuímos a
incompatibilidade de impedância
É o esforço de mapear os dados entre as estruturas da
linguagem e o banco de dados relacional
Aderente aos conceitos de Big Data
Utiliza agregação e map-reduce para
processamento
Globalcode – Open4education
Palavras chaves
Globalcode – Open4education
Links
Você sabe o que é Incompatibilidade de Impedância? - Banco de Dados Parte 1
Dayvson Lima
https://pt.linkedin.com/pulse/você-sabe-o-que-é-incompatibilidade-de-impedância-banco-lima
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Mario Guedes
https://pt.slideshare.net/jmarioguedes/modularizao-via-bpl-abordagem-prtica-para-data-snap-frontend
Controlando a Concorrência em Aplicações Multi-Thread com Delphi
Mario Guedes
http://eugostododelphi.blogspot.com.br/2016/10/material-sobre-threads_51.html
CodeRage Brasil III: Tudo sobre o REST Client Library
Mario Guedes
https://youtu.be/ajl2GEJonQA
Globalcode – Open4education
Obrigado!
{
“nome” : “Mário Guedes” ,
“e-mail” : “jmarioguedes@gmail.com” ,
“blog” : “http://eugostododelphi.blogspot.com.br” ,
“perfis” : [
{“linkedin” : “jmarioguedes”} ,
{“slideshare” : “jmarioguedes”} ,
{“github” : “jmarioguedes”} ,
{“prezi” : “jmarioguedes”}
]
}

More Related Content

What's hot

Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado ServidorMario Guedes
 
BeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOpsBeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOps4LinuxCursos
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Apresentacao institucional 4Linux
Apresentacao institucional 4LinuxApresentacao institucional 4Linux
Apresentacao institucional 4Linux4LinuxCursos
 
Apresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiApresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiRankest
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013George Mendonça
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019Renato Groff
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieTecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieRenato Groffe
 
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...Renato Groff
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiMario Guedes
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Adler Medrado
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaMario Guedes
 
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Renato Groff
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Renato Groff
 

What's hot (20)

Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 
BeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOpsBeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOps
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Apresentacao institucional 4Linux
Apresentacao institucional 4LinuxApresentacao institucional 4Linux
Apresentacao institucional 4Linux
 
Apresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiApresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpi
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieTecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
 
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistema
 
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 

Similar to Arquitetura NGINX DataSnap REDIS MongoDB

Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Renato Groff
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...tdc-globalcode
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Mario Guedes
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
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
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...Kelver Merlotti
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...tdc-globalcode
 
Utilizando containers docker para ap is em asp.net core com app service linux
Utilizando containers docker para ap is em asp.net core com app service linuxUtilizando containers docker para ap is em asp.net core com app service linux
Utilizando containers docker para ap is em asp.net core com app service linuxGustavo Bellini Bigardi
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLVoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLLuiz Henrique Zambom Santana
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPRodrigo Dos Santos
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2Eric Lemes
 

Similar to Arquitetura NGINX DataSnap REDIS MongoDB (20)

Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
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
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
 
MicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applicationsMicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applications
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
 
Utilizando containers docker para ap is em asp.net core com app service linux
Utilizando containers docker para ap is em asp.net core com app service linuxUtilizando containers docker para ap is em asp.net core com app service linux
Utilizando containers docker para ap is em asp.net core com app service linux
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLVoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2
 

More from Mario Guedes

O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitMario Guedes
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumMario Guedes
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTMario Guedes
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - CookbookMario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!Mario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Mario Guedes
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis Mario Guedes
 
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á...Mario Guedes
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
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...Mario Guedes
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming LibraryMario Guedes
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
 
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Mario Guedes
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endMario Guedes
 
O que é ser programador?
O que é ser programador?O que é ser programador?
O que é ser programador?Mario Guedes
 

More from Mario Guedes (17)

O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da Ethereum
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - Cookbook
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
 
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á...
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
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...
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática
 
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
O que é ser programador?
O que é ser programador?O que é ser programador?
O que é ser programador?
 

Arquitetura NGINX DataSnap REDIS MongoDB

  • 1. Globalcode – Open4education Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
  • 2. Globalcode – Open4education Que Mario? Aquele ... 18+ anos aprendendo a programar Desenvolvedor Delphi, Python, JavaScript e Lua Gestor de Desenvolvimento na CONTACT STUDIO Software Vivência em soluções de grande porte para Contact Center http://eugostododelphi.blogspot.com.br jmarioguedes@gmail.com Em todas as redes: /jmarioguedes Não sou eu! Sou eu!
  • 3. Globalcode – Open4education Foco desta apresentação O objetivo maior é o de apresentar uma proposta de arquitetura escalável e resiliente: Escalável: Capacidade de atender de 10 a 10.000 usuários sem reescrita de código. “Vem monstrão!” Resiliente: Capacidade de se recuperar . “Não cai nem fodendo que a vaca tussa!”
  • 4. Globalcode – Open4education Macro esquema CAMADA RESTCAMADA CLIENTE MENSAGERIA MICRO SERVIÇOCAMADA HTTP STORAGE
  • 5. Globalcode – Open4education WTF?! Qual o benefício? Estamos procurando buscar: Escalabilidade horizontal Alta resiliência Alta ortogonalidade Baixa indisponibilidade por conta de atualizações Um banco sem esquema permite maior velocidade às mudanças de regras de negócios
  • 6. Globalcode – Open4education DataSnap É o framework nativo para construção de soluções multi-camadas no Delphi e C++ Builder Um ótimo curso com o Rodrigo Mourão: http://fundamentosdatasnap.rmfactory.com.br/curso -datasnap
  • 7. Globalcode – Open4education NGNIX [engine x] Servidor web de alta densidade Promete suportar 10.000 conexões simultâneas https://nginx.org/en/ Instalação para Windows (não para produção) http://nginx.org/en/docs/windows.html Software russo (curiosidade apenas)
  • 8. Globalcode – Open4education NGNIX - Propósitos Extensível via linguagem Lua Proxy reverso Encaminhador de requisições Balanceador Fail over Altamente configurável
  • 9. Globalcode – Open4education REDIS Banco noSQL orientado à chave e valor https://redis.io Servidor versão Windows (não para produção): https://github.com/MicrosoftArchive/redis/releases Manager que eu uso: https://redisdesktop.com Cliente para Delphi: http://www.danieleteti.it/redis-client/
  • 10. Globalcode – Open4education REDIS - Propósitos Armazenamento de sessão DataSnap Possibilidade de se usar TTL nas chaves Extensível via linguagem Lua Cacheamento server-side “O processamento mais rápido é aquele que não é feito” Mensageria Enfileiramento Publicação e assinatura
  • 11. Globalcode – Open4education MONGODB Banco noSQL orientado à documento https://www.mongodb.com Manager que eu uso: https://studio3t.com Recomendo, sempre, o curso do Thulio http://www.thuliobittencourt.com
  • 12. Globalcode – Open4education MONGODB - Propósitos Por já armazenar JSON, diminuímos a incompatibilidade de impedância É o esforço de mapear os dados entre as estruturas da linguagem e o banco de dados relacional Aderente aos conceitos de Big Data Utiliza agregação e map-reduce para processamento
  • 14. Globalcode – Open4education Links Você sabe o que é Incompatibilidade de Impedância? - Banco de Dados Parte 1 Dayvson Lima https://pt.linkedin.com/pulse/você-sabe-o-que-é-incompatibilidade-de-impedância-banco-lima Modularização via BPL - Abordagem Prática para DataSnap & Front-end Mario Guedes https://pt.slideshare.net/jmarioguedes/modularizao-via-bpl-abordagem-prtica-para-data-snap-frontend Controlando a Concorrência em Aplicações Multi-Thread com Delphi Mario Guedes http://eugostododelphi.blogspot.com.br/2016/10/material-sobre-threads_51.html CodeRage Brasil III: Tudo sobre o REST Client Library Mario Guedes https://youtu.be/ajl2GEJonQA
  • 15. Globalcode – Open4education Obrigado! { “nome” : “Mário Guedes” , “e-mail” : “jmarioguedes@gmail.com” , “blog” : “http://eugostododelphi.blogspot.com.br” , “perfis” : [ {“linkedin” : “jmarioguedes”} , {“slideshare” : “jmarioguedes”} , {“github” : “jmarioguedes”} , {“prezi” : “jmarioguedes”} ] }