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.
bruno.pereira@rivendel.com.br
bruno.almeida@rivendel.com.br
Obrigado!

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 • Fundadore CEO da Rivendel Tecnologia • Trabalha com métodos ágeis desde 2007 • Cloud desde 2009 • Lean Startups/Innovation desde 2010: 60+ startups
  • 4.
    Bruno Almeida • Fundadore COO da Rivendel Tecnologia • Cloud desde 2010 • Cultura DevOps implantada em 80+ clientes
  • 5.
  • 6.
  • 7.
    DevOps antes deCloud • 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 • Menostempo com equipamentos, mais com aplicações • Habilidades de Desenvolvimento • Intenso foco em monitoramento, segurança, tolerância a falhas, tuning.
  • 11.
  • 12.
    Integração Contínua • Componentesintegrados a cada commit • Testes unitários, de integração, regressão • Eliminação de etapas manuais
  • 13.
  • 14.
  • 15.
    Propondo um processoe ferramentas
  • 16.
  • 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 deambientes locais multi-plataforma • Ambientes locais montados de forma semelhante aos outros ambientes • Configuração versionável
  • 20.
    • Implementação dosdeployment 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 deconstruir 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/pullgeralmente, 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 pushcom 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áticacom 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 +
  • 27.
    Blue-Green Deployments Stacks inteirasem Produção simultaneamente Chaveamento em poucos segundos
  • 29.
    Alguém tem medoda Black Friday??
  • 30.
    • Vários níveisde 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 deDatacenter 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 relacionaiscom 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.
  • 33.
    Faturamento 10% acima dameta otimista, 35% acima da meta mínima.
  • 35.