DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime

Preview:

Citation preview

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!

Recommended