Author
phamque
View
242
Download
0
Embed Size (px)
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime
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
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
Bruno Almeida
• Fundador e COO da Rivendel Tecnologia
• Cloud desde 2010
• Cultura DevOps implantada em 80+ clientes
Vivendo a cultura
SysAdmin Tools 1999
Write-only
DevOps antes de Cloud
• Granularidade menor de serviços e aplicações
• Menos deployments anuais
• Quantidade fixa de servidores
DevOps em Cloud
• Muitos serviços e aplicações
• Elasticidade
• Arquitetura diversificada
DevOps e Agile
• DevOps dentro dos times
• Todos em contato com a infraestrutura
• Deployments semanais ou até diários
Redefinindo SysAdmin
• Menos tempo com equipamentos, mais com aplicações
• Habilidades de Desenvolvimento
• Intenso foco em monitoramento, segurança, tolerância a falhas, tuning.
Integração Contínua
Integração Contínua
• Componentes integrados a cada commit
• Testes unitários, de integração, regressão
• Eliminação de etapas manuais
Continuous Delivery/Deployment
Deployment Pipelines
Propondo um processo e ferramentas
Stack de Continuous Delivery
• IaaS
• PaaS
• Servidor de containers
• Nuvem privada com infra on-premises
• Topologias multi-datacenter
• Balanceador suportando elasticidade
• Serviços gerenciados de cache, bases relacionais e não-relacionais
• CDN e serviço de DNS
• Automação de ambientes locais multi-plataforma
• Ambientes locais montados de forma semelhante aos outros ambientes
• Configuração versionável
• Implementação dos deployment pipelines
• Configuração de chaves de deployment
• Deployment pipelines diferentes por ambiente
• Processos automaticamente disparados por pushes em diferentes branches
• 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
• 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.
• 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
• 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
• 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
• 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
+
Blue-Green Deployments
Stacks inteiras em Produção simultaneamente Chaveamento em poucos segundos
Alguém tem medo da Black Friday??
• 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
• 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
• 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.
Faturamento 10% acima da meta otimista, 35% acima da meta mínima.