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

FISL11 2010 - Automação de Datacenters

Embed Size (px)

DESCRIPTION

Palestra sobre o uso de ferramentas opensource na automação de datacenters .

Citation preview

Page 1: FISL11 2010 - Automação de Datacenters

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

Automação de Data Center

Page 2: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Cenário Atual

Page 4: FISL11 2010 - Automação de Datacenters

Cenário Atual

4 Sites POA SPO BSB RJ

Aproximadamente 1500 servidores.

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

Page 5: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Infraestrutura como código

Page 7: FISL11 2010 - Automação de Datacenters

“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: FISL11 2010 - Automação de Datacenters

Premissas e Princípios

Page 9: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Deploy de servidores

Page 11: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Fluxo de Instalação de

hardware

Manual / Local

Remoto / Automatizado

Page 14: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Cobbler Web

Page 16: FISL11 2010 - Automação de Datacenters

Gerenciamento de Configuração

Page 17: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Alternativas

CFEngine

Chef

Page 22: FISL11 2010 - Automação de Datacenters

Administração Centralizada

Page 23: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

We are buddies!!!

Page 25: FISL11 2010 - Automação de Datacenters

Alternativas

Capistrano

Fabric

MCollective

Page 26: FISL11 2010 - Automação de Datacenters

Monitoração

Page 27: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Agregação e visualização de dados

Page 29: FISL11 2010 - Automação de Datacenters

Collectd-web

Page 30: FISL11 2010 - Automação de Datacenters

Alternativas (coleta e visualização)

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

Page 31: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Integração

Page 33: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters

Control Station

Page 35: FISL11 2010 - Automação de Datacenters

Control Station

Page 36: FISL11 2010 - Automação de Datacenters

Control Station

Page 37: FISL11 2010 - Automação de Datacenters
Page 38: FISL11 2010 - Automação de Datacenters

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: FISL11 2010 - Automação de Datacenters
Page 40: FISL11 2010 - Automação de Datacenters