O documento discute a automação do data center da empresa, incluindo o deploy de servidores, gerenciamento de configuração, administração centralizada, monitoração e integração utilizando ferramentas como Puppet, Cobbler, Collectd, Nagios, Func e Control Station.
5. 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.
7. “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)
11. 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.
12. 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.
14. 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 XMLRPC
o WEB (Cobbler Web)
17. 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 File
o Package
o Service
o User/Group
• Interdependência + Eventos (Triggers).
o Subscribe
o Notify
o OnlyIf/Unless
18. 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.
27. Collectd
• Performático e leve.
o C.
o Alta resolução/granularidade (segundos).
• Plugins.
o Apache, Nginx, Mysql, Bind, Varnish, RRD, Nagios, etc.
• Extensões
o Python
o 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.
31. Alarmes e eventos
• Nagios
– "The Industry OpenSource Standard"
– Conhecido por todos adminstradores.
• Interface amigável para administração.
– NagiosQL
• Alternativas
– Reconnoiter
– Zabbix
– Zenoss
– OpenNMS
33. 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.