Neste post, finalizamos o tutorial em que desenvolvemos um pequeno e simples aplicativo web utilizando somente ferramentas gratuitas. Na PARTE 1 vimos como usar Python (Flask) e recursos de aprendizagem de máquina (machine learning - ML) para realizar análises de suspeitas de plágio. As análises foram feitas utilizando a API da Hugging Face para o modelo de ML escolhido, responsável por realizar a tarefa de forma automática. Agora iremos passar nosso app do ambiente local para um ambiente de produção gratuito (100% free). Nesse ambiente o app desenvolvido ficará disponível na Internet e não somente em nosso computador.
Vamos lá? ☕
Recapitulando: O que vc acha do mini app abaixo?
Nota: A numeração das seções neste post inicia com 5 porque na PARTE 1 do tutorial apresentamos as partes de 1 a 4.
5. Deploy no Deta Space
Fazer o deploy em produção significa enviar o que foi desenvolvido localmente para um ambiente de produção. Este ambiente irá hospedar, disponibilizar recursos e gerenciar o que for necessário para que o app rode assim como rodou localmente (no computador pessoal). Se a passagem de ambientes for entre outros, como por ex., de uma cloud pública para uma privada, os passos vistos neste tutorial continuam sendo semelhantes. Para mais detalhes sobre deploy leia o seguinte texto. Neste post o deploy será feito com o Deta Space.
5.1 Configurar o Deta Space localmente
Para realizar o deploy do app desenvolvido na PARTE 1 basta ler a documentação do Deta Space e seguir o que eles recomendam. A princípio se escolher outro ambiente, teremos outra sequência de passos semelhantes aos que seguiremos a seguir.
Passo 0 - Criar uma conta no Deta Space: Para usarmos os recursos do Deta Space, precisamos criar uma conta gratuita lá. Para isso acessamos https://deta.space e seguimos os passos usuais de criação de uma conta em algum site. No próprio Deta Space, na aba Settings
, haverá um token de acesso que usaremos para realizar o login via CLI.
Passo 1 - Instalar a CLI do Deta Space: Para enviar os códigos do app desenvolvido para o ambiente de produção, é necessário instalar a CLI (Command Line Interface) do Deta Space.
Nota: Seguiremos os passos recomendados na documentação deles: https://deta.space/docs/en/build/new-apps.
Para quem usa Linux, resumidamente, basta digitar o seguinte comando no terminal:
curl -fsSL https://deta.space/assets/space-cli.sh | sh
Passo 2 - Configurações preliminares:
Agora que já instalamos a CLI, podemos realizar todos os procedimentos para deploy no Deta Space com apenas alguns comandos.
Quick start: Caso queira saber das recomendações dessas etapas pelo próprio Deta Space, basta acessar https://deta.space/docs/en/build/quick-starts/python.
Prosseguindo, no diretório raiz do app (i.e, na pasta nome-do-app
) devemos criar um arquivo Spacefile
que será usado para o build dos arquivos e códigos que enviaremos para o Deta Space.
# Spacefile
v: 0
icon: ./app_logo.png
app_name: "Nome-do-app"
micros:
- name: checa-plagio
src: .
engine: python3.9
primary: true
public_routes:
- "/*"
presets:
env:
- name: SECRET_KEY_FLASK
description: Secret key do Flask.
default: "!@$%&<mudar-para-uma-secret-key>"
- name: API_URL
description: URL da API.
default: "https://api-inference.huggingface.co/models/sentence-transformers/all-MiniLM-L6-v2"
- name: API_TOKEN
description: Token pessoal da API.
default: "123456789!@$%&<mudar-para-seu-token>"
Note que os valores presentes no arquivo .env
(veja na PARTE 1) estão presentes no Spacefile. A imagem que escolhemos como logo do app (icon: ./app_logo.png
) é a seguinte:
Exercício: Fique à vontade para escolher outra imagem de seu interesse. Ressaltamos que, o Deta Space exige que essa imagem seja 512x512
no formato PNG
ou WebP
.
Após incluir o Spacefile
e o logo app_logo.png
, a estrutura de arquivos do projeto terá a seguinte forma:
nome-do-app/
│
├── .env
│
├── static
│ ├── favicon.ico
│ ├── how_to.gif
│ ├── no.ico
│ └── yes.ico
│
├── templates/
│ ├── base.html
│ ├── index.html
│ └── how_to.html
│
├── utils/
│ └── constants.py
│
├── venv_app/
│
├── requirements.txt
├── app.py
├── app_logo.png
├── main.py
└── Spacefile
Passo 3 - Criar o projeto via CLI: Depois de criarmos o Spacefile, devemos criar um projeto Deta Space utilizando a CLI. Para isso, na pasta raiz do projeto executamos o seguinte comando:
space login
Em seguida entramos com o token exigido:
Após realizarmos o login, o próximo passo é criar um novo projeto pela CLI. Para isso, no terminal digite:
space new
Em seguida entre com o nome do seu projeto/app. Manteremos o nome fictício que vínhamos usando até agora de nome-do-app
.
Agora que tudo está feito, podemos validar se não cometemos nenhum erro no passo a passo para deploy com:
space validate
Por fim, digitamos o comando a baixo para realizar o build e deploy automático do nosso app:
space push
Essa etapa final pode demorar um pouco mais do que as outras anteriores. Após processar essa etapa, será gerado um link de acesso com o qual poderemos navegar em no app a partir de qualquer computador conectado a Internet.
A imagem acima mostra que após o processo de build e push o Deta Space fornece um link de acesso para o app.
Pronto! Agora é só navegar online!
Top comments (0)