SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Bruno Marcondes <brmarcondes@ig.com> || @bmarcondes
Eduardo S. Scarpellini <escarpellini@ig.com> || @escarpellini
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.
Cenário Atual
Cenário Atual

4 Sites

POA

SPO

BSB

RJ

Aproximadamente 1500 servidores.

Linux (CentOS / RedHat), Apache, PHP, Varnish,
Java, Python, MySQL.
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.
Infraestrutura como código
“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)
Premissas e Princípios
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".
Deploy de servidores
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.
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.
Fluxo de
Instalação de
hardware
Manual / Local
Remoto / Automatizado
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)
Cobbler Web
Gerenciamento de Configuração
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
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.
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
Puppet – iG
class 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,
}
}
Alternativas
CFEngine
Chef
Administração Centralizada
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
We are buddies!!!
Alternativas
Capistrano
Fabric
MCollective
Monitoração
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.
Agregação e visualização de dados
Collectd-web
Alternativas (coleta e visualização)
• Mon
• Munin
• Cacti
• Graphite
• Ganglia
• Visage
Alarmes e eventos
• Nagios
– "The Industry OpenSource Standard"
– Conhecido por todos adminstradores.
• Interface amigável para administração.
– NagiosQL
• Alternativas
– Reconnoiter
– Zabbix
– Zenoss
– OpenNMS
Integração
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.
Control Station
Control Station
Control Station
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
Automação de Data Center
Automação de Data Center

Mais conteúdo relacionado

Mais procurados

JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015Adriano Schmidt
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMRodrigo Zaccara
 
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoYaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoThiago Paes
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbThiago Santos
 
Quando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoQuando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoIvan Rosolen
 
Kerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceKerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceMarcelo Fleury
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppetpericles_junior
 
2010 09-22 infra rn security meeting - palestra firewalls opensource
2010 09-22 infra rn security meeting - palestra firewalls opensource2010 09-22 infra rn security meeting - palestra firewalls opensource
2010 09-22 infra rn security meeting - palestra firewalls opensourceEduardo Coelho
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsNuno Paz
 
HTTP, Requisição e Resposta
HTTP, Requisição e RespostaHTTP, Requisição e Resposta
HTTP, Requisição e RespostaThiago Rondon
 

Mais procurados (19)

JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
Samba4+debian8
Samba4+debian8Samba4+debian8
Samba4+debian8
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoYaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensão
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper Usb
 
Quando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoQuando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucesso
 
Kerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSourceKerberos e OpenLDAP: Ambiente SSO OpenSource
Kerberos e OpenLDAP: Ambiente SSO OpenSource
 
Zabbix
ZabbixZabbix
Zabbix
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppet
 
Apache
ApacheApache
Apache
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
 
2010 09-22 infra rn security meeting - palestra firewalls opensource
2010 09-22 infra rn security meeting - palestra firewalls opensource2010 09-22 infra rn security meeting - palestra firewalls opensource
2010 09-22 infra rn security meeting - palestra firewalls opensource
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.js
 
Vamos conversar sobre cache
Vamos conversar sobre cacheVamos conversar sobre cache
Vamos conversar sobre cache
 
Node JS - Parte 2
Node JS - Parte 2Node JS - Parte 2
Node JS - Parte 2
 
HTTP, Requisição e Resposta
HTTP, Requisição e RespostaHTTP, Requisição e Resposta
HTTP, Requisição e Resposta
 

Semelhante a Automação de Data Center

TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters) iG - Internet Group do Brasil S/A
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Jeronimo Zucco
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterWilson Lopes
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosEduardo Legatti
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiRicardo Martins ☁
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e MonitorizaçãoSAPO Sessions
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppetElton Simões
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoArtur Felipe Sousa
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server EmbratelAlex Hübner
 
O Mundo Do Mainframe
O Mundo Do MainframeO Mundo Do Mainframe
O Mundo Do Mainframelui_fp
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasLeonardo Pedroso Costa
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxThiago Paes
 

Semelhante a Automação de Data Center (20)

TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
 
Python no iG
Python no iGPython no iG
Python no iG
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de Datacenter
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - Nagios
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - Bemobi
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e Monitorização
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppet
 
Hardening Unix
Hardening UnixHardening Unix
Hardening Unix
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produção
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
O Mundo Do Mainframe
O Mundo Do MainframeO Mundo Do Mainframe
O Mundo Do Mainframe
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 

Automação de Data Center