Django Docker e Amazon Container Services Nilo Menezes
- Slides: 18
Django, Docker e Amazon Container Services Nilo Menezes pythonnilo@gmail. com
Plano • Django • Docker • Amazon Container Services
Django • Web framework • Desenvolvimento rápido • Execução não é a coisa mais rápida do mundo
Django workers uwsgi db workers nginx
Docker • Gerenciador de containers • Containers: – VM-s leves – Tem sua própria rede – Sistema de arquivos próprio • Excelente para desenvolvimento • E para deploy
Django e Docker • Container para nginx • Container para uwsgi • Container para o banco de dados
Escalabilidade • Aumentar o número de instâncias em função da carga/volume de acesso • Idealmente sem modificar a aplicação • Entram os load balancers
Load Balancer • • • Balanceador de Carga Recebe conexões em nome de um serviço E as repassa para instancias reais Age como um proxy Auxilia a escalar os serviços, permitindo que mais instâncias sejam adicionadas de forma transparente
Balanceador de Carga workers db uwsgi Load balancer workers workers uwsgi nginx
Amazon • • Object Storage – s 3 RDS – Relational Database Services EC 2 – Elastic Computer Cloud ECS – EC 2 Container Services ECR – EC 2 Container Registry Route 53 ELB – Elastic Load Balancer
Amazon workers db (RDS) uwsgi workers uwsgi Load balancer (ELB) workers nginx
ECS • Gerencia um cluster capaz de rodar instâncias de serviços • Configurável pela web ou via api • Reutiliza a configuração do docker • Permite parar e iniciar os serviços progressivamente • Fácil de alterar o número de instâncias
ECS • • Toda configuração nos containers Máquinas do cluster rodam apenas containers Gerencia onde cada container vai rodar Registra novas instâncias no ELB
ECS Uwsgi +workers nginx Load balancer (ELB) db (RDS) Load balancer (ELB) Uwsgi +workers nginx
ECS • Com vários níveis de ELB, os serviços podem ser escalados independentemente • Várias instâncias permitem o deploy de novas versões, sem parar a versão corrente • Novas máquinas podem ser acrescentadas ao cluster facilmente
Gargalos • Banco de dados! Difícieis de escalar! • Soluções: – Read replicas – modificam a aplicação – Sharding – modificam a aplicação – No. SQL – modificam a aplicação
A observar • Não abusar de templates • Manter o código enxuto • Mover as tarefas de longa duração para uma fila de mensagens (celery + rabbitmq) • Usar cache onde for possível • Nunca servir arquivos estáticos pelo Django • Frameworks com suporte a Amazon Lambda (Zappa, Chalice, etc)
Obrigado
- Hauled container system and stationary container system
- Nilo holzchuh
- Pases del rio nilo
- Le piene del nilo scuola primaria
- Del nilo
- Le piene del nilo
- Plataforma nilo peçanha
- Egipto kokapena
- Rio nilo onde fica
- Le piene del nilo scuola primaria
- Nilo fiume cartina
- Ashley niccole torrent download
- Egito
- Python mtv
- Caio menezes
- Django orm
- Antisocial behaviour
- Divaldo franco incorporando bezerra de menezes
- Load balancer django