O documento descreve o sistema BeavOps, desenvolvido em Python, para automatizar a criação de ambientes para os cursos da empresa 4Linux. O BeavOps integra diferentes tecnologias como Docker, Jenkins e MongoDB usando módulos e permite acompanhamento web dos ambientes criados. O sistema evoluiu de um script único para um sistema completo com vários módulos e funcionalidades para gerenciar turmas, recursos e remover ambientes quando não mais necessários.
BeavOps : Como o Python ajudou a integrar o mundo DevOps
1. BeavOps : Como o Python
ajudou a integrar o mundo
DevOps
Novembro/2015
Gabriela Dias
Alisson Machado
2. 2
Conhecendo o Palestrante
➢ Gabriela Dias (GabyDias);
➢ Diretora de Operações;
➢ 15 anos de experiência em
projetos FOSS (Free and Open
Source Software)
➢ Certificações LPI3, RHCSA, RHCE;
Gabriela Dias
3. 3
Conhecendo o Palestrante
➢ Alisson Machado;
➢ Desenvolvedor Python e Analista
Linux;
➢ 5 anos de experiência em projetos
FOSS (Free and Open Source
Software) e Python;
➢ Certificações LPI 1 , LPI2
➢ Responsável pelo
Desenvolvimento do BeavOps
Alisson Machado
4. 4
Conhecendo a 4Linux
➢ Metodologia IT Experience -
Cenários reais
➢ Cursos práticos, rápidos e baratos de
autores feras: www.4shot.com.br
➢ Projetos complexos de missão crítica,
com infra e desenvolvimento PHP
10. 10
A 4Linux
➢ Empresa de Treinamento e Consultoria há
15 anos;
Mês Julho Agosto Setembro Outubro
Turmas 33 29 41 34
Alunos 463 420 609 706
11. 11
Necessidade
➢ Criar de forma automática os ambientes
dos Cursos da 4Linux;
➢ Integrar diferentes aplicações para um
mesmo propósito;
➢ Receber Dados do CRM da Empresa para a
preparação da Infraestrutura.
14. 14
Porque Python?
➢Linguagem que navega muito bem no mundo
Devops (Infraestrutura / Desenvolvimento);
➢Módulos prontos para a maioria das Tecnologias;
➢Desenvolvimento Web e Scripts na mesma
linguagem;
➢Know How Interno;
15. 15
Premissas
➢Produzir um Sistema usando Integração Contínua;
DEV
.py
PROD
✔Save RollBack
✔Git Clone Master / Repo
✔Check Depends
✔Reload Apache
Puppet
16. 16
Core GitLabOps
BeavOPs
CSV
CR4
Fase 1 “Frankenstein”
JenkinsOps UtilsOps
Core GitLabOps
RecycleOps
BeavOpsAPI
BeavOPs
CR4
Fase 2 “RedBull”
JenkinsOps UtilsOps
Core GitLabOps
RecycleOps
BeavOPs
CR4
Fase 3 “Enterprise”
JenkinsOps UtilsOps
Octupus
BeavOpsD
MongoDB
BeavOpsAPI
POST
GET
MongoDB
17. 17
Sem lenço e Sem Documento...
Fase Piloto
Não tinha Nome
Começou Pequeno / Limitado
Apenas uma Funcionalidade
1 Página Web / 1 Script (Arquivo Único)
18. 18
Escalando a Aplicação
1.Gerenciar todas as Turmas EAD e Presenciais;
2.Regra de Negócio específica para Cursos e
Recursos;
3.Integrar diferentes Tecnologias;
4.Criação e Remoção do Ambiente de Aluno.
5.Acompanhamento Web pela Logísitica;
19. 19
1. Gerenciar Turmas
2. Regra de Negócios
➢Necessidade de um Banco de Dados
Porque MongoDB?
➢Não tinha necessidade de relacionar dados;
➢Informação Temporária respeitando o Ciclo da
Turma;
➢Velocidade por ser NoSQL
20. 20
3. Integrar Diferentes Tecnologias
➢Necessidade de Modularizar para Separação de
Responsabilidades;
➢Beavops Core gerencia os módulos;
➢Possibilidade de reaproveitamento de Módulo;
BeavOps
Core
MongoOps
Instanciar
Módulo
DockerOps
Docker
Server
22. 22
4. Criação e Remoção do Ambiente
Módulo Recycle
➢Toda turma tem um fim;
➢Evitar sobrecarga do ambiente;
➢Turmas em andamento consumindo Recurso
BeavOps
Core
MongoOps
Recycle
Módulos
(Remover)
Docker
Server
IF Status=2
25. 25
Novas Possibilidades
➢Aplicações Externas se alimentam do BeavOps;
➢Controle de Acesso por Biometria;
➢Controle de Acesso aos containers do Docker;
➢Preparação da Appliance do Aluno;
26. 26
O que vem por ai...
Após 6 meses de Projeto...
➢MicroServices → Escalabilidade em Diferentes
Hosts;
➢Integração com Puppet para Cursos Presenciais;
➢Melhorias Continuas