Curso: API Python
Aula 8
© Copyright 2018-2019 www.infinityschool.com.br - All Rights
Tema da aula:
Aula 8 - Deploy da API
Nesta aula você conhecerá:
• Visão geral sobre as opções de deploy
• Como enviar o projeto para o Github
• Deploy do projeto com Deta
• Teste da API
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Visão geral sobre opções de deploy
No contexto de desenvolvimento de software, deployment, ou simplesmente deploy, significa
disponibilizar o programa desenvolvido em uma plataforma acessível ao público alvo.
Para ser lançado, um sistema, normalmente, passa por alguns estágios até a realização do deploy:
• Desenvolvimento: Estágio de desenvolvimento do sistema, onde os requisitos são levantados, as
tecnologias são selecionadas e o sistema é criado.
• Teste: Etapa na qual as funções são testadas, validadas e corrigidas antes de serem enviadas ao
público final. Em algumas estratégias de desenvolvimento, as etapas de desenvolvimento e teste
são intercaladas iterativamente.
• Produção: Estágio onde os usuário têm acesso ao sistema. Uma vez testada e aprovada, a equipe
de desenvolvimento faz o deploy da aplicação, implantando o sistema no ambiente de produção. No
caso de uma API Rest, o ambiente de produção é um servidor que irá disponibilizar o acesso à API.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Visão geral sobre opções de deploy
Requisitos para um deploy
• Infraestrutura: A infraestrutura é onde, fisicamente ou virtualmente, a aplicação será implantada.
Pode ser numa máquina local, um servidor remoto, ou numa nuvem pública/privada.
• Ambiente: O ambiente é composto por todas as ferramentas necessárias para a execução da sua
aplicação, portanto, aqui são configurados, banco de dados, serviços de armazenamento,
programas de virtualização, cache, etc.
• Domínio: O domínio indica onde, na internet, sua aplicação está localizada. O domínio faz parte da
URL. A URL é composta por:
• protocolo + domínio + rota
• Exemplo: http://meusite.com/home
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Visão geral sobre opções de deploy
Modos de realizar um deploy
• Manual: O desenvolvedor seleciona e transfere os arquivos manualmente, via SSH ou aplicação de
upload, para o servidor de produção, e configura todos os detalhes para que a aplicação permaneça
online.
• Automatizado: Existem ferramentas que permitem disparar ações a partir de atualizações
realizadas num repositório GIT. Uma vez que o desenvolvedor faz um commit no código, essa ação
dispara uma sequência de processos no ambiente de produção que automatiza o deploy.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Como enviar arquivos para o GITHub
Git x Github
• Git é um dos mais utilizados sistemas de versionamento de código do mundo. O sistema permite
registrar, visualizar e gerenciar alterações em códigos, em repositórios locais e remotos, com relativa
facilidade.
• Github é uma plataforma de hospedagem de código-fonte e arquivos de controle de versão que
utilizam git.
• Git e github permitem que sistemas inteiros sejam desenvolvidos, versionados e disponibilizados de
forma gratuita.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Como enviar arquivos para o GITHub
Criando repositório no Github
• Após criar uma conta gratuita no github, você pode criar
um repositório.
• Na página inicial, digite um nome para seu repositório e
clique em “Create new repository”.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Como enviar arquivos para o GITHub
Criando repositório no Github
• A página seguinte irá lhe mostrar um passo a
passo de como criar um novo repositório em sua
máquina ou como enviar um repositório existente.
• Baixe o git pelo endereço:
• https://git-scm.com/downloads
• Em sua máquina, instale o git e siga as etapas
descritas na página do github para criar seu
repositório.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Como enviar arquivos para o GITHub
Git
• Na sua pasta local, com o git instalado, siga os passos:
• git clone https://github.com/usuario/repositorio.git
• Crie seu projeto ou copie os arquivos para a pasta do repositório
• Abra o terminal do git e navegue até a pasta do repositório
• Alternativamente, você pode abrir a pasta do repositório e dentro dela pressionar shift +
botão direito do mouse, dessa forma você abrirá o terminal dentro da pasta.
• Digite:
• git add . (para preparar os arquivos para o repositório local)
• git commit -m “mensagem” (para enviar os arquivos para o repositório local)
• git push (para enviar os arquivos ao repositório remoto no Github)
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta
• Deta é um serviço de cloud que disponibiliza de forma gratuita toda a estrutura necessária para
deploy e acesso de uma aplicação python.
• Deta permite:
• Instalação e configuração de pacotes python;
• Criação automática de um domínio para aplicação;
• Permissão de leitura de para um banco de dados SQLite;
• Upload, hospedagem e serviço de imagens e arquivos;
• Autenticação simplificada para acesso a conta Deta;
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Configurando o projeto
A Deta disponibiliza os Deta Micros (micro serviços), uma nuvem de execução leve e escalável,
projetada para disponibilizar aplicações tão breve quanto possível.
Para iniciar a construção de uma micro vamos instalar o terminal da Deta.
Abra o terminal do powershell e digite:
iwr https://get.deta.dev/cli.ps1 -useb | iex
O comando acima irá baixar e configurar o terminal deta em sua máquina.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Configurando o projeto
• Em seguida, na pasta do seu projeto, abra um terminal e digite:
deta login
• Ele abre uma página no navegador para que você possa se cadastrar.
• Após o cadastro, o terminal será liberado para que você possa seguir.
• Antes de prosseguir para o próximo passo, precisamos fazer uma pequena adição ao nosso
projeto. Na pasta raiz do projeto, adicione um arquivo: requirements.txt. Esse arquivo será
usado para listar os pacotes necessários para a execução do projeto.
• Para nossa API basta adicionar:
• fastapi
• uvicorn
• SQLAlchemy
• Caso seu projeto contemple mais algum pacote python, pode adicioná-lo também aqui.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Configurando o projeto
• Agora, sim! Com os requisitos definidos, o passo seguinte é a construção da micro. Digite:
deta new nome-da-micro --python
• deta new informa que estamos criando um novo micro serviço no deta com o nome
especificado e que utiliza python,
• Essa última informação é útil para que a deta saiba diferenciar projetos python de projetos
node, tecnologia que ela também oferece suporte.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Configurando o projeto
• Pronto! Com apenas duas linhas de comando seu deploy foi feito, e disponibilizado no link
informado na mensagem de confirmação.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Atualizando o projeto
• Para futuras atualizações o processo é igualmente simples.
• Faça as configurações necessárias no seu código local e quando tudo estiver pronto digite:
deta deploy
• Pronto! Suas atualizações já foram enviadas ao servidor e disponibilizadas em sua micro.
• Como o deta, por enquanto, fornece apenas permissão de leitura para SQLite, novas adições
devem ser feitas localmente e enviadas ao micro serviço por meio do deploy.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Atualizando o projeto
• Caso o projeto apresente algum bug e você precise dos logs para identificar o problema, digite:
deta visor enable
• Os logs e requisições estarão disponível online, na plataforma da deta, na página da sua micro
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Atualizando o projeto
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
Deploy do projeto com Deta
Deta - Testando sua API
• E claro! Como uma API criada pelo
FastAPI, sua documentação estará
disponível no domínio/docs da mesma
forma como estava disponível de forma
local.
• Utilize a documentação da API para testar
e fazer buscas.
© Copyright 2018-2019 www.infinityschool.com.br - All Rights Reserved
71 3901 1052 | 71 9 9204 0134
@infinity.school
www.infinityschool.com.br
Salvador Shopping Business | Torre Europa Sala
310 Caminho das Árvores, Salvador - BA CEP:
40301-155
© Copyright 2018-2019 www.infinityschool.com.br - All Rights
SEU SUPER MÓDULO TERMINA AQUI!
ACESSE A PESQUISA DE SATISFAÇÃO.
IN INFINITY SCHOOL