Nesta palestra do QCon Rio 2015, contamos como criar uma infraestrutura em nuvem com práticas DevOps e ter sucesso na Black Friday vendendo milhões. Falamos de AWS, Chef, Puppet, Ansible, Jenkins, Blue/Green deployments, deployment pipelines e mais algumas dicas para ter sucesso no grande dia do varejo.
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime
1. DevOps, Chef, Puppet, Ansible e como vender
milhões na Black Friday com 100% de uptime
2. Sobre a Rivendel
• Fundada em Maio/2013
• Especialistas em Cloud/DevOps
• Empresa mais qualificada em Amazon Web Services e
Microsoft Azure do Brasil
• 100+ clientes atendidos em 2 anos e 3 meses
3. Bruno Pereira
• Fundador e CEO da Rivendel Tecnologia
• Trabalha com métodos ágeis desde 2007
• Cloud desde 2009
• Lean Startups/Innovation desde 2010: 60+
startups
4. Bruno Almeida
• Fundador e COO da Rivendel Tecnologia
• Cloud desde 2010
• Cultura DevOps implantada em 80+ clientes
7. DevOps antes de Cloud
• Granularidade menor de serviços e aplicações
• Menos deployments anuais
• Quantidade fixa de servidores
8. DevOps em Cloud
• Muitos serviços e aplicações
• Elasticidade
• Arquitetura diversificada
9. DevOps e Agile
• DevOps dentro dos times
• Todos em contato com a infraestrutura
• Deployments semanais ou até diários
10. Redefinindo SysAdmin
• Menos tempo com equipamentos,
mais com aplicações
• Habilidades de Desenvolvimento
• Intenso foco em monitoramento,
segurança, tolerância a falhas,
tuning.
17. • IaaS
• PaaS
• Servidor de containers
• Nuvem privada com infra on-premises
18. • Topologias multi-datacenter
• Balanceador suportando elasticidade
• Serviços gerenciados de cache, bases relacionais e não-
relacionais
• CDN e serviço de DNS
19. • Automação de ambientes locais multi-plataforma
• Ambientes locais montados de forma semelhante aos outros
ambientes
• Configuração versionável
20. • Implementação dos deployment pipelines
• Configuração de chaves de deployment
• Deployment pipelines diferentes por ambiente
• Processos automaticamente disparados por pushes em
diferentes branches
21. • Principais: Puppet, Chef e Ansible
• Gerenciamento fino de componentes, versões, dependências
• Provisionamento do ambiente de forma versionada e
descritiva, em vez de imperativa.
Provisionadores
22. • Possibilidade de construir stacks
inteiras: balanceadores, máquinas
virtuais, serviços gerenciados,
bases de dados, entre outros.
Provisionadores
• Configuração legível de
segurança, monitoramento,
propriedades de cada
ambiente.
23. • Modelo client-server/pull geralmente, com agente
embarcado. Client pega atualizações do servidor
• DSL própria. Configurações feitas em arquivos MANIFEST
• Parâmetros definidos no user-data para que a máquina
consiga se provisionar no boot
• Comumente usado para provisionar dentro do sistema
operacional, mas não provisionando componentes PaaS
24. • Modelo push com ssh, sem agentes, sem master
• Escrito em Python, usa configs YAML: Ansible Playbooks
• Sem dependências nos endpoints
• Parâmetros definidos para um grupo de hosts
• Comumente usado para provisionar dentro do sistema
operacional, mas não provisionando componentes PaaS
25. • Modelo client-server/pull, com agentes nos hosts
• Cookbooks em Ruby, versionados em repositórios Git
• Parâmetros definidos na receita ou também em user-data
• Comumente usado para provisionar dentro do sistema
operacional, mas não provisionando componentes PaaS
26. • Integração automática com componentes AWS
• Faz o papel do Chef Server, exigindo apenas a configuração
de receitas chef-solo
• Configuração automática de Auto-Scaling
• Agendamento e controle fino de deployments
+
30. • Vários níveis de cache, o máximo possível
• Arquitetura elástica, permitindo aumento e redução da
capacidade de acordo com a demanda.
• Uso extensivo de mensageria e processamento assíncrono
Receita pra ser feliz na Black Friday
• Testes de carga
• Refactoring/ajustes
• Testes de carga
• Refactoring/ajustes
Já falei de testes de carga??
• Redundância e tolerância a falhas
31. • Migração de Datacenter físico para AWS, concluída 5
semanas antes do BF.
• Upload + Cache de estáticos com S3 + Cloudfront.
• Topologia multi-zona com autoscaling para todas as aplicações
• Proxy reverso com Varnish
• Ambiente totalmente em Virtual Private Cloud
Black Friday 2014
32. • Bases relacionais com RDS.
• Continuous Delivery/Deployment com OpsWorks.
Blue/Green em algumas aplicações.
Black Friday 2014
• Clusters memcached e Redis com Elasticache
• Cluster MongoDB com replica-set
• Faturamento 10% acima da meta otimista, 35% acima da
meta mínima.