Um novo modelo de implantação do SEI no governo

Post on 18-Aug-2015

94 views 1 download

Transcript of Um novo modelo de implantação do SEI no governo

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 GanhosSEI

www.instruct.com.br

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://www.instruct.com.brgutocarvalho@instruct.com.brtwitter @gutocarvalho telegram gutoccarvalho skype gutoccarvalho

www.instruct.com.br

www.instruct.com.br