O documento descreve os serviços oferecidos pela empresa, incluindo consultoria, suporte, projetos e treinamento, baseados em softwares livres, código aberto e padrões abertos, para construir infraestrutura de TI e criar novas soluções de negócio.
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando Puppet
1. Prestação de serviços em: Baseados em:
- Consultoria - Desenvolvimento - Softwares Livres
- Suporte - Soluções e Aplicativos - Open Source
- Projetos - Treinamento - Padrões Abertos
Para construir sua infraestrutura de TI e criar novas soluções de negócio.
Tuesday, August 7, 12
2. Gerência de Configurações em Cloud
Puppet em ambientes IaaS
José Augusto (Guto) Carvalho
jose.carvalho@4linux.com.br
Tuesday, August 7, 12
3. whoami
Consultor/SysAdmin (LPIC-3) na 4Linux
12 anos de experiência com tecnologias FOSS
Blogueiro FOSS há 6 anos no site gutocarvalho.net
Atuação em vários projetos de Governo no MDA, MINC, EBC/RADIOBRÁS,
MPS/DATAPREV, ITI/PR, CEF, MD/SIPAM, DETRAN/DF
Há 2 anos trabalhando com gerência de configurações em ambientes
virtualizados e clouds privadas em Brasília
Tuesday, August 7, 12
5. Plano de Trabalho
40 minutos de apresentação
5 minutos para perguntas
Tuesday, August 7, 12
6. Agenda
Gerência de Configurações
Infraestrutura como Código
Puppet como solução de Gerência de Configurações
Puppet Arquitetura, Funcionamento e Recursos
Perguntas
Tuesday, August 7, 12
8. Cloud e seus Benefícios
Hiper-escalável
Rápida e elástica
Abstração de hardware
Infraestrutura dinâmica
Alta-disponibilidade
Investimento atraente
Tuesday, August 7, 12
9. Provisionamento
Podemos criar 500 VM’s em
poucos minutos
Tuesday, August 7, 12
28. Puppet
Ferramenta de nova geração
que implementa gerência de
configurações para seu
ambiente.
Tuesday, August 7, 12
29. Visão Rápida
Infraestrutura como código
Pare de administrar e comece a desenvolver sua infra
Reuse código para gerenciar seu parque com facilidade
Linguagem declarativa para descrever configurações (DSL)
Tuesday, August 7, 12
30. Sobre a ferramenta
Suporte a Linux, BSDs, Solaris e Windows
Criado por Luke Kaines (CEO e Fundador)
Empresa PuppetLabs mantém a Ferramenta
Ferramenta OpenSource (Licença Apache)
Recebeu grandes investimentos
Empresa oferece Suporte e Versão Enterprise
Tuesday, August 7, 12
31. Feito por um SysAdmin para SysAdmins
Tuesday, August 7, 12
33. Especificações
Escrito em Ruby
Extensível usando código Ruby
Funciona em modo Autônomo (serverless)
Funciona em modo Cliente/Servidor
RESTful API
Comunicação segura (SSL Certificate)
Tuesday, August 7, 12
37. Puppet: RAL
Resource Abstraction Layer = RAL
Camada de Abstração de Recursos
Fale o que você quer que seja feito
Não se preocupe em como será feito
O Puppet sabe como fazer
Tuesday, August 7, 12
41. Tratamento de
Informações
O grande diferencial do Puppet
é a forma como ele trata as
informações de seus nodes
Tuesday, August 7, 12
42. Tratamento de informações
No Puppet tudo é modelado e tratado como ‘dados’
O estado atual de um node (servidor) é um dado
Um pacote instalado em um node é um dado
Um usuário em um servidor é um dado
Tuesday, August 7, 12
43. Os dados são inseridos em
catálogos pelo master
O catálogo é processado pelo node e as modificações
são aplicadas de acordo com o que foi declarado.
Tuesday, August 7, 12
44. Processamento
do Catálogo
1) Agente Requisita Catálogo
1.1) Agente envia Fatos para Master
2) Master Processa Fatos e Compara
2.1) Master Produz e envia Catálogo
3) Node Recebe, Compara e Aplica
4) Node informa estado atual ao Master
5) Sistema reflete catálogo
Tuesday, August 7, 12
46. Funcionamento
Puppet Configurações
Módulos Estáticos Master Voláteis e Dados
Camada de Serviços Estruturantes
LDAP DNS MONIT SYSLOG
Camada de Aplicação
JBOSS APACHE MYSQL PGSQL
Puppet Agents
Tuesday, August 7, 12
47. Puppet Master
8140 TCP 8139 TCP
Client SSL Server
puppetd -t puppetrun
Puppet Client
Puppet Visão em Rede
Tuesday, August 7, 12
48. Administração IaaS
Administrar uma cloud IaaS não é algo complicado
Escalabilidade automática é um recurso fantástico
Ter elasticidade é fundamental
Criar novos servidores é muito fácil
Administrar centenas de nodes? Aqui começa a complicar.
Tuesday, August 7, 12
49. Quando seu ambiente IaaS começar a crescer demais
você vai perceber administrá-lo não é tão simples.
Tuesday, August 7, 12
53. Como o Puppet pode ajudar?
Automatizando seu ambiente
Gerando maior produtividade com menor esforço
Padronizando seus nodes logo após a instalação
Modificando configurações de forma controlada
Tuesday, August 7, 12
54. Insira o Puppet na imagem de
instalação de seus nodes.
Tuesday, August 7, 12
55. Não tenha medo de realizar
atualizações, o puppet faz pra você!
Tuesday, August 7, 12
56. Você pode fazer deploy de sua APP
Você pode controlar a versão de sua APP
Tuesday, August 7, 12
57. Como funciona o modo cliente/servidor?
Tuesday, August 7, 12
58. Arquitetura Cliente/Servidor
O agente gera um certificado digital
O master precisa autorizar o certificado
Sem autorização o agente não pode se comunicar
Toda a comunicação entre agente e master é segura
Tuesday, August 7, 12
61. Fluxo Cliente/Servidor
Instalação do Inicialização Geração de
node do puppet Certificado
Tuesday, August 7, 12
62. Fluxo Cliente/Servidor
Instalação do Inicialização Geração de
node do puppet Certificado
Envio de
Certificado
Tuesday, August 7, 12
63. Fluxo Cliente/Servidor
Instalação do Inicialização Geração de
node do puppet Certificado
Master Assina Envio de
Certificado Certificado
Tuesday, August 7, 12
64. Fluxo Cliente/Servidor
Instalação do Inicialização Geração de
node do puppet Certificado
Agente Master Assina Envio de
Sincroniza Certificado Certificado
Tuesday, August 7, 12
65. Fluxo Cliente/Servidor
Instalação do Inicialização Geração de
node do puppet Certificado
Agente Master Assina Envio de
Sincroniza Certificado Certificado
Modalidades de Assinatura de Certificado
Assinatura pode ser manual
Assinatura pode ser automática por domínio
Assinatura pode ser automática em qualquer requisição
Tuesday, August 7, 12
67. Recursos do Puppet
Resource Types
Parâmetros e Meta-parâmetros
Templates e Definições
Classes e Módulos
Funções e Condicionais
Tuesday, August 7, 12
68. Puppet Resource Types
Arquivos e Diretórios Yum Repos
Usuários Augeas
Alias Hosts
Pacotes SSH
Serviços Cron
O puppet oferece 38 tipos de recursos nativos, e você pode estendê-lo.
Tuesday, August 7, 12
69. Resource Type: Packages
Suporte a 23 tipos de
provedores de pacotes
Faz a abstração do OS
Declare se o pacote deve estar
presente ou ausente
Declare se o pacote deve
sempre estar em sua última
versão
Tuesday, August 7, 12
70. Resource Type: Services
Suporta 11 tipos de sistemas
INIT para inicializar serviços
Declare se um serviço deve
estar sempre rodando
Declare se um serviço deve ser
carregado no boot
Declare se um serviço depende
de um pacote ou arquivo
Tuesday, August 7, 12
71. Resource Type: File
Especifique permissões e
owners
Declare arquivos,
diretórios e links
Controle de mudanças
usando até 15 tipos de
checksums
Tuesday, August 7, 12
75. Instala, Configura e Inicia
package { 'apache2':
ensure => present,
} resource type
service { 'apache2':
parameter
ensure => running, title
enable => true, value
}
file { 'httpd.conf':
path => “/etc/apache2/httpd.conf”,
source => “/etc/puppet/files/httpd.conf”,
}
Tuesday, August 7, 12
76. Base Class
class linux-server {
include sysadmin-utils
include zabbix-agent
include ntpconf
include locales
include hosts
include users
include localmta
include vimrc
include backup-agent
include apt-repos
}
Tuesday, August 7, 12
77. Declarando um node
node “servidor.dominio” {
include linux-server
include module
}
node “balancer.dominio” {
include linux-server
include cyrus::backend
include postfix::hub
include haproxy::mailproxy
}
Tuesday, August 7, 12
85. Marionette Collective
Orquestrador de nodes
Execução de Tarefas Paralelas
Interação com centenas de nodes
Inventário descentralizado
Leitura de meta-dados do Puppet
Similar a Fabric e Capistrano
Tuesday, August 7, 12
92. Benefícios Reais
Maior produtividade em menor tempo
Poucos SysAdmins para muitos nodes
Diminuição de falhas humanas
Maior controle de todo o seu parque
Diminuição do tempo gasto em mudanças
Diminuição do custo de manutenção
Tuesday, August 7, 12
103. Puppet em números
727 pessoas online no canal
#puppet da irc.freenode.net
8.500 repositórios no GitHub
450 módulos no PuppetForge
4457 usuários ativos na lista
puppet-users com 7795 tópicos de
discussão
Dados coletados em 2012-08-06 às 10:34 PM
Tuesday, August 7, 12
104. 4Linux & PuppetLabs
1o Parceiro no Brasil
Consultores Especializados
Cases no Governo Federal
Suporte Puppet Enterprise
Treinamentos Puppet Master
Tuesday, August 7, 12
105. Puppet na rede
Site/Blog Google Groups
http://www.puppetlabs.com Puppet-camp,
http://www.puppetlabs.com/blog/ puppet-users,
http://puppet-br.org/ puppet-users-br,
puppet-dev
Twitter
@puppetlabs IRC
irc.freenode.org
GitHub #puppet
http://www.github.com/puppelabs #puppet-br
Tuesday, August 7, 12
107. 4linux na rede Contato
Twitter @gutocarvalho
Twitter @4linuxBR
jose.carvalho@4linux.com.br
Facebook /4Linux
slideshare.net/gutocarvalho
Obrigado!
Tuesday, August 7, 12
108. Prestação de serviços em: Baseados em:
- Consultoria - Desenvolvimento - Softwares Livres
- Suporte - Soluções e Aplicativos - Open Source
- Projetos - Treinamento - Padrões Abertos
Para construir sua infraestrutura de TI e criar novas soluções de negócio.
Tuesday, August 7, 12
109. Comparando Ferramentas
Recursos Puppet Chef CfEngine
Pull Yes Yes Yes
Push No No No
Idempotence Yes Yes Yes
Config Language Declarative Ruby Declarative
Web UI Yes Yes Yes
OS Support *NIX,Windows *NIX,Windows *NIX,Windows
License Apache Apache GPL
Company Puppetlabs OpsCode CfEngine
Cloud Yes Yes Yes
Tuesday, August 7, 12