BeavOps : Como o Python ajudou a integrar o mundo DevOps

1.167 visualizações

Publicada em

Nosso desafio era automatizar a criação de uma Infraestrutura para mais de 300 Desenvolvedores poderem programar de forma Ágil, usando Git para versionar, Jenkins para rodar as Builds realizando testes de código e finalizando com deploy automático.


Para isso criamos o BeavOps, um sistema todo escrito em Python que nos permitiu integrar o mundo de desenvolvimento com a infraestrutura na Cloud tudo de forma automática. Ele é um sistema modular feito totalmente orientado a objetos onde cada módulo gerencia um tipo de infraestrutura.

Nesta apresentação serão abordados os trâmites e procedimentos tomados desde a definição de tecnologias até a criação desse ambiente DEVOPS, como também apresentaremos os obstáculos superados e as perspectivas futuras, tudo isso realizando uma demonstração prática do sistema.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.167
No SlideShare
0
A partir de incorporações
0
Número de incorporações
40
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

BeavOps : Como o Python ajudou a integrar o mundo DevOps

  1. 1. BeavOps : Como o Python ajudou a integrar o mundo DevOps Novembro/2015 Gabriela Dias Alisson Machado
  2. 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. 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. 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
  5. 5. 5 Cursos práticos, rápidos e baratos de autores feras
  6. 6. 6 Ao final dessa palestra ➢ X cursos Online ➢ Curso de Python ➢ 01 Tux de pelúcia
  7. 7. 7 Ao final dessa palestra
  8. 8. 8
  9. 9. 9 Descrição do Cenário (Necessidade!)
  10. 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. 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.
  12. 12. 12 Necessidade
  13. 13. 13 Nome e Logo O sistema que fornece o ambiente DevOps da 4Linux para os alunos!
  14. 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. 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. 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. 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. 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. 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. 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
  21. 21. 21 Módulos do BeavOps Json DockerOps JenkinsOps MongoOps LdapOps GitlabOps ➢Facilidades e Dificuldades na Criação dos Módulos KanbanOps
  22. 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
  23. 23. 23 5. Acompanhamento Web Porque Flask? ➢ Microframework, Modular; ➢ Separação de Responsabilidades (BluePrint)
  24. 24. 24 5. Acompanhamento Web
  25. 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. 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
  27. 27. 27 Demostração
  28. 28. 28 Perguntas
  29. 29. 29 Boa Sorte!!
  30. 30. 30 Gabriela Dias Alisson Machado www.4linux.com.br www.4shot.com.br Sigam-nos @4linux @4shotcursos

×