De 1 a 1.000.000
de usuários
Felipe Klerk Signorini
DevOps - ativo.com
● Arquiteto de software
● Infra estrutura
● Desenvolvimento.
Por onde começar?
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
Não seja o programador
StackOverflow
"Aqui as coisas sempre funcionaram assim..."
Cultura e conhecimento
De 1 a 1.000.00 de usuários
Para os primeiros milhões de
usuários a linguagem não
importa.
Não importa a ferramenta
➔ Estude os conceitos, o porque aquela ferramenta foi feita.
➔ Aplicação e servidores andam juntos
➔ Se questione o porque utiliza determinadas ferramentas.
➔ Pense primeiro na arquitetura e por último em quais ferramentas
utilizar
➔ A capacidade em visualizar o todo impacta direto na
escalabilidade do sistema
"Meoo coloca um MongoDB que sua aplicação vai voar"
NoSQL,
você realmente precisa?
Começe com um banco
relacional
➔ Tecnologias maduras e estáveis
➔ Documentação e comunidade
➔ Ferramentas de mercado
Sistema de monitoramento, análises, forks e afins
➔ Se bem estruturado seu banco relacional dará conta dos seus
primeiros milhões de usuários.
➔ Sua estrutura de dados normalmente é relacional
Quando pensar em NoSQL
➔ Sua estrutura de dados é baseado em meta dados
➔ Base sem esquema
➔ Massiva quantidade de dados (TB`s)
➔ Massiva quantidade de registros (muitos mesmos)
"Isso não é minha responsabilidade."
Arquitetura de aplicações
Arquitetura?
Infraestrutura
Como as máquinas se
relacionam, banco de
dados, serviços, sistema de
cache, firewall e afins.
“Contanization”, “Infra is code”,
“LoadBalances/AutoScaling”
Serviços
Como os aplicativos se
comunicam, relação entre
gateways, APIs, sistemas e
afins.
“ESB”, “Microservices”, “monoliticos”
Aplicativo
Estrutura em nível de
aplicação, como as classes
e funções se relacionam.
“OOP”, “Design Pattern”
"O problema está no servidor."
Escalabilidade é
responsabilidade da Infra?
Escalabilidade
Vs
Performance
1 Usuário
De 1 a 1.000.00 de usuários
Apache/PHP e DB
>10 Usuários
Escalabilidade?
4 GBs
1 CPU
8 GBs
2 CPUs
16 GBs
4 CPUS
2 GBs
● Consiste em aumentar o poder
computacional
● Exige downtime do aplicativo
● Muito caro
● Haverá um limite
Escalabilidade ?
4 GBs
1 CPU
4 GBs
1 CPU
4 GBs
1 CPU
● Mais barato que a escalabilidade
vertical
● Garante failbacks no aplicativo
● SOA
● Alta disponibilidade
● A longo prazo se torna o único
caminho
Apache/PHP
DataBase
>100 Usuários
Cache
Guardar algo temporáriamente para uso posterior
● Aumenta a performance da aplicação
● Diminui gastos em recursos computacionais
● Aumenta o uso de IO (file cache)
● Considero o cache o item mais importante para
começar a escalar a aplicação
HTTP
Cache - App
Routes Controller
DataBase
View
MIddleware
HTTP
Cache - App
Routes Controller
DataBase
View
MIddleware
Cache
View Object
Cache - View
Render
Controller
View Object Render
View Object Render
View Object
Cache - View
Render
Controller
View Object Render
View Object Render
Cache
Model
Cache - Models
Database
Controller
Model Database
Model
Cache - Models
Database
Controller
Model Database
Cache
get_file_contents
Cache - Request
HTTP
Controller
get_file_contents HTTP
Controller
get_file_contents
Cache - Request
HTTP
Controller
get_file_contents HTTP
Controller
Cache
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
SuperCache - Wordpress
Cache - Memoria
PHP/Script
Cache - OpCache
Parser Compile Execute
OutPut
PHP/Script
Cache - OpCache
Parser Execute
OutPut
Compile
Cache - Nginx
HTTP Routes Controller
DataBase
View
MIddleware
Cache - Nginx
HTTP Routes Controller
DataBase
View
MIddleware
Cache
Cache - Nginx
Replica
Banco "não" escala, mais existe opções.
MySQL - Replica
App
Master ReplicaEscrita
Escrita
Leitura
De 1 a 1.000.00 de usuários
Existe a possibilidade da criação de clusters, e/ou
utilização de técnicas de sharding data, porém ainda não
é o momento
nginx/php+fpmReverse Cache
Master Replica
>1000 Usuários
Concorrência
Agora sim vamos falar de LoadBalances e AutoScaling.
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
Entenda que cada máquina deve ser Stateless, não pode
conter nenhuma informação vital.
● Uploads de arquivos
● Sessões do php
● Logs
nginx/php+fpm
LoadBalance
Master Replica
nginx/php+fpm
LoadBalance
nginx/php+fpm
LoadBalance
Master Replica
nginx/php+fpmstorage
Static files
nginx/php+fpm
LoadBalance
Master Replica
nginx/php+fpmCDN
CDNs
storage
De 1 a 1.000.00 de usuários
Some web systems rely on “sticky sessions” – that is,
caching user session data in memory of the app’s
process and expecting future requests from the same
visitor to be routed to the same process. Sticky
sessions are a violation of twelve-factor and should
never be used or relied upon. Session state data is a
good candidate for a datastore that offers
time-expiration, such as Memcached or Redis
nginx/php+fpm
LoadBalance
MasterReplica
nginx/php+fpmstorage
Sessões
Memcached
session_drive=memcached
session.save_handler = memcache
session.save_path = tcp://10.1.1.1:11211'
Sessões
nginx/php+fpm
LoadBalance
Master
nginx/php+fpmstorage
Logs
ELK
Logs - ELK - Stack
Logs
AutoScaling
Crescimento e redução automática de clusters.
nginx/php+fpm
LoadBalance
MasterReplica
nginx/php+fpmstorage
Autscaling
Memcach
ed
Autscaling
Indexação
Resultados de buscas, listagem de dados, seleção de
dados de forma geral.
Servidores de busca
nginx/php+fpm
LoadBalance
MasterReplica
nginx/php+fpmstorage
Servidores de busca
MC
Elastic Search
>100.000 Usuários
Topologia
DevOps
DevOps is a new term emerging from the collision of two major related
trends. The first was also called “agile system administration” or “agile
operations”; it sprang from applying newer Agile and Lean approaches to
operations work.
The second is a much expanded understanding of the value of collaboration
between development and operations staff throughout all stages of the
development lifecycle when creating and operating a service, and how
important operations has become in our increasingly service-oriented world.
-Ernest Mueller, Aug 2, 2010 – Last Revised Jan 16, 2016
nginx/php+fpm
LoadBalance
Master
nginx/php+fpmstorage
MC Elastic Search
nginx/php+fpm
Replica Replica
nginx/php+fpm
LoadBalance
Master
nginx/php+fpmCDN
MC Elastic Search
nginx/php+fpm
Replica Replica
storage
nginx/php+fpm
LoadBalance
Master
nginx/php+fpmCDN
MC Elastic Search
nginx/php+fpm
Replica Replica
storage
Elastic Search Elastic Search
nginx/php+fpm
LoadBalance
Master
nginx/php+fpmCDN
MC Elastic Search
nginx/php+fpm
Replica Replica
storage
Elastic Search Elastic SearchMC MC
nginx/php+fpm
LoadBalance
nginx/php+fpmAkamai nginx/php+fpm
storage
Akamai
nginx/php+fpm
LoadBalance
nginx/php+fpm
Akamai
nginx/php+fpm
>1.000.000 Usuários
SOA
Service-Oriented Architecture.
SOA na prática
➔ Serviços por módulos independentes
➔ Administrados e escalados independentemente
➔ Flexibilidade e entendimento de cada função
➔ Automatizar processos operacionais
➔ SOA + Modularização = Agilidade
De 1 a 1.000.00 de usuários
MicroServices
LoadBalance
Route 53
LoadBalance
nginx/php+fpm nginx/php+fpm nginx/php+fpm nginx/php+fpm
LoadBalance
Master
Replica Replica
LBs, LBs e LBs
Master
Master
Master
Master
Master
Master
Master
Master
DataBase - Shard
Brokers
RabbitMq
Worker - P API Pedidos
Pagamento - Adquirente
Checkout Ativo
- Checkout Ativo
- Cielo
- Redes
- Stone
RabbitMq
Cielo Redes Stone Trap
Gateway - Cielo
API - Redis
Redis
1 - Teste de
Cartão de crédito
Processo de
pagamento
FailBack
Entre as
adquirentes
Status de processo
Cielo Redes Stone
API Users
Consulta existência
do cartão
API Geradores
nginx/php+fpm
LoadBalance
Master
nginx/php+fpmCDN
MC
Elastic
Search
nginx/php+fpm
Replica Replica
storage
Elastic
Search
Elastic
SearchMC MC
Worker Worker
Worker Worker
RabbitMQ
Worker Worker
Worker Worker
RabbitMQ
Worker Worker
RabbitMQ
Bye.
felipeklerk@yahoo.com.br
linkedin.com/in/felipe-klerk-signorini
facebook.com/felipesignorini

Mais conteúdo relacionado

PDF
Vamos conversar sobre cache
PPTX
Deploy automático em projeto PHP - PHPSPIMA 2016
PDF
Web seminario varnish
PDF
Otimizacao de websites em PHP
PDF
Slides nginx
PDF
NGiNX, o motor da sua aplicação web
PDF
Caching
ODP
Descobrindo o Nginx - Um servidor web de alta performance
Vamos conversar sobre cache
Deploy automático em projeto PHP - PHPSPIMA 2016
Web seminario varnish
Otimizacao de websites em PHP
Slides nginx
NGiNX, o motor da sua aplicação web
Caching
Descobrindo o Nginx - Um servidor web de alta performance

Mais procurados (20)

ODP
Alta perfomance de aplicações PHP com Nginx
ODP
Performance em Java
PPTX
PHP com Docker
PPT
L'esprit de l'escalier
PDF
Dicas para Turbinar o servidor de Aplicações JBoss 7
ODP
Alta Performance de Aplicações PHP com Nginx
PDF
Nodejs - A performance que eu sempre quis ter
PDF
Overview Sobre Varnish
ODP
Alta Performance de Aplicações Web em PHP - Nginx
PDF
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
PDF
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
PDF
NoSQL Livre
PPTX
NodeJS - Tutorial de forma simples e pratica.
PDF
Yaf - Um framework que roda sob uma extensão
PDF
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
PPTX
Escalando API's com NodeJS, Docker e RabbitMQ
PPTX
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
PPTX
Debug de cabo a rabo
PDF
PDF
Cache e Performance (in portuguese)
Alta perfomance de aplicações PHP com Nginx
Performance em Java
PHP com Docker
L'esprit de l'escalier
Dicas para Turbinar o servidor de Aplicações JBoss 7
Alta Performance de Aplicações PHP com Nginx
Nodejs - A performance que eu sempre quis ter
Overview Sobre Varnish
Alta Performance de Aplicações Web em PHP - Nginx
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
NoSQL Livre
NodeJS - Tutorial de forma simples e pratica.
Yaf - Um framework que roda sob uma extensão
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Escalando API's com NodeJS, Docker e RabbitMQ
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
Debug de cabo a rabo
Cache e Performance (in portuguese)
Anúncio

Destaque (12)

PDF
2013 gestion de programas europeos
DOCX
Gợi ý cực chi tiết 20 món cho bé bắt đầu ăn dặm kiểu nhật
PDF
Macroscop VMS (in Persian)
DOCX
Έντυπο αίτησης
PDF
New Doc 15
PDF
Certificazione dele Competenze. Simone Lampis
PPT
T8 chafla stalin ppt 3.4.
PPS
PPT
Movement for Liveable London Street Talks - Amy Aeron-Thomas 5th July 2011
PDF
Movement for Liveable London Street Talks - Alexander Baxevanis 6th December ...
PPTX
Movement for Liveable London Street Talks - Nick Searl, 2nd September 2014
PDF
Git and github - Verson Control for the Modern Developer
2013 gestion de programas europeos
Gợi ý cực chi tiết 20 món cho bé bắt đầu ăn dặm kiểu nhật
Macroscop VMS (in Persian)
Έντυπο αίτησης
New Doc 15
Certificazione dele Competenze. Simone Lampis
T8 chafla stalin ppt 3.4.
Movement for Liveable London Street Talks - Amy Aeron-Thomas 5th July 2011
Movement for Liveable London Street Talks - Alexander Baxevanis 6th December ...
Movement for Liveable London Street Talks - Nick Searl, 2nd September 2014
Git and github - Verson Control for the Modern Developer
Anúncio

Semelhante a De 1 a 1.000.00 de usuários (20)

PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
PPT
Cakephp - framework de desenvolvimento de aplicações Web em PHP
PDF
Desenvolvendo aplicações Web escaláveis
PDF
Web Seminário sobre Varnish+Nginx+Apache
PPT
Cake Php
PPTX
PHP 10 CodeIgniter
PDF
Curso de Performance and Tuning - Linux
PPSX
Cakephp 2.0 - O que mudou
PDF
Introdução à Servlets e JSP
PPTX
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
PDF
NoSQL com Zend Framework 2
PPTX
PDF
Big data para programadores convencionais
PDF
PDF
Como criar infraestrutura de sites para receber milhões de usuários?
PDF
Palestra DataFlow - II São Paulo Perl Workshop
PDF
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
PPT
Mongo Db - PHP Day Workshop
PDF
Programação Multiplataforma em Ambiente Web
PDF
Apache Flink a Quarta Geração do Big Data
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Desenvolvendo aplicações Web escaláveis
Web Seminário sobre Varnish+Nginx+Apache
Cake Php
PHP 10 CodeIgniter
Curso de Performance and Tuning - Linux
Cakephp 2.0 - O que mudou
Introdução à Servlets e JSP
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
NoSQL com Zend Framework 2
Big data para programadores convencionais
Como criar infraestrutura de sites para receber milhões de usuários?
Palestra DataFlow - II São Paulo Perl Workshop
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Mongo Db - PHP Day Workshop
Programação Multiplataforma em Ambiente Web
Apache Flink a Quarta Geração do Big Data

Último (6)

PDF
Slide - Uma visão geral C++ - Henricky Monteiro
PPTX
Programação Orientada a objetos em Java e C#
PPTX
WORD PARA INICIANTES E SIMPLES APREDIZADO COM WORD.pptx
PDF
ECMAScript 6 - Daniel Phillipe Gonçalves Menezes
PPT
apostila Servidores Web-camada de aplicação.ppt
PPTX
Algoritmos Estrutura de DADOS - AED - Aula Inicial C e Python
Slide - Uma visão geral C++ - Henricky Monteiro
Programação Orientada a objetos em Java e C#
WORD PARA INICIANTES E SIMPLES APREDIZADO COM WORD.pptx
ECMAScript 6 - Daniel Phillipe Gonçalves Menezes
apostila Servidores Web-camada de aplicação.ppt
Algoritmos Estrutura de DADOS - AED - Aula Inicial C e Python

De 1 a 1.000.00 de usuários