Python no iG
      (Automação de Data Centers)




Bruno Marcondes <brmarcondes@ig.com> || @bmarcondes
Eduardo S. Scarpell...
O início de um novo Data Center

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

• Instalação manual do SO.

• Scri...
Inventário de hardware

    Distribuição diskless (PXE+NFS).


    Coleta de informações via lshw (XML).
      
       ...
Fluxo de Instalação
   de hardware



                             Manual / Local

                      Remoto / Automati...
Cobbler
• Permite a rápida confguração de um ambiente de instalação via rede
  (provisionamento de servidores).

• Garante...
Gerenciamento de Confguração
Puppet

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

• Meta-linguagem para defnição de manifests/classes.
  o Acesso a funcõe...
Administração Centralizada
Func


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

• Arquitetura...
Monitoração
Collectd
• Performátco e leve.
   o C.
   o Alta resolução/granularidade (segundos).
• Plugins.
   o Apache, Nginx, Mysql,...
Integração
Control Staton

    Dashboard unifcado para as ferramentas citadas.
        – Python/Django + MySQL + RabbitMQ.
         ...
Control Staton
Control Staton
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
Upcoming SlideShare
Loading in …5
×

TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)

1,677 views
1,654 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,677
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)

  1. 1. Python no iG (Automação de Data Centers) Bruno Marcondes <brmarcondes@ig.com> || @bmarcondes Eduardo S. Scarpellini <escarpellini@ig.com> || @escarpellini
  2. 2. O início de um novo Data Center • Deploy da primeira máquina (servidor de instalação) • Instalação manual do SO. • Script em Python utlizando fabric para deploy do puppet + manifests. – Puppet é o responsável pelo seu auto-deploy (puppetmasterd) + servidor BOOTP, TFTP, etc.
  3. 3. Inventário de hardware  Distribuição diskless (PXE+NFS).  Coleta de informações via lshw (XML).  POST de dados para fla (RabbitMQ).  Consumidor da fla para persistência em base central (MySQL).  Checagem de integridade da informação, se esta já existr previamente.  Hardware disponível para consulta ou instalação.  [re]boot do servidor via IPMI e instalação com sistema operacional defnitvo.
  4. 4. Fluxo de Instalação de hardware Manual / Local Remoto / Automatizado
  5. 5. Cobbler • Permite a rápida confguraçã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)
  6. 6. Gerenciamento de Confguração
  7. 7. Puppet • Ruby. • Modular. • XMLRPC/REST (+SSL). • Meta-linguagem para defniçã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). • Interdependência + Eventos (Triggers). • iG: • nodeclassifer.py • Mercurial + Python Hooks
  8. 8. Administração Centralizada
  9. 9. 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 'htpd -V'  func 'blig-ws-[123].tld' call hardware info
  10. 10. Monitoração
  11. 11. Collectd • Performátco 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 Multcast (auto-discovery). o Visualização. – RRD plugin + collectd-web.
  12. 12. Integração
  13. 13. Control Staton  Dashboard unifcado 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áfcos). – Visões consolidadas/alto-nível para sites, serviços e pools.  Webservices (REST) para integração entre serviços de backend.
  14. 14. Control Staton
  15. 15. Control Staton

×