um novo modelo de implantação do sei no governo
TRANSCRIPT
Como extrair o máximo do SEI?
processo eletrônico no governo
v.2015.07.14-01 www.instruct.com.br
‣ Guto Carvalho
‣ Consultor e Instrutor na Instruct
‣ Especialista em Gerência de Configurações e Orquestração
‣ Blogueiro de TI há mais de 12 anos
‣ RHCSA, RCHE, RHCJA, ZCS, ZCP, LPIC3, PCP, NCLA
‣ 15 anos de experiência com linux e tecnologias open source
‣ Atou e atua em diversos projetos de Governo em Brasília
‣ ITI, MINICOM, MDA, MPOG, EBC, PR, DATAPREV
‣ CAIXA, DETRAN/DF, ANATEL, FNDE, MJ, TCU
‣ Atua em diversos projetos de automação na iniciativa privada
Quem sou?
Sobre a Instruct• Especializada em Infraestrutura Ágil e Automação
• Possui profissionais pioneiros em automação no Brasil
• Empresa alinhada com princípios da Cultura DevOps
• 1o Parceira da Puppet Labs no Brasil
• Única ATP (authorized training partner) Puppet Labs no Brasil
• Profissionais com mais de 15 anos de experiência em TI
• Profissionais com cases no Governo Federal e Iniciativa Privada
Plano de trabalho
• 50 minutos de apresentação
• 10 minutos para perguntas e esclarecimentos
www.instruct.com.br
Agenda
• Apresentação do novo modelo SEI (15m)
• Apresentação de proposta de arquitetura (15m)
• Apresentação de principais características do modelo (15m)
• Apresentação dos recursos necessários (5m)
• Apresentação de benefícios e resultados (10m)
• Serão apresentados 70 Slides
5 www.instruct.com.br
Um novo modelo para o SEI
www.instruct.com.br
Temos vasta experiência com o SEI adquirida em projetos dentro de ministérios e agências federais.
www.instruct.com.br7
Nós pensamos o SEI de forma diferente.
www.instruct.com.br8
Vamos além da instalação da ferramenta!
www.instruct.com.br9
Entregamos um ambiente SEI completo, funcional,
automatizado e inteligente.
www.instruct.com.br10
N o s s o a m b i e n t e s e g e r e n c i a automaticamente[1], ele tem a capacidade de detectar e corrigir problemas sozinho[2], sem intervenção humana[3].
www.instruct.com.br11
Configuration Management
Auto Healing Self Management
21 3
Nosso ambiente é construído de fo r m a a s i m p l i f i c a r [1 ] e descomplicar o processo de deploy e atualização do SEI.
www.instruct.com.br12
Version Control System
1
O processo de implantação deste modelo é rápido, simples e todo fundamentado nos princípios da cultura DevOps e Infraestrutura Ágil.
13 www.instruct.com.br
Tal modelo permite a construção ou replicação do ambiente de produção para outras necessidades como ambiente de te s te , t re inamento, homologação ou desenvolvimento. Não é realizado clone de VM ou utilização de imagens, o ambiente é reconstruído em cima de VMs limpas de forma automatizada pelo gestor de configurações.
www.instruct.com.br14
Neste modelo você só precisa de um sysadmin para gerir todo o ambiente do SE I de f o rma centralizada, controlada e eficiente.
www.instruct.com.br15
A p r i n c i p a l t e c n o l o g i a responsável por tornar esse ambiente inteligente, confiável e disponível chama-se Puppet.
www.instruct.com.br16
www.instruct.com.br17
Arquitetura clássica do SEI
www.instruct.com.br
MYSQL
APACHEHTTPD
APACHESOLR
NFSv4
Arquitetura do manual
JODC
Essa é a arquitetura proposta pelo manual de implantação do SEI, este é o modelo utilizado na maioria das iniciativas que encontramos
20 www.instruct.com.br
Arquitetura proposta pela Instruct
www.instruct.com.br
NGINX LOAD
BALANCER
NGINX LOAD
BALANCER
PERCONASQL
PERCONA SQL
XTRABACKUPSQL
APACHEHTTPD
PUPPETMCO
GIT
ZABBIX
MIRRORAPACHE
SOLRNFSv4
Arquitetura proposta pela instruct
JODC
APACHEHTTPD
APACHEHTTPD
Diferenciais da Instruct
23 www.instruct.com.br
NGINX LOAD
BALANCER
NGINX LOAD
BALANCER
PERCONASQL
PERCONA SQL
XTRABACKUPSQL
PUPPETMCO
GIT
ZABBIX
MIRRORAPACHE
SOLRNFSv4
Diferenciais
JODC
APACHEHTTPD
APACHEHTTPD
APACHEHTTPD
Entendendo o modelo
25 www.instruct.com.br
Neste modelo utiliza-se dois hosts no hypervisor de produção configurados em m o d o H A e c o m r e c u r s o d e balanceamento dinâmico das VMs de acordo com a carga em cada Host.
26 www.instruct.com.br
Hypervisor
27
HA para VMs
www.instruct.com.br
Balanceamento de carga das VMs entre os Hosts
HOST A HOST B
Visão macro do ambiente
28 www.instruct.com.br
www.instruct.com.br
NGINX CLUSTER
APACHEHTTPD
APACHEHTTPD
APACHEHTTPD
JODAPACHE
SOLR
PERCONAREPLICA
NFSv4 GIT
INTERNET INTRANET
Conhecendo cada componente
30 www.instruct.com.br
Balanceamento de carga
• NGINX fazendo o balanceamento
• KeepAlived cuidando do IP Virtual
• DNS aponta para o IP virtual
• Cada guest deve rodar em um host do Hypervisor
• Configurações de serviços gerenciadas pelo Puppet
www.instruct.com.br31
Balanceamento de carga
32
NGINX KEEPALIVED MASTER
VIRTUAL IP
NGINX KEEPALIVED SLAVE
VIRTUAL IP
www.instruct.com.br
NGINX NGINX
Deploy da aplicação
• Atualização do projeto em um local centralizado
• Atualização simplificado dos backends PHP
• Verificação simplificada de mudanças em cada backend PHP
• Controle das mudanças com capacidade de rollback
• Backup simplificado em um ponto único
33 www.instruct.com.br
Deploy da aplicação
DEPLOY DEPLOY
DEPLOY
TRT4
UPDATE
www.instruct.com.br
SVN
GIT
APACHEHTTPD
APACHEHTTPD
APACHEHTTPD
Backend triplo
• Permite balanceamento da carga em 3 nodes
• Possibilita isolar um node para manutenção mantendo as requisições em 2 nodes sem sobrecarga.
• Possibilita escalabilidade vertical ou horizontal
• Configurações do backend gerenciadas pelo Puppet
35 www.instruct.com.br
Backend Triplo
REQUEST
REQUEST
REQUEST
www.instruct.com.br
APACHEHTTPD
APACHEHTTPD
APACHEHTTPD
INTERNET INTRANET
NGINX CLUSTER
REQUESTREQUEST
Percona
• Percona para substituir MySQL community
• O Percona foi escolhido por requisitos de performance e backup
• Replicação Master <> Slave Nativa do Percona 5.6
• 100% de Compatibilidade com MySQL ou MariaDB
• Backup através do Xtrabackup (sem lock, sem dump)
• Servidor centralizado para armazenar backup (NFS)
• Configurações do SGBD gerenciadas pelo Puppet
37 www.instruct.com.br
Percona
NFS/BKPNFS/BKP
RÉPLICA
www.instruct.com.br
PERCONAMASTER
PERCONASLAVE
XTRABACKUP
NFSv4 Shared Volume
• Volume NFS compartilhado entre os backends
• Backup simplificado do volume em local centralizado
• Facilidade para montar volume em novos backends
• Configuração do serviço NFS controlado pelo Puppet
39 www.instruct.com.br
NFSv4 Shared Volume
NFS
NFS
NFS
NFSv4
www.instruct.com.br
APACHEHTTPD
APACHEHTTPD
APACHEHTTPD
NFSv4
Gerência & Orquestração
• Gerenciamento centralizado das configurações através do Puppet
• Controle e acompanhamento de mudanças
• Garantia de integridade do ambiente
• Garantia de integridade do sistema operacional
• Garantia de compliance e padronização
• Deploy simplificado e rápido de novos ambientes
• Detecção e correção de mudanças indevidas
• Orquestração de nodes através do Mcollective
41 www.instruct.com.br
Gerência & Orquestração
www.instruct.com.br
PUPPET AGENTMCOLLECTIVE
PUPPET SERVERACTIVEMQ
PUPPET AGENTMCOLLECTIVE
PUPPET AGENTMCOLLECTIVEPUPPET AGENT
MCOLLECTIVEPUPPET AGENT MCOLLECTIVE
Mirror de pacotes
• Servidor não precisa sair para internet para se atualizar
• Maior segurança e controle
• Menor consumo de banda
• Agilidade na construção de novos ambientes
• Agilidade na instalação de novos pacotes
• Agilidade na atualização do sistema operacional
43 www.instruct.com.br
Mirror de pacotes
www.instruct.com.br
YUM/APT
YUM/APT
YUM/APT YUM/APT
MIRROR
Monitoramento
• Monitoramento de todos os aspectos do ambiente via Zabbix
• Monitoramento do ponto de vista da infraestrutura
• Monitoramento do ponto de vista do negócio
• Monitoramento ativo e passivo da infraestrutura
• Utilização de agentes em cada node para coleta precisa
• Geração de métricas, gráficos, trends, mapas e telas
• Medição de SLA de cada componente da infraestrutura
45 www.instruct.com.br
Monitoramento Passivo
www.instruct.com.br
ZABBIX
Monitoramento Ativo
www.instruct.com.br
ZABBIX
CaracterísticasSEI
www.instruct.com.br
Características da arquitetura
• Ambiente com alta disponibilidade nos LBs
• Ambiente com carga distribuída nos backends PHP
• Ambiente com réplica do banco de dados
• Ambiente com gerência de configurações
• Ambiente que permite visualizar e acompanhar mudanças
• Ambiente com capacidade de detectar e corrigir falhas
• Ambiente padronizado e com controle de mudanças
• Ambiente monitorado do ponto de vista do negócio
49 www.instruct.com.br
Características dos serviços
• Serviços rodando em sua última versão
• Tuning do OS de acordo com cada serviço
• Tuning no serviço de acordo com OS
• Tuning de serviço de acorco com HW da VM
50 www.instruct.com.br
Características de segurança
• Firewall local sempre habilitada
• Apenas portas de serviços abertas
• Não há acesso root via ssh
• Portas default de acesso SSH são modificadas
• Usuários locais são gerenciados pelo Puppet
• Privilégios de usuários (sudoers) são gerenciados pelo Puppet
• Os sistemas operacionais estarão sempre atualizados
• Enforcing de hardening feito pelo Puppet
• Compliance de segurança garantido pelo Puppet
51 www.instruct.com.br
Características do Deploy
• Atualizações recebidas do upstream serão gravadas no GIT
• Hook aciona gatilhos nos backends para atualização
• Puppet verifica se backends estão rodando na última versão
• É possível identificar mudanças nos backends via GIT
• É possível fazer rollback de mudanças via GIT
• É possível criar novos ambientes rapidamente
52 www.instruct.com.br
Recursos NecessáriosSEI
www.instruct.com.br
NGINX LOAD
BALANCER
NGINX LOAD
BALANCER
PERCONASQL
PERCONA SQL
XTRABACKUPSQL
APACHEHTTPD
PUPPETMCO
GIT
ZABBIX
MIRRORAPACHE
SOLRNFSv4
Arquitetura proposta
JODC
APACHEHTTPD
APACHEHTTPD
Balanceadores de carga
• 2 VMs
• CentOS 7 (recomendado)
• 4 GB de RAM
• 2 Processadores
• 50 GB de disco para /var/log
• 30 GB de disco para /
www.instruct.com.br
NGINX
Servidor de aplicação• 3 VMs
• CentOS 6 (recomendado)
• 4 GB de RAM
• 2 Processadores
• 50 GB de disco para /var/log
• 20 GB de disco para /var/www
• 30 GB de disco para /
www.instruct.com.br
APACHEHTTPD
Banco de dados• 2 VMs para Percona
• CentOS 7 (recomendado)
• 32 GB de RAM
• 4 Processadores
• 600 GB de disco para /var/lib/mysql em discos com IOPs alto
• 50 GB de disco para /var/log
• 30 GB de disco para /
• 1 VM para Percona XTRABACKUP
• CentOS 7 (recomendado)
• 6 GB de RAM
• 2 Processadores
• 600 GB de espaço para gravar backups /srv/xtrabakup
• 30 GB de disco para /
www.instruct.com.br
PERCONA
Servidor de arquivos
• 1 VMs
• CentOS 7 (recomendado)
• 4 GB de RAM
• 2 Processadores
• 800 GB de disco para /srv/nfs em discos com IOPs alto
• 30 GB de disco para /
www.instruct.com.br
NFSv4
Conversor de documentos ODF
• 1 VMs
• CentOS 7 (recomendado)
• 6 GB de RAM
• 2 Processadores
• 30 GB para /
• 20 GB para /var/log
• 10 GB para /opt
www.instruct.com.br
JODCONVERTER
Motor de busca• 1 VMs
• CentOS 7 (recomendado)
• 16 GB de RAM
• 4 Processadores
• 30 GB para /
• 20 GB para /var/log
• 200 GB para /opt (discos com IOps alto)
www.instruct.com.br
APACHESOLR
Sistema de versionamento• 1 VMs
• CentOS 7 (recomendado)
• 4 GB de RAM
• 2 Processadores
• 30 GB para /
• 20 GB para /var/log
• 20 GB para /srv/git
www.instruct.com.br
GIT
Sistema Mirror• 1 VMs
• CentOS 7 (recomendado)
• 4 GB de RAM
• 2 Processadores
• 30 GB para /
• 20 GB para /var/log
• 300 GB para /srv/mirror
• Servidor deve sair para internet na porta 80 TCP
www.instruct.com.br
APACHEHTTPD
Sistema de Gerência de Configurações
• 1 VM
• CentOS 7(recomendado)
• 12 GB de RAM
• 4 Processadores
• 50 GB para /
• 30 GB para /var/log
• 300 GB para /var/lib/pgsql
• Servidor deve sair para internet na porta 80 TCP
www.instruct.com.br
PUPPET
Sistema de monitoramento• 1 VM
• CentOS 7 (recomendado)
• 12 GB de RAM
• 4 Processadores
• 50 GB para /
• 30 GB para /var/log
• 500 GB para /var/lib/mysql
• Servidor deve sair para internet na porta 80 TCP
www.instruct.com.br
ZABBIX
Componentes Compartilhados
65
Todos os componentes apresentados a seguir podem ser utilizados e compartilhados por outros ambientes e sistemas. Eles não precisam ser utilizados exclusivamente para o SEI, portanto, com a adoção deste modelo de SEI, você ganha novos recursos para sua infra.
66 www.instruct.com.br
LOAD BALANCER
LOAD BALANCER
PERCONA PERCONA XTRABACKUP
APACHEHTTPD
APACHEHTTPD
APACHEHTTPD
PUPPETMCO
GIT
ZABBIX
MIRRORNFSv4
Componentes reutilizáveis
Benefícios e Ganhos• Estrutura em volta do SEI sustentando seu funcionamento
• Ambiente com maior estabilidade
• Ambiente com controle e visualização clara de mudanças
• Ambiente tolerante a falhas
• Ambiente escalável
• Ambiente que sabe se corrigir sozinho em caso de falha
• Pequena equipe consegue manter o SEI rodando
• Manutenção mínima, o ambiente se gerencia praticamente sozinho
• Economicamente viável pois utiliza apenas tecnologias open source
69
www.instruct.com.br
Obrigado!
Slides & Contato
Slides:slideshare.net/instructbr speakerdeck.com/instructbr Entre em contato:http://[email protected] @gutocarvalho telegram gutoccarvalho skype gutoccarvalho
www.instruct.com.br
www.instruct.com.br