Brasileiro • Criado em 1997 e mantido pelo Senado Federal, através do Instituto Legislativo Brasileiro (ILB) • Privilegia o uso de sistemas não proprietários, que possam ser customizados e adotados gratuitamente pela comunidade
• Sistema de Apoio ao Processo Legislativo – 1015 Casas Legislativas • Correio Corporativo: – 105 Casas Legislativas • Domínios .LEG.BR Hospedados: – Cerca de 1800 Domínios .LEG.BR
equipe do Interlegis em equipamentos do Programa, em Brasília • Necessária apenas conexão à Internet • É necessário apenas saber usar a ferramenta • Cursos são oferecidos através de Oficinas Interlegis nos Estados ou mesmo através de EAD
agudo.rs.leg.br • Assembleia Legislativa de Rondônia – al.ro.leg.br • Câmara Municipal de Goiânia - GO – goiania.go.leg.br • Assembleia Nacional Popular de Guiné Bissau – parlamento.gw
de novos pedaços de configuração • Restart automático dos serviços • Qualquer mudança no arquivo quebrava o script • Qualquer erro na linha de comando quebrava tudo! Instabilidade!!! • Não escala
mais seguro • Módulos prontos na Internet – https://github.com/interlegis • Linguagem declarativa • Modificações manuais são sobrescritas • Repetibilidade: crie a mesma coisa várias vezes...
graças aos Puppet Templates • Serviços automaticamente reiniciados sempre que há mudança em configurações • Escalabilidade: agora podemos ter vários servidores de aplicação • Repetibilidade: criar um novo servidor aplicação ficou mais fácil....
em máquinas diferentes – Problemático quando vários backends servem o mesmo site • Hospedagem compartilhada – Lentidões e problemas na aplicação afetam todos os usuários do mesmo servidor
Diminuir esse tempo aumenta muito a carga no Puppet master – Demora para adicionar um novo serviço • Código muito complexo – Vários módulos de código combinados para aprovisionar um novo serviço – Atualizar 1 módulo pode ser catastrófico...
– Mantido pela equipe de infraestrutura (pequena) – Novos pré-requisitos necessitavam de adequação no código Puppet (2 desenvolvimentos) • Processo de deploy de novo código pouco eficiente
manual – Criação de VMs é manual – Alocação de IPs é manual – Configuração de Backup é manual – Primeira instalação do Puppet é manual – Atualização do SO é manual – Odeio coisas manuais =D
– Ambiente muito diferente do comum → bugs – Problemas de performance – Usuário “fuçador” • Hospedagem com servidor dedicado deve resolver boa parte dos problemas
toda de novo e migre as VMs… • 3 Controllers que não hospedam VMs • Atualizações de pacotes do SO quebravam sistema • Muito complexo! • Não sobreviveu a um desligamento
VMs por serviço hospedado • MUITAS Máquinas para gerenciar! • Desperdício de recursos reservados por VM • Cada VM roda um sistema operacional completo • Menor uso de RAM: 1GB
Processo de criação da imagem simples e documentado: Dockerfile • Roda apenas o processo da aplicação • Registry para distribuição – Privado ou Público (dockerhub)
DNS) • Drivers de volumes (plugins) • Logs coletados pelo Docker daemon • Cotas de uso de recursos computacionais (mas sem reserva) • O desenvolvedor prepara a imagem
preenchendo formulários e apertando um botão • Avisa quando há atualizações • Catálogo público com contribuições da Comunidade e serviços prontos para deploy • Catálogos privados
dos containers • Configuração automática e dinâmica (Rancher API ou Metadata) • Suporte automático a Let’s Encrypt (Desafio TLS-SNI ou DNS) • Cluster de Alta disponibilidade (Keepalived)
Rancher • Central de Autosserviço (Rancher API) • Rancher 2.0: Kubernetes • Criação de VMs via Docker Machine • RancherOS (?) • Balanceador com Cache (Grace Period)