devops com python henrique gabriel gularte pereira [email protected]
TRANSCRIPT
![Page 2: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/2.jpg)
Henrique G. G. Pereira
• Mestre em Computação pela UFSM• Bacharel em SI pela UNIFRA
• Professor @ UNIFRA• Analista de TI @ UFSM
• Desenvolvedor Python ~ 6 anos
![Page 3: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/3.jpg)
Roteiro
• Python• DevOps• Documentação• Integração Contínua• Gestão de Servidores• Deploy de Aplicações• Gerenciamento de Erros
![Page 4: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/4.jpg)
Python
• Linguagem de Programação• Propósito Geral• Alto Nível• Multiparadigma• Livre• Aberta
• Fácil• Interpretada
![Page 5: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/5.jpg)
DevOps
• Amálgama entre Desenvolvimento e Operações• Combinação de disciplinas que misturam papéis de
Desenvolvedores e Administradores de Sistema
• Objetivo de permitir que uma organização produza software e serviços de forma mais rápida
![Page 6: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/6.jpg)
DevOps
![Page 7: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/7.jpg)
Motivo da Palestra
• Introducional• Conceitos• Ferramentas
• Python
![Page 8: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/8.jpg)
Documentação
• Disciplina Técnica• Documentação do Código• Interfaces• APIs
• Engenharia de Software• Garantia de Qualidade (QA)
![Page 9: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/9.jpg)
Documentação - Problemas
• Díficil Padronização• Cada um tem a sua
• Díficil Consulta• Documentação fica “espalhada”• Documentação fica em arquivos Word• Documentação fica em uma Wiki
![Page 10: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/10.jpg)
Documentação - Sphinx
• Geração automatizada• Introspecção de Código
• Desenvolvida em/para Python• C• C++
• sphinx-doc.org
![Page 11: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/11.jpg)
Sphinx - Funcionalidades
• Múltiplos modelos de output• HTML, LaTeX, Formato de Manual, Texto plano
• Cross-Referenciação ativa• Estrutura Hierárquica• Coloração de código• Extensões• Customizável
![Page 12: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/12.jpg)
Sphinx - Escrevendo
• ReST• http://sphinx-doc.org/rest.html#rst-primer
• Comentários no código• Tipo Javadoc
![Page 13: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/13.jpg)
Sphinx – Exemplos
• docs.python.org• docs.djangoproject.com• jinja.pocoo.org/docs• Readthedocs.org• write-the-docs.readthedocs.org
![Page 14: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/14.jpg)
Sphinx – Exemplos
• docs.python.org• docs.djangoproject.com• jinja.pocoo.org/docs• Readthedocs.org• write-the-docs.readthedocs.org
![Page 15: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/15.jpg)
Sphinx – Exemplos
• docs.python.org• docs.djangoproject.com• jinja.pocoo.org/docs• Readthedocs.org• write-the-docs.readthedocs.org
![Page 16: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/16.jpg)
Sphinx – Exemplos
• docs.python.org• docs.djangoproject.com• jinja.pocoo.org/docs• Readthedocs.org• write-the-docs.readthedocs.org
![Page 17: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/17.jpg)
Integração Contínua
• Disciplina da Engenharia de Software• eXtreme Programming (XP)
• TDD
• Prevenir problemas de integração• Testes automatizados
![Page 18: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/18.jpg)
BuildBot
• Integração Contínua• Deploy Contínuo• Gestão de Entrega
• buildbot.net
![Page 19: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/19.jpg)
BuildBot
![Page 20: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/20.jpg)
BuildBot – Quem usa?
• Chromium• Webkit• Firefox• Python
![Page 21: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/21.jpg)
![Page 22: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/22.jpg)
Gestão de Servidores
• Disciplina de Infraestrutura• Necessário para qualquer organização
• Gerenciamento de Servidores• Escolha de pacotes• Configuração de rede• Tunning de banco de dados
![Page 23: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/23.jpg)
Gestão Manual de Servidores
• Gerenciar Chaves• Memorizar Senhas• Conectar no servidor• SSH
• Executar uma série de comandos• Instalar• Configurar• Remover
![Page 24: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/24.jpg)
Gestão Manual - Desvantagens
• Impreciso• Comandos errados
• Demorado• Velocidade depende da pessoa
• Repetitivo• Tarefas iguais em servidores diferentes
![Page 25: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/25.jpg)
Deploy Manual de Aplicações
• Gerenciar Chaves• Memorizar Senhas• Conectar no servidor• SFTP
• Copiar arquivos• Drag and Drop
![Page 26: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/26.jpg)
Deploy Manual - Desvantagens
• Impreciso• Pasta errada?
• Demorado• Velocidade depende da pessoa
• Repetitivo• Tarefas iguais em servidores diferentes
![Page 27: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/27.jpg)
Fabric
• Automatização de SSH• Repetição dos mesmos comandos em vários servidores
• Conjunto básico de operações• Ambiente Local• Ambiente Remoto
• fabfile.org
![Page 28: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/28.jpg)
Fabric - Exemplo
![Page 29: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/29.jpg)
Fabric - Exemplo
$ fab instalar rodar
![Page 30: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/30.jpg)
Gerenciamento de Erros
• Disciplina de Manutenção• Erros de Aplicação• Falhas• Defeitos
• Controle• Análise Estatística• Diferença entre usar a versão atual e voltar a versão anterior
![Page 31: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/31.jpg)
Gerenciamento de Erros - Manual
• Trabalhar com arquivos de Log• Buscar informações• Simular o erro• Corrigir
![Page 32: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/32.jpg)
Gerenciamento de Erros - Desvantagens• Arquivos de log• grandes• sem padrão• sem busca• sem contexto• descentralizados
• Análise estatística• Impossível sem ferramentas automatizadas
![Page 33: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/33.jpg)
Sentry
• Plataforma de Monitoramento e Agração• Erros• Tempo Real
• Seguro• Contexto Instantâneo• Fácil Integração
• getsentry.com• github.com/getsentry/sentry
![Page 34: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/34.jpg)
![Page 35: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/35.jpg)
![Page 36: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/36.jpg)
![Page 37: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/37.jpg)
![Page 38: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/38.jpg)
![Page 39: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/39.jpg)
![Page 40: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/40.jpg)
![Page 41: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/41.jpg)
![Page 42: DevOps com Python Henrique Gabriel Gularte Pereira henriquep@unifra.br](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc145497959413d8e0a68/html5/thumbnails/42.jpg)