Deploy de uma aplicação em Python e Flask

Olá, pessoal!

Eu sou a Beyre, esse é o nome do alter ego que desenvolvi para aperfeiçoar minhas habilidades em programação. No ensino médio atuei fortemente com a área de Tecnologia (Programando em C++ e um pouquinho de Java), mas ao longo do tempo me afastei dela e me direcionei para a contabilidade. Ocorre que nos últimos 3 anos me aproximei novamente dela, e estou amando.

Durante um tempo fiquei resistente em focar em uma linguagem de programação, pois sempre enxerguei o processo como um trajeto longo e cansativo. Minha maior dificuldade é ser muito imediatista.
Sendo assim, me aventurei no mundo No Code, com Bubble e FlutterFlow, para desenvolver meus primeiros projetos, mas foi só ladeira abaixo. As ferramentas eram limitadas e não entregavam o que eu queria para que meus projetos rodassem com precisão.

Depois de muito desapontamento, escutei meu marido e resolvi estudar Python. Iniciei meu caminho com o lendário Guanabara e desde então não parei: acompanhei o Fábio Akita, fiz alguns cursos da Hashtag, mas nada se compara com o material e didática fornecidas pelo Programador Python. Por isso, hoje estou aqui.

Considero meu conhecimento em Python razoável, mas não tenho muito conhecimento em BD e Deploys. Desenvolvi duas ferramentas robustas para o problema que pretendo solucionar, mas sempre apanho no momento de fazer os deploys.

Depois de pesquisar, julguei que seriam apropriadas para a minha situação o Deploy no Heroku e o armazenamento no S3 da AWS. Acompanhando algumas discussões aqui no fórum, e do próprio Programador Python, agora não sei se a AWS seria a melhor opção.

Em suma, minha plataforma lida com banco de dados relacionais e armazenamento em grande escala de mídias (imagens, vídeos, pdfs, etc). Programador Python, você poderia fazer um tutorial nos ensinando a como fazer o deploy de nossas aplicações web com banco de dados relacionais e armazenamento de mídias em nuvem?

PS: Utilizo o Flask pois considero o Django muito complicado, e verdadeiramente gostaria de disponibilizar as minhas aplicações que estão paradas.

Muito obrigada pela atenção!

1 curtida

Olá @Beyre_MetamorFla tudo bem? Respondi la no Discord mas vou copiar e colar aqui também.

Fico feliz que esteja acompanhando o canal e de alguma forma tenha te ajudado.

A decisão de onde fazer o deploy depende muito da sua grana.

Ja teve diversos casos onde eu subi um projeto na AWS super escalável, usando as melhores tecnologias e tudo mais, porém o custo foi tão alto que em 2 meses tive que excluir e refazer de uma forma mais barata.

Em compensação, ja coloquei em hosting simples e facilitada com Railway e tive que remover de lá, pois o custo dessa facilidade é alta e a limitação as vezes implica no andamento do projeto.

Se você quer algo simples, apenas para exibir, podendo deixar o projeto em “modo de descanso” onde a aplicação desliga enquanto não está sendo usada, use os clássicos Vercel, Railway, Heroku, etc.

As vezes tem um teste gratuito, ou o custo para um projeto em básico (com pouco recurso) pode ser “acessível”, iniciando com uns 5 dólares por ai.

Porem se você quer explorar desenvolvimento web, fazer múltiplos projetos, brincar e construir coisas, recomendo você se aventurar comprando um VPS (Virtual Private Server) e comece a entender como funciona toda a infraestrutura de um site.

Basicamente você paga mensalmente um valor fixo para ter acesso à uma maquina linux, só o terminal mesmo. Ai tu instala, configura teu projeto (ou os teus projetos), instala ferramentas de monitoramento, enfim, tu pode fazer o que quiser. Tu ganha um IP dedicado (fixo e que não se altera) e pode usar a vontade. Fica 24h conectado.

Então teu processo é entrar na máquina, fazer o pull do seu projeto e usar alguma parada para rodar em background. Por exemplo, tu pode usar um nginx ou apache para gerenciar as requisições sua aplicação Flask. A maquina é tua e você pode fazer o que quiser.

E os preços dessas VPS são extremamente baratos. Tem uma que eu curto: Contabo.

Com $ 5,00 tu pega um VPS de 4 vCPUs, 6 GB RAM e escolhe entre 100 GB NVMe ou 400 GB SSD

Mas tu pode explorar outros também, tem hosting de VPS brasileira e tudo mais, mas eu prefiro confiar nas famosas. A própria AWS tem o Lightsail, que basicamente é um vps também. Porem tem algumas limitações (que inclusive eu mostro na série de Rede Social com FastAPI que eu fiz la no canal).

Mas nesse caminho, apesar de economizar com um servidor, você perde algumas facilidades e seguranças que essas empresas que facilitam o deploy proporcionam. Mas vale muito mais o aprendizado em um VPS para entender como funciona, para depois usar essas coisas simples.

Com o tempo você vai tomar sua própria decisão do que usar baseado no teu bolso.

Sobre o AWS S3, concordo que é uma ótima opção. No nível gratuito (primeiros 12 meses de conta na AWS) você tem S3, EC2 (que é um VPS inclusive) e mais umas paradinhas la a custo ZERO. Mas tem que tomar cuidado pois se você configurar errado ou fazer alguma cagada, tu será cobrado kkkkkkkkk ja me quebrei financeiramente várias vezes fazendo coisa sem saber. Mas serve de lição.

Por isso, se você tiver qualquer coisa rodando na AWS, configure alarmes e fique atento com seus gastos. Ja tomei um susto de R$ 900,00 reais por 1 “checkbox” que assinalei a mais do que devia.

Mas diz ai, é para estudos ou uma tentativa de criar e publicar um projeto real?