automação de data center

40
Bruno Marcondes <[email protected]> || @bmarcondes Eduardo S. Scarpellini <[email protected]> || @escarpellini Automação de Data Center

Upload: eduardo-scarpellini

Post on 09-Feb-2017

96 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Automação de Data Center

Bruno Marcondes <[email protected]> || @bmarcondesEduardo S. Scarpellini <[email protected]> || @escarpellini

Automação de Data Center

Page 2: Automação de Data Center

Agenda

Ambiente/Cenário Atual. Premissas e princípios. Deploy de servidores. Gerenciamento de configuração. Administração centralizada. Monitoração. Integração.

Page 3: Automação de Data Center

Cenário Atual

Page 4: Automação de Data Center

Cenário Atual

4 Sites POA SPO BSB RJ

Aproximadamente 1500 servidores.

Linux (CentOS / RedHat), Apache, PHP, Varnish, Java, Python, MySQL.

Page 5: Automação de Data Center

Sem automação

Fluxos e processos custosos.

Processos manuais de configuração.

Contabilização e controle dos recursos alocados feitos de forma manual.

Difícil manutenção dos agentes/configurações de monitoração.

Page 6: Automação de Data Center

Infraestrutura como código

Page 7: Automação de Data Center

“Possibilita a reconstrução do negócio a partir de um repositório de códigos-

fonte, backups da aplicação e recursos físicos”

(Adam Jacobs - Opscode)

Page 8: Automação de Data Center

Premissas e Princípios

Page 9: Automação de Data Center

Premissas e Princípios

Segurança.

Convenção sobre configuração - padronização/simplicidade. Agilidade. Automatização.

Centralização de configurações, logs, eventos. Auditoria (accounting, tracking).

[near-]Realtime data ("live" inventory information, gráficos, alarmes).

Reaproveitamento de código/projetos (open-source). Evitar o "not invented here syndrome".

Page 10: Automação de Data Center

Deploy de servidores

Page 11: Automação de Data Center

O início de um novo DataCenter

• Deploy da primeira máquina (servidor de instalação)

• Instalação manual do SO.

• Script em Python utilizando fabric para deploy do puppet + manifests.

– Puppet é o responsável pelo seu auto-deploy (puppetmasterd) + servidor BOOTP, TFTP, etc.

Page 12: Automação de Data Center

Inventário de hardware

Distribuição diskless (PXE+NFS). CentOS 5.5

Coleta de informações via lshw. POST de dados para fila (RabbitMQ). Consumidor da fila para persistência em base central

(MySQL). Checagem de integridade da informação, se esta já existir

previamente.

Hardware disponível para consulta ou instalação. [re]boot do servidor via IPMI e instalação com sistema

operacional definitivo.

Page 13: Automação de Data Center

Fluxo de Instalação de

hardware

Manual / Local

Remoto / Automatizado

Page 14: Automação de Data Center

Cobbler• Permite a rápida configuração de um ambiente de instalação via rede

(provisionamento de servidores). • Garante a harmonia de:

o DHCP/BOOTP (templates). o TFTP + syslinux (templates).o Kickstart (templates).o Repositórios de pacotes.

• Suporte a:

o IPMI (power management: DRAC, iLO, etc).o Triggers (integração com webservices)o Diversas distribuições, versões e arquiteturas de GNU/Linux.

• Interfaces:

o CLI (command line)o XMLRPCo WEB (Cobbler Web)

Page 15: Automação de Data Center

Cobbler Web

Page 16: Automação de Data Center

Gerenciamento de Configuração

Page 17: Automação de Data Center

Puppet

• Ruby.• Modular. • XMLRPC/REST (+SSL).

• Meta-linguagem para definição de manifests/classes.

o Acesso a funcões/código externos (ruby).o Herança / especialização de classes.

• Classes compostas por recursos abstratos (domínio do cliente).

o Fileo Packageo Serviceo User/Group

• Interdependência + Eventos (Triggers).o Subscribeo Notifyo OnlyIf/Unless

Page 18: Automação de Data Center

Puppet - iG

• Classificação de nós externa. o Baseada em ambiente+pool+hostname.o Integrado ao DNS (CNAME's).

•Funções que facilitam a criação de novos manifests/classes (padrão).

• Configurações centralizadas e versionadas (Mercurial).–Aplicaveis a hosts, pools/farms ou ambientes

inteiros. Templates para configurações que demandam váriaveis. Toda classe é acompanhada de um recorte de regras

específicas de firewall.

Page 19: Automação de Data Center

Puppet - iG

• DNS (convenção):

• A: <asset-id>.tld–hardware4494.tld

• CNAME: <pool>-<id>.[env].tld–blig-ws-1.prod.tld (prod).–home-cache-2.adm.qa.tld (QA).

• Puppet (classes + arquivos):

• /env/pool/hostname/fs-tree– /all/etc/hosts– /prod/blig-ws/etc/hosts– /prod/blig-ws/blig-ws-8/etc/hosts

Page 20: Automação de Data Center

Puppet – iGclass proxy_server_squid {

package { "squid": ensure => installed; } file { "/etc/squid/squid.conf": source => reposrc(“/etc/squid/squid.conf", $fqdn) notify => Service["squid"], } exec { "/usr/sbin/squid -z": unless => "/usr/sbin/squid check" } service { "squid": ensure => running, enable => true, }}

Page 21: Automação de Data Center

Alternativas

CFEngine

Chef

Page 22: Automação de Data Center

Administração Centralizada

Page 23: Automação de Data Center

Func

• Execução de módulos/funções de maneira massiva (ad hoc).o overlord => minions.

• XMLRPC (+SSL) • Arquitetura modular (fácil desenvolvimento).

o Ex.: command, jboss, rpm, iptables, process, ping, etc. • Interfaces

o Python API import func.overloard.client

o CLI func 'home-ws-*.tld' call command run 'httpd -V' func 'blig-ws-[123].tld' call hardware info

Page 24: Automação de Data Center

We are buddies!!!

Page 25: Automação de Data Center

Alternativas

Capistrano

Fabric

MCollective

Page 26: Automação de Data Center

Monitoração

Page 27: Automação de Data Center

Collectd • Performático e leve.

o C.o Alta resolução/granularidade (segundos).

• Plugins.o Apache, Nginx, Mysql, Bind, Varnish, RRD, Nagios, etc.

• Extensõeso Pythono Java.o Perl. o Bash (exec).

• Network o Push de dados para o servidor (passivo). o Multicast (auto-discovery).

o Visualização.–RRD plugin + collectd-web.

Page 28: Automação de Data Center

Agregação e visualização de dados

Page 29: Automação de Data Center

Collectd-web

Page 30: Automação de Data Center

Alternativas (coleta e visualização)

• Mon• Munin• Cacti• Graphite• Ganglia• Visage

Page 31: Automação de Data Center

Alarmes e eventos

• Nagios

– "The Industry OpenSource Standard"

– Conhecido por todos adminstradores.

• Interface amigável para administração.

– NagiosQL

• Alternativas

– Reconnoiter

– Zabbix

– Zenoss

– OpenNMS

Page 32: Automação de Data Center

Integração

Page 33: Automação de Data Center

Control Station Dashboard unificado para as ferramentas citadas.

– Python/Django + MySQL + RabbitMQ.

• Facilidade/Plugins/Reaproveitamento/Performance.

Ponto único para as informações relevantes.

– Dados de inventário.

– WorkFlows / Requisições.

– CRUDs.

– Mashup (gráficos).

– Visões consolidadas/alto-nível para sites, serviços e pools.

Webservices (REST) para integração entre serviços de backend.

Page 34: Automação de Data Center

Control Station

Page 35: Automação de Data Center

Control Station

Page 36: Automação de Data Center

Control Station

Page 37: Automação de Data Center
Page 38: Automação de Data Center

Referências http://fedorahosted.org/cobbler/ http://www.puppetlabs.com/ http://www.cfengine.org/ http://www.opscode.com/ http://fedorahosted.org/func/ http://www.rabbitmq.com/ http://www.djangoproject.com/ http://docs.fabfile.org/ http://www.capify.org/ http://code.google.com/p/mcollective/ http://en.oreilly.com/velocity

Page 39: Automação de Data Center
Page 40: Automação de Data Center