CONSEGI 2011Assuma o controle do seu   parque virtualizado                               Palestrantes:              Guto C...
Já teve a sensação de estar perdendo o controle do seu ambiente virtualizado?        Foto tirada do site sysadminday.com p...
O que se busca com a virtualização?●   Melhor consumo de energia●   Administração Centralizada●   Uso eficiente dos recurs...
Quais os problemas de percurso?●   Crescimento sem Padronização●   Crescimento sem Monitoramento●   Crescimento sem Docume...
CASEEBC
Necessidades do cliente●   Isolamento de ambientes e serviços em vms●   Facilidade de migração entre sites em uma mesma ci...
DesafiosCentralização da administração e configuração●Padronização do ambiente●    ●   Sistemas operacionais    ●   Ferram...
Decisões Importantes●   Utilização de tecnologia livre ou open-source●   Internalizar suporte da solução●   Utilização coe...
Caso de Estudo       ●   EBC - Empresa Brasil de           Comunicação       ●   Cerca de 160 máquinas virtuais           ...
Especialistas EnvolvidosEquipe TecnisysJosé Augusto Carvalho @gutocarvalhoDaniel Sobral @dcsobralJefferson Santos @jalexan...
VIRTUALIZAÇÃO
TerminologiaVirtualização consiste em executar váriossistemas operacionais em uma mesma máquina.Cluster Node = Máquina Fís...
Nossa escolha●   Produto criado pelo Google: GANETI●   Case interessante de uso interno no Google●   Facilidade de impleme...
Visão Geral da FerramentaGerenciador Open Source           paravirtualização em ClusterCombina virtualização e replicação ...
Estrutura Lógica do Ganeti●   Cluster●   Nó mestre●   Nós●   Instâncias
Migração entre Nodes
Replicação●   Replicação de dados em tempo real via DRBD●   Node secundário assume em caso de falha
Administração CentralizadaNa infraestrutura XEN a administração édescentralizada, precisávamos entrar em cadamáquina para ...
Visão dos recursos disponíveisUsando apenas XEN, para criar máquinasprecisávamos entrar em cada servidor paraavaliar os re...
Ferramenta Sólida●   Não depende de hardware específico●   Escala linearmente●   Redundância N+1
AdministrandoAté agora tudo bem, mas e a administração comofunciona, será que é realmente descomplicado e                 ...
Operações em seu cluster via CLI1. Criando um cluster (resumidamente)# gnt-cluster init gnt-node01.empresa2. Adicionando n...
Comandos básicos4. desligando# gnt-instance shutdown maquina5. ligando# gnt-instance startup maquina6. reiniciando# gnt-in...
Comandos básicos9. Movendo máquinas entre nós# gnt-instance move -n gnt-node05 maquina10. Exportando instancia# gnt-backup...
Comandos Básicos14. Montando discos localmente para manutenções# gnt-instance activate-disks maquina# ssh gnt-nodeXX# kpar...
Alterando recursos de VMs1. Adicionando mais memoria# gnt-instance modify -B memory=4G maquina2. Adicionando mais processa...
Hooks●   Execução de comandos na instalação da instância●   Criação de Perfis de Instalação●   Padronização de configuraçõ...
Ganhos com essa tecnologiaCliente●   Uso coerente dos recursos de hardware/rede●   Investimento em conhecimento da equipe●...
Limitações●   Uso de Múltiplos volumes – storage area    network (SAN)●   SNAPSHOTs●   Clonagem de máquinas●   DRDB e dese...
GanetI Web Manager
Ganeti Web Manager
GANETI: Web Manager
GANETI: Web Manager
GANETI: Web Manager
ComparandoInstalação de Máquina Física – Debian LennyTempo de criação de maquina virtual - 40 minutosTempo de configuração...
Dicas importantes●   Atenção com DNS, dependência grande para criar a    VMs●   Uso e abuse de Activate Disks para montar ...
Expandindo os HooksSabendo que os hooks só podem ser utilizadosinstalação das VMS, como ir além dos hooks...?Como podemos ...
Gestão de Configuração
Gestão de Configuração●   Facilitar o trabalho de administração de    servidores●   Padronizar as configurações utilizadas...
Exemplos de Itens de Configuração●   Usuários●   Grupos●   Arquivos de Configuração●   Pacotes instalados●   Execução peri...
Nossa Escolha       ●   Puppet (2005)           ●   Ruby, GPL           ●   AIX, BSD, HP-UX,               Linux, MaxOS,  ...
PUPPET: Funcionamento●   Tipos:                           ●   Passos:    ●   Autônomo                         ●   Cliente ...
Puppet: Fácil Aprendizado               Sintaxe Declarativa●   Pacote ntpdate     ●   Garantir que esteja instalado●   Cro...
Puppet: Fácil Aprendizado          Independente de Plataformac l as s edi t or {       $v i m = $oper at i ngs y s t em ? ...
Puppet: Auto documentadoclass linux-server {   # Include classes common to all linux servers   include localmta   include ...
Puppet: Controle de Versão e                 Rollback#gi t l ogc om i t 263b2239cc f f 746f 345c448d723f 4f f 52d3f 8c0f  ...
Puppet: Altamente Flexívelnode " el ei c oes c onc ur v m 01" {    i nc l ude l i nux - s er v er    j bos s : : app {  c ...
Puppet: Expansível                           def i ne pgcl i ent ( $ens ur e = pr esent ,●   Puppet                 $i p =...
Puppet: Problemas●   Mensagens de erro ruins●   Servidor default nao segura mais de 20    máquinas    ●   Com Apache/Passe...
Frontends – Puppet Dashboard
Frontends – The Foreman●   Visualiza    ●   Inventário (fatos)    ●   Relatório    ●   Configurações●   Provisiona servido...
PUPPET + GANETIOnde podemos chegar com essa combinação?
Comparação FinalMáquina Física – Debian Lenny + LAMP ●   Tempo de instalação de maquina física – 40 minutos sem atualizaçõ...
ConclusãoO Ganeti é uma alternativa viável, modernaestável, largamente utilizado no google, emfranco desenvolvimento com u...
Informações dos projetosSite/Blog                         Site/BlogHttp://ww.puppetlabs.com          http://code.google.co...
Contato, Dúvidas, PerguntasGuto Carvalho:                     Daniel Sobralgutocarvalho@gmail.com             dcsobral@gma...
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
Upcoming SlideShare
Loading in...5
×

Consegi 2011: Ganeti + Puppet

1,716

Published on

Palestra que aborda virtualização e gestão de configurações, apresentada por @gutocarvalho e @dcosbral

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

No Downloads
Views
Total Views
1,716
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
39
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Consegi 2011: Ganeti + Puppet"

  1. 1. CONSEGI 2011Assuma o controle do seu parque virtualizado Palestrantes: Guto Carvalho @gutocarvalho Daniel Sobral @dcsobral
  2. 2. Já teve a sensação de estar perdendo o controle do seu ambiente virtualizado? Foto tirada do site sysadminday.com por Frank Schicksal
  3. 3. O que se busca com a virtualização?● Melhor consumo de energia● Administração Centralizada● Uso eficiente dos recursos de hardware● Agilidade na instalação de novos ambientes● Isolamento de ambientes● Flexibilidade para ajustar recursos das Vms ● Memória ● Processamento ● Armazenamento ● Rede● Maior controle do ambiente● Consolidação de seu ambiente físico● Aumentar disponibilidade do ambiente
  4. 4. Quais os problemas de percurso?● Crescimento sem Padronização● Crescimento sem Monitoramento● Crescimento sem Documentação● Tecnologias híbridas que combinam softwares proprietários e livres que tem dificuldades para funcionarem em conjunto e que demandam manutenções e ajustes constantes.● Ambiente com grande complexidade de manutenção
  5. 5. CASEEBC
  6. 6. Necessidades do cliente● Isolamento de ambientes e serviços em vms● Facilidade de migração entre sites em uma mesma cidade● Ter maior estabilidade nos serviços oferecidos● Ter maior disponibilidade● Curta curva de aprendizagem – na tecnologia de virtualização - para a equipe de administradores.● CPDs geograficamente separados, permitindo movimentar máquinas entre eles de forma transparente.● Otimizar o uso de armazenamento em disco
  7. 7. DesafiosCentralização da administração e configuração●Padronização do ambiente● ● Sistemas operacionais ● Ferramentas de administração ● Configuração dos serviços●Rápida implantação e implementação desoluçõesConversão de infraestrutura●Ter uma manutenção descomplicada●
  8. 8. Decisões Importantes● Utilização de tecnologia livre ou open-source● Internalizar suporte da solução● Utilização coerente de recursos e orçamento● Investimento em conhecimento e equipe● Investimento financeiro em hardware● Investimento financeiro mínimo em software● Renovação do parque de servidores
  9. 9. Caso de Estudo ● EBC - Empresa Brasil de Comunicação ● Cerca de 160 máquinas virtuais rodando em um cluster com 15 nós ● Gestão e distribuição de configurações ● Administração compartilhada de 4 DevOps ● Automação de serviços e procedimentos ● Monitoramento robusto
  10. 10. Especialistas EnvolvidosEquipe TecnisysJosé Augusto Carvalho @gutocarvalhoDaniel Sobral @dcsobralJefferson Santos @jalexandre0Equipe EBCTadeu Ibns N. Rocha – tadeuibns@gmail.comJosé Eufrásio @coredumpNieson Santos – nieson.santos@gmail.com
  11. 11. VIRTUALIZAÇÃO
  12. 12. TerminologiaVirtualização consiste em executar váriossistemas operacionais em uma mesma máquina.Cluster Node = Máquina FísicaInstance = Máquina Virtual
  13. 13. Nossa escolha● Produto criado pelo Google: GANETI● Case interessante de uso interno no Google● Facilidade de implementação● Utilização de hypervisors livres XEN e KVM● Funciona em modo Cluster● Permite migração de máquinas entre nós do cluster● Administração simplificada via CLI ou WEB (frontends)● Boa documentação, desenvolvimento ativo e comunidade crescente
  14. 14. Visão Geral da FerramentaGerenciador Open Source paravirtualização em ClusterCombina virtualização e replicação dedisco em tempo realOferece uma aplicação de altadisponibilidade promovendo umamelhor utilização dos recursos do seudatacenter.É utilizado pelo Google internamente.
  15. 15. Estrutura Lógica do Ganeti● Cluster● Nó mestre● Nós● Instâncias
  16. 16. Migração entre Nodes
  17. 17. Replicação● Replicação de dados em tempo real via DRBD● Node secundário assume em caso de falha
  18. 18. Administração CentralizadaNa infraestrutura XEN a administração édescentralizada, precisávamos entrar em cadamáquina para fazer manutenções nas VM.Hoje fazemos isto de forma centralizada nomaster node.
  19. 19. Visão dos recursos disponíveisUsando apenas XEN, para criar máquinasprecisávamos entrar em cada servidor paraavaliar os recursos disponíveis e escolher umservidor ideal para instalar o serviço.Com o Ganeti temos um visão completa de todo ocluster a partir do nó Master.
  20. 20. Ferramenta Sólida● Não depende de hardware específico● Escala linearmente● Redundância N+1
  21. 21. AdministrandoAté agora tudo bem, mas e a administração comofunciona, será que é realmente descomplicado e transparente?
  22. 22. Operações em seu cluster via CLI1. Criando um cluster (resumidamente)# gnt-cluster init gnt-node01.empresa2. Adicionando nó ao cluster (após instalar o node)# gnt-instance add node02# gnt-instance add node033. Criando máquina virtual# gnt-instance add -n node1 -t plain -H memory=1G -s 10G -odebian apache01
  23. 23. Comandos básicos4. desligando# gnt-instance shutdown maquina5. ligando# gnt-instance startup maquina6. reiniciando# gnt-instance reboot maquina7. acessando console de maquinas em qualquer lugar do cluster mestre# gnt-instance console maquina8. removendo instancia# gnt-instance remove maquina
  24. 24. Comandos básicos9. Movendo máquinas entre nós# gnt-instance move -n gnt-node05 maquina10. Exportando instancia# gnt-backup export -n gnt-node05 maquina11. Importando instância# gnt-backup import -n gnt-node06 --src-node=gnt-node05 –src-dir=/diretorio maquina
  25. 25. Comandos Básicos14. Montando discos localmente para manutenções# gnt-instance activate-disks maquina# ssh gnt-nodeXX# kpartx -av /dev/mapper/xenvg-xxx.disk0# mount /dev/xenvg/xxxx /mnt/disco
  26. 26. Alterando recursos de VMs1. Adicionando mais memoria# gnt-instance modify -B memory=4G maquina2. Adicionando mais processadores# gnt-instance modify -B vcpus=3 maquina3. Adicionando mais placas de rede# gnt-instance modify -B --net add:ip=192.168.50.173 maquina4. Adicionando disco/partição# gnt-instance gnt-instance modify --disk add:size=1g smtp02
  27. 27. Hooks● Execução de comandos na instalação da instância● Criação de Perfis de Instalação● Padronização de configurações do OS durante a instalação ● Instalação e configuração dos pacotes básicos ● Configurações de idioma ● Configurações de localização ● Configurações de repositórios ● Configurações de rede e segurança ● Configurações de usuários e grupos
  28. 28. Ganhos com essa tecnologiaCliente● Uso coerente dos recursos de hardware/rede● Investimento em conhecimento da equipe● Investimento de SW direcionado para HWEquipe● Facilidade na criação e adm. de máquinas● Movimentação de VMs entre nós e SITES● Replicação DRDB = Alta disponibilidade
  29. 29. Limitações● Uso de Múltiplos volumes – storage area network (SAN)● SNAPSHOTs● Clonagem de máquinas● DRDB e desempenho● I/O● Uso de Múltiplas Redes
  30. 30. GanetI Web Manager
  31. 31. Ganeti Web Manager
  32. 32. GANETI: Web Manager
  33. 33. GANETI: Web Manager
  34. 34. GANETI: Web Manager
  35. 35. ComparandoInstalação de Máquina Física – Debian LennyTempo de criação de maquina virtual - 40 minutosTempo de configuração/update* via internet – 40 minutos* Levando em conta configurações da rede, locale, ntpdate, backup,monitoramento, criação de usuários, instalação de pacotes básicos dosysadmin.Instalação de Máquina Virtual – Debian LennyTempo de criação de maquina virtual - 2 minutosTempo de configuração/update* usando Hooks – 2 a 4 minutos* Levando em conta configurações da rede, locale, ntpdate, backup, monitoramento,criação de usuários, instalação de pacotes básicos do sysadmin.
  36. 36. Dicas importantes● Atenção com DNS, dependência grande para criar a VMs● Uso e abuse de Activate Disks para montar e `clonar` máquinas● GrowDisk e Parted● Nunca dê CTRL+C● Usar - - submit● Tenha paciência, não use KILL em um processo de MOVE ou CREATE. Espere terminar.
  37. 37. Expandindo os HooksSabendo que os hooks só podem ser utilizadosinstalação das VMS, como ir além dos hooks...?Como podemos atuar no gerenciamento deconfigurações no momento em que precisarmos?
  38. 38. Gestão de Configuração
  39. 39. Gestão de Configuração● Facilitar o trabalho de administração de servidores● Padronizar as configurações utilizadas● Possibilitar auditoria de configuração● Centralizar a administração● Acelerar a criação de novos servidores● Acelerar a configuração de serviços
  40. 40. Exemplos de Itens de Configuração● Usuários● Grupos● Arquivos de Configuração● Pacotes instalados● Execução periódica de scripts
  41. 41. Nossa Escolha ● Puppet (2005) ● Ruby, GPL ● AIX, BSD, HP-UX, Linux, MaxOS, Solaris, Windows(*) ● Wikipedia: ● Configuration_management ● Comparison_of_open_sourc e_configuration_manageme nt_software
  42. 42. PUPPET: Funcionamento● Tipos: ● Passos: ● Autônomo ● Cliente obtém plugins – Configuração local ● Cliente envia fatos ● Cliente/Servidor ● Servidor produz – HTTPS catálogo – Certificado de Cliente ● Cliente processa – Pull por default catálogo – Push opcional ● Cliente envia relatório
  43. 43. Puppet: Fácil Aprendizado Sintaxe Declarativa● Pacote ntpdate ● Garantir que esteja instalado● Crontab ● Usuário root ● Comando ntpdate ntp.dominio ● Executar de hora em hora package { ntpdate: ensure => installed, } cron { sincroniza horario: user => root, command => /usr/sbin/ntpdate ntp.dominio, minute => 0, }
  44. 44. Puppet: Fácil Aprendizado Independente de Plataformac l as s edi t or { $v i m = $oper at i ngs y s t em ? { RedHat => v i m enhanc ed, - Cent OS => v i m enhanc ed, - Fedor a => v i m enhanc ed, - def aul t => v i m , } pac k age { " $v i m": ens ur e => pr es ent, al i as => v i m, }}node “ hos t 01. dom n. c om br ” { ai . i nc l ude edi t or}node “ hos t 02. dom n. c om br ” { ai . i nc l ude edi t or}
  45. 45. Puppet: Auto documentadoclass linux-server { # Include classes common to all linux servers include localmta include ntpdate include puppet::conf include ssh::server include sudoers include users include utils include zabbix-agent include editor include snmpd include rsyslog #...
  46. 46. Puppet: Controle de Versão e Rollback#gi t l ogc om i t 263b2239cc f f 746f 345c448d723f 4f f 52d3f 8c0f mAut hor : Dani el Sobr al <dcs obr al @ ai l . com gm >Dat e: Thu Mar 31 22: 11: 16 2011 - 0300 Ex cl ui a bol et i ns das máqui nas c onf i gur adas c om m a s at él i t e. o t Li m t a a conf i gur aç ão do ex i m às m i 4 áqui nas Ubunt u e Debi an.c om i t 8f bed5a4b8095b7560941c598454d47f 3b3dec7e mAut hor : Dani el Sobr al <dcs obr al @ ai l . com gm >Dat e: Thu M ar 31 22: 08: 22 2011 - 0300 Cl as se debi an- c om on adapt ada par a l i dar com Ubunt u. Basi cam m ent e,f or ça l i dar com s er vi ços no padr ão Debi an ( Ubunt u s upor t a padr ão Fr eeBSD t am bém , e não m ) exe no sour ce l i st ( por hor a). Si st emas Ubunt u t ambém i nc l ui r ão a c l as s e debi an- s er ver. Ver i f i ca se o k er nel é xen, e, s e f or , i nc l ui o l i nux modul es cor r es pondent e.
  47. 47. Puppet: Altamente Flexívelnode " el ei c oes c onc ur v m 01" { i nc l ude l i nux - s er v er j bos s : : app { c ons el ho: c onf => def aul t , pgdb => c ons el hopr od , # Al t er a pg_ hba. c onf }}node “ el ei c oes c onc ur v m bd01” { i nc l ude l i nux - s er v er pgdb { c ons el hopr od : # Ger a XM par a dat as our c e L pas s wor d => * * * * * * * * , pgv er s i on => 8. 4, }}
  48. 48. Puppet: Expansível def i ne pgcl i ent ( $ens ur e = pr esent ,● Puppet $i p = $i paddr ess) { @ l i ne { " pgcl i ent ${ i p} ": @ ● Classes ens ur e => $ensur e, l i ne => " ${ i p} / 32 n", r equi r e => Fi l e[ c l i ent i p ], ● Definições t ag => " pgcl i ent _ $ { t i t l e} " ,● Templates (ERB) } }● Ruby # augeas v er s i on. r b Fact er . add( " augeasv er si on" ) do ● Fatos set code do begi n r equi r e augeas ● Funções aug = Augeas: : open( , , Augeas: : NO_LOAD & Augeas : : NO_ STDI NC) ● Tipos aug. get ( / augeas/ v er s i on ) | | ni l ● Provedores #. . .
  49. 49. Puppet: Problemas● Mensagens de erro ruins● Servidor default nao segura mais de 20 máquinas ● Com Apache/Passenger, já temos +160 servidores● Não distribui arquivos grandes ● Usar pacotes ou execução de comandos como wget● Grande investimento de tempo para ir do nível médio ao de expert
  50. 50. Frontends – Puppet Dashboard
  51. 51. Frontends – The Foreman● Visualiza ● Inventário (fatos) ● Relatório ● Configurações● Provisiona servidores ● Kickstart ● Jumpstart ● Preseed
  52. 52. PUPPET + GANETIOnde podemos chegar com essa combinação?
  53. 53. Comparação FinalMáquina Física – Debian Lenny + LAMP ● Tempo de instalação de maquina física – 40 minutos sem atualizações (CD) ● Tempo de configuração/update OS* – padrão - de maquina física – 40 minutos ● Tempo de instalação e configuração Apache2, PHP5, MYSQL – 2 horas**Máquina Virtual – Debian Lenny ● Tempo de criação de maquina virtual - 2 minutos ● Tempo de configuração/update OS* usando Hooks – 2 a 4 minutos ● Tempo de instação e configuração Apache2, PHP5, MYSQL – 2 a 4 minutos*** Levando em conta configurações da rede, locale, ntpdate, backup, monitoração, criação de usuários,instalação de pacotes básicos do sysadmin.** Levando em conta hardening, tuning os, apache2, php5, mysql, considerando ter as classes prontas
  54. 54. ConclusãoO Ganeti é uma alternativa viável, modernaestável, largamente utilizado no google, emfranco desenvolvimento com um comunidadecrescente e ativa.O Puppet é uma ferramenta essencial paragerenciar e distribuir configurações, ele é umbatalhão de sysadmins trabalhando para você.
  55. 55. Informações dos projetosSite/Blog Site/BlogHttp://ww.puppetlabs.com http://code.google.com/p/ganeti/Http://www.puppetlabs.com DocsTwitter http://docs.ganeti.org@puppetlabs Twitter (manager web do ganeti)Http://www.github.com/puppelabs @ganetiwebmgrGoogle Groups Google GroupsPuppet-camp, ganeti,puppet-users, ganeti-develpuppet-dev ganeti-webmgrIRC IRCIrc.freenode.org Irc.freenode.org#puppet #ganeti
  56. 56. Contato, Dúvidas, PerguntasGuto Carvalho: Daniel Sobralgutocarvalho@gmail.com dcsobral@gmail.com@gutocarvalho @dcsobralhttp://gutocarvalho.net/dokuwiki http://dcsobral.blogspot.comHttp://github.com/dcsobral Http://github.com/dcsobral Palestras de hoje disponíveis em nossos sites. Palestra sob licença Creative Commons – Atribuição.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×