Giter Club home page Giter Club logo

escalando-aplica-es-web's Introduction

Escalando aplicações WEB

Levantamento de alguns pontos para se analisar para aumentar a performance da sua aplicação web.

  • Balanceando Carga - Multi-processos e Proxy Reverso
  • Pool de Conexões - Calculando Uso de Recursos
  • Estratégia de Caching - Economizando Recursos
  • Replicas - Bancos de Dados - Diferenças e quando usar
  • Jobs Assíncronos - Devolvendo Rápido
  • CDN - Assets mais Rápidos

Para a identificação muito desses pontos.

  • Observabilidade - Calculadoras e Monitores

- Monitoramento das aplicações para identificar pontos de gargalos, como páginas com muitos acessos que podem ser cacheados, tráfego lento em certas request, querys lentas, etc ... Por exemplo, use um Elasticsearch com Grafana para visualizar essas informações.

NextLevelWeek

Princípios para escalonar aplicações WEB:

  • Certifique-se de que o seu framework está aproveitando os núcleos do seu servidor. Linguagens de script como Javascript, PHP, Python e Ruby, são feitos pra rodar primariamente em um thread só. Caso ele rode apenas em um núcleo por vez, crie mais instâncias, afim de aproveitar a quantidade desejada de núcleos de processamento.

  • Faça um load balance entre as instâncias da sua aplicação em seu servidor web.

    NextLevelWeek

  • Deixei seu servidor web cuidando das requisições dos arquivos estáticos.

  • Use servidores CDN para armazenar seus arquivos estáticos e evitar consultas desnecessárias ao seu servidor. Servidores CDN tendem a ser mais performáticos ao entregarem esses arquivos e ainda estão em várias zonas de disponibilidade para encurtar a rota ao cliente.

  • Utilize cache nas áreas mais estratégicas. Em home, em páginas mais acessadas, por usuário.

  • Utilize de processamento asíncrono como sistemas de filas, Kafka, rabbitmq. Com alerta para o cliente usando emails, websocket, etc ...

BANCO DE DADOS:

  • Gerenciamento de requisições para o banco, pode usar uma interface pool de conexões. ex: pgbouncer.

    NextLevelWeek

  • Otimize suas querys nos banco de dados.
  • Crie réplicas do banco apenas para leitura.
  • Entenda a natureza da sua informação e atividade para saber qual os requisitos do para escolher o banco de dados que melhor desempenhe para sua situação.

Referências:

escalando-aplica-es-web's People

Contributors

edno2819 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.