Escalando o backend com NGINX e Redis

Mario Guedes
Mario GuedesArtesão de Software at ArrayOf.io
Escalando o backend com
NGINX e Redis
Mario Guedes
Escalando o backend com NGINX e Redis Mario Guedes
Vídeo da apresentação em
https://youtu.be/ckXnPngRu7A
Escalando o backend com NGINX e Redis Mario Guedes
Olá!
Mario Guedes | Artesão de Software
Fora da Matrix a 20+ anos
Delphi, Python, Lua, JavaScript, noSQL ...
Em todas as redes sociais: /jmarioguedes
Embarcadero MVP desde 2016
http://eugostododelphi.blogspot.com.br
http://arrayof.com.br
Escalando o backend com NGINX e Redis Mario Guedes
DO QUE IREMOS FALAR?
CLIENTE MENSAGERIA STORAGE
Escalando o backend com NGINX e Redis Mario Guedes
RESTCLIENTE MENSAGERIA SERVIÇOHTTP STORAGE
Escalando o backend com NGINX e Redis Mario Guedes
Escalando o backend com NGINX e Redis Mario Guedes
Escalando o backend com NGINX e Redis Mario Guedes
Por que NGINX?
NGINX é um servidor web desenhado para atuar como proxy reverso
Promete suportar 10.000 conexões simultâneas
Utilizamos para escalar uma solução RESTful independentemente de
linguagem e framework
Portanto só tem serventia em uma arquitetura multi camada baseado em
HTTP (DataSnap REST ou DMVCFramework por exemplo)
Se coloca entre os clients HTTP e os web services
Escalando o backend com NGINX e Redis Mario Guedes
NGINX - Oportunidades
Balanceamento de carga
Tolerância à falha
As configurações são feitas nos arquivos *.conf
A configuração se dá por diretivas e contextos
Diferentemente do Apache Web Sever o NGINX trabalha apenas com um
processo para gerenciar as conexões TCP/IP
Por conta disto não executa um subprocesso anexado e nem incorpora
uma linguagem de programação – o que demanda menos recursos
Escalando o backend com NGINX e Redis Mario Guedes
PRÁTICA
Escalando o backend com NGINX e Redis Mario Guedes
Por que usar Redis?
Porque é rápido, muito rápido!
É um storage noSQL orientado à chave e valor
Imagine um grande e poderoso arquivo INI
Utiliza a memória RAM podendo persistir em disco
Desenvolvido em C ANSI
Escalando o backend com NGINX e Redis Mario Guedes
Características
Alta taxa de I/O
Rica coleção de comandos e tipos nativos
Execução de comandos em lote
Publicação e assinatura
Enfileiramento de comandos
TTL – Controle de tempo de vida da chave
Persistência em disco
Possibilidade de clusterização
Escalando o backend com NGINX e Redis Mario Guedes
Redis – Oportunidades
Turbine o seu sistema agora!
Mesmo que o seu sistema seja antigo maduro!
Aliviar a carga do banco principal
Gestão de sessões de usuários
Adoção da abordagem de micro serviços
Escalamento horizontal dos serviço de backend
Funcionamento off-line como em PDVs
Indicadores em real
Sincronização Matriz e Filial
...
Escalando o backend com NGINX e Redis Mario Guedes
Redis – Ressalvas
É bloqueante, o que requer atenção!
Prefira armazenar nos tipos nativos do Redis
Não tem suporte oficial no Windows
No tocante à mensageria é bom o suficiente porém considere o RabbitMQ
para soluções mais complexas
NÃO SUBSTITUI O SEU BANCO - COMPLEMENTA
Escalando o backend com NGINX e Redis Mario Guedes
PRÁTICA
Escalando o backend com NGINX e Redis Mario Guedes
Links
Exemplos - https://github.com/jmarioguedes/INTENSIVE_DELPHI_2018.git
NGINX - http://nginx.org
NGINX no Windows - http://nginx.org/en/docs/windows.html
Redis - https://redis.io/
Redis no Windows - https://github.com/MicrosoftArchive/redis/releases
Redis Client - https://github.com/danieleteti/delphiredisclient
Escalando o backend com NGINX e Redis Mario Guedes
Muito obrigado!
Já conhece a arrayOF?
Em breve o curso de Turbinando o seu sistema com Redis!
http://arrayof.com.br
http://fb.me/arrayOFAssessoria
mario.guedes@arrayof.com.br
1 of 17

Recommended

Microsserviço, Escalabilidade e Resiliência - #comofas? by
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Mario Guedes
6.5K views21 slides
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários by
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosMario Guedes
8.3K views21 slides
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB by
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
7K views15 slides
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE... by
TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...tdc-globalcode
120 views15 slides
Fazendo barba, cabelo e bigode com REDIS by
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISMario Guedes
158 views18 slides
Intensive Delphi 2017 - E este tal de Redis hein? by
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?Mario Guedes
232 views14 slides

More Related Content

What's hot

Apresentacao institucional 4Linux by
Apresentacao institucional 4LinuxApresentacao institucional 4Linux
Apresentacao institucional 4Linux4LinuxCursos
8.5K views21 slides
Inteligência Operacional utilizando a solução Elastic. by
Inteligência Operacional utilizando a solução Elastic.Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.4LinuxCursos
1.2K views41 slides
TDCSP - 2018 - Possibilidades com o REDIS no Delphi by
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiMario Guedes
771 views14 slides
Oficina de PHP - Software Freedom Day Luziânia 2013 by
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
2K views24 slides
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017 by
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017Renato Groff
88 views17 slides
Node.js, Uma breve introdução by
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
1.5K views43 slides

What's hot(20)

Apresentacao institucional 4Linux by 4LinuxCursos
Apresentacao institucional 4LinuxApresentacao institucional 4Linux
Apresentacao institucional 4Linux
4LinuxCursos8.5K views
Inteligência Operacional utilizando a solução Elastic. by 4LinuxCursos
Inteligência Operacional utilizando a solução Elastic.Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.
4LinuxCursos1.2K views
TDCSP - 2018 - Possibilidades com o REDIS no Delphi by Mario Guedes
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
Mario Guedes771 views
Oficina de PHP - Software Freedom Day Luziânia 2013 by George Mendonça
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
George Mendonça2K views
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017 by Renato Groff
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
Renato Groff88 views
Node.js, Uma breve introdução by Pablo Feijó
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
Pablo Feijó1.5K views
O que é nodejs, cases e vantagens by Rodrigo Matheus
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagens
Rodrigo Matheus2.4K views
Node.js - Devo adotar na minha empresa? by Pablo Souza
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
Pablo Souza3.4K views
Introdução ao Node.js - FATEC SP by Arthur Fücher
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SP
Arthur Fücher1.5K views
Nodejs - A performance que eu sempre quis ter by Emerson Macedo
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
Emerson Macedo4.2K views
BOT: Conversando com o seu sistema by Mario Guedes
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistema
Mario Guedes1.3K views
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ... by tdc-globalcode
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-globalcode39 views
Uma visão rápida sobre Nodejs by Rafael Soares
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
Rafael Soares933 views
Node.js: 5 razões para começar a utilizar by Filipe Falcão
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizar
Filipe Falcão1.7K views
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie by Renato Groffe
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
Renato Groffe291 views
desenvolvimento-web-javascript by Felipe Barros
desenvolvimento-web-javascriptdesenvolvimento-web-javascript
desenvolvimento-web-javascript
Felipe Barros438 views
Node.js - #1 - Introdução - Rodrigo Branas by Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Rodrigo Branas2.9K views

Similar to Escalando o backend com NGINX e Redis

Palestra Zend Framework na Campus Party 2011 by
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
356 views75 slides
Curso de Node.js e MongoDB - 01 by
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Luiz Duarte
66 views29 slides
Escalando uma plataforma poliglota - QConSP 17 by
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
7.3K views52 slides
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 by
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 Gabriel Machado
342 views44 slides
Pangea - Plataforma digital com Google Cloud Platform by
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
873 views74 slides
Arteccom Workshop Magento by
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop MagentoThiago Verly
934 views65 slides

Similar to Escalando o backend com NGINX e Redis(20)

Palestra Zend Framework na Campus Party 2011 by Flávio Lisboa
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
Flávio Lisboa356 views
Curso de Node.js e MongoDB - 01 by Luiz Duarte
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01
Luiz Duarte66 views
Escalando uma plataforma poliglota - QConSP 17 by Leandro Moreira
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17
Leandro Moreira7.3K views
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 by Gabriel Machado
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
Gabriel Machado342 views
Pangea - Plataforma digital com Google Cloud Platform by André Paulovich
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
André Paulovich873 views
Arteccom Workshop Magento by Thiago Verly
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop Magento
Thiago Verly934 views
Foco no app, viva o serverless! by Mario Guedes
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!
Mario Guedes146 views
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7 by tdc-globalcode
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
tdc-globalcode115 views
TDC2018SP | Trilha Serveless - Pra que SERVErless? by tdc-globalcode
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
tdc-globalcode146 views
Infraestrutura em nuvem com Amazon Web Services (AWS) by Infosimples
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infosimples1.3K views
Gerenciando Portais Liferay com Soluções de Performance Digital by Dynatrace Latin America
Gerenciando Portais Liferay com Soluções de Performance DigitalGerenciando Portais Liferay com Soluções de Performance Digital
Gerenciando Portais Liferay com Soluções de Performance Digital
Code Igniter & Zend Framework Uma UniãO De Sucesso by Jose Wilker
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De Sucesso
Jose Wilker678 views
LAMP: Desenvolvendo além do trivial by Gabriela Ferrara
LAMP: Desenvolvendo além do trivialLAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivial
Gabriela Ferrara1.5K views

More from Mario Guedes

Integrando-se à Blockchain da Ethereum by
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumMario Guedes
128 views25 slides
Entendendo HTTP para entender o REST by
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTMario Guedes
197 views20 slides
Expressão Regular - Cookbook by
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - CookbookMario Guedes
135 views11 slides
Geolocalização com Redis e Google Maps by
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
348 views29 slides
Geolocalização com Redis e Google Maps by
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
350 views37 slides
Paralelismo na prática: Threads de uma vez por todas e sem medo! by
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
956 views18 slides

More from Mario Guedes(20)

Integrando-se à Blockchain da Ethereum by Mario Guedes
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da Ethereum
Mario Guedes128 views
Entendendo HTTP para entender o REST by Mario Guedes
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
Mario Guedes197 views
Expressão Regular - Cookbook by Mario Guedes
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - Cookbook
Mario Guedes135 views
Geolocalização com Redis e Google Maps by Mario Guedes
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
Mario Guedes348 views
Geolocalização com Redis e Google Maps by Mario Guedes
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
Mario Guedes350 views
Paralelismo na prática: Threads de uma vez por todas e sem medo! by Mario 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!
Mario Guedes956 views
Escalabilidade com Redis by Mario Guedes
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
Mario Guedes303 views
Turbinando o seu sistema com Redis! by Mario Guedes
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!
Mario Guedes414 views
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá... by 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á...
Mario Guedes202 views
Extreme Experience 2018 | Python para quem sabe Delphi by Mario Guedes
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
Mario Guedes189 views
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment... by Mario 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...
Mario Guedes125 views
Big data da teoria à prática by Mario Guedes
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
Mario Guedes275 views
Integrando sua App ao Mundo via REST/JSON by Mario Guedes
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
Mario Guedes1.4K views
Delphi Parallel Programming Library by Mario Guedes
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
Mario Guedes872 views
Nova Infraestrutura JSON: System.JSON na prática by Mario 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
Mario Guedes10.1K views
Abertura - GruPy-SP | G4 Solutions - Agosto 2015 by Mario Guedes
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Mario Guedes310 views
Cacheamento Lado Servidor by Mario Guedes
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
Mario Guedes5.3K views
Code Rage Brazil III - Tudo sobre o REST Client Library by Mario Guedes
Code Rage Brazil III - Tudo sobre o REST Client LibraryCode Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client Library
Mario Guedes6.9K views
Conhecendo o Novo REST Framework by Mario Guedes
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
Mario Guedes7.9K views
Modularização via BPL - Abordagem Prática para DataSnap & Front-end by Mario Guedes
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
Mario Guedes19.7K views

Escalando o backend com NGINX e Redis

  • 1. Escalando o backend com NGINX e Redis Mario Guedes
  • 2. Escalando o backend com NGINX e Redis Mario Guedes Vídeo da apresentação em https://youtu.be/ckXnPngRu7A
  • 3. Escalando o backend com NGINX e Redis Mario Guedes Olá! Mario Guedes | Artesão de Software Fora da Matrix a 20+ anos Delphi, Python, Lua, JavaScript, noSQL ... Em todas as redes sociais: /jmarioguedes Embarcadero MVP desde 2016 http://eugostododelphi.blogspot.com.br http://arrayof.com.br
  • 4. Escalando o backend com NGINX e Redis Mario Guedes DO QUE IREMOS FALAR?
  • 5. CLIENTE MENSAGERIA STORAGE Escalando o backend com NGINX e Redis Mario Guedes
  • 6. RESTCLIENTE MENSAGERIA SERVIÇOHTTP STORAGE Escalando o backend com NGINX e Redis Mario Guedes
  • 7. Escalando o backend com NGINX e Redis Mario Guedes
  • 8. Escalando o backend com NGINX e Redis Mario Guedes Por que NGINX? NGINX é um servidor web desenhado para atuar como proxy reverso Promete suportar 10.000 conexões simultâneas Utilizamos para escalar uma solução RESTful independentemente de linguagem e framework Portanto só tem serventia em uma arquitetura multi camada baseado em HTTP (DataSnap REST ou DMVCFramework por exemplo) Se coloca entre os clients HTTP e os web services
  • 9. Escalando o backend com NGINX e Redis Mario Guedes NGINX - Oportunidades Balanceamento de carga Tolerância à falha As configurações são feitas nos arquivos *.conf A configuração se dá por diretivas e contextos Diferentemente do Apache Web Sever o NGINX trabalha apenas com um processo para gerenciar as conexões TCP/IP Por conta disto não executa um subprocesso anexado e nem incorpora uma linguagem de programação – o que demanda menos recursos
  • 10. Escalando o backend com NGINX e Redis Mario Guedes PRÁTICA
  • 11. Escalando o backend com NGINX e Redis Mario Guedes Por que usar Redis? Porque é rápido, muito rápido! É um storage noSQL orientado à chave e valor Imagine um grande e poderoso arquivo INI Utiliza a memória RAM podendo persistir em disco Desenvolvido em C ANSI
  • 12. Escalando o backend com NGINX e Redis Mario Guedes Características Alta taxa de I/O Rica coleção de comandos e tipos nativos Execução de comandos em lote Publicação e assinatura Enfileiramento de comandos TTL – Controle de tempo de vida da chave Persistência em disco Possibilidade de clusterização
  • 13. Escalando o backend com NGINX e Redis Mario Guedes Redis – Oportunidades Turbine o seu sistema agora! Mesmo que o seu sistema seja antigo maduro! Aliviar a carga do banco principal Gestão de sessões de usuários Adoção da abordagem de micro serviços Escalamento horizontal dos serviço de backend Funcionamento off-line como em PDVs Indicadores em real Sincronização Matriz e Filial ...
  • 14. Escalando o backend com NGINX e Redis Mario Guedes Redis – Ressalvas É bloqueante, o que requer atenção! Prefira armazenar nos tipos nativos do Redis Não tem suporte oficial no Windows No tocante à mensageria é bom o suficiente porém considere o RabbitMQ para soluções mais complexas NÃO SUBSTITUI O SEU BANCO - COMPLEMENTA
  • 15. Escalando o backend com NGINX e Redis Mario Guedes PRÁTICA
  • 16. Escalando o backend com NGINX e Redis Mario Guedes Links Exemplos - https://github.com/jmarioguedes/INTENSIVE_DELPHI_2018.git NGINX - http://nginx.org NGINX no Windows - http://nginx.org/en/docs/windows.html Redis - https://redis.io/ Redis no Windows - https://github.com/MicrosoftArchive/redis/releases Redis Client - https://github.com/danieleteti/delphiredisclient
  • 17. Escalando o backend com NGINX e Redis Mario Guedes Muito obrigado! Já conhece a arrayOF? Em breve o curso de Turbinando o seu sistema com Redis! http://arrayof.com.br http://fb.me/arrayOFAssessoria mario.guedes@arrayof.com.br