Olha a infra do meu app. Você não vai acreditar como é massa =)
E aí pessoal, recentemente lancei meu aplicativo no Google Play, e muito em breve irei lançar também na Apple. Uma aplicativo lindão:
Sleeper: sons para dormir e relaxar
Play Store: https://play.google.com/store/apps/details?id=com.sleeperplace.sleeper
Instagram: https://www.instagram.com/sleeper.place/
Mas nesse momento, quero falar sobre a minha infra e os custos associados. Ela é simples, mas maravilhosa, e você vai gostar bastante. Ver só:
Infra
Sem muita enrolação estou utilizando:
VPS
- Todos os serviços estão em uma VPS Hertzer com backups diários (serviço maravilhoso);
- Docker para gestão de serviços em container;
- Portainer para gestão fácil do Docker;
- Cache com Redes (para o Wordpress)
Frontend
- O app desenvolvido em Flutter. Não necessariamente faz parte da infra, mas vale a informação;
- Worpress para meu site e landinpage; Esse Worpress está hospedado na minha VPS e está otimizado para rodar os processos em segundo plano e ter cache através do Redis;
Backend
- Pocketbase como meu backend no docker (criei minha imagem Docker);
- Minio Server para bucket de armazenamento de arquivos;
Escala
Utilizo aqui o Docker Swarm para escala horizontal, que distribui automaticamente as tarefas (containers) entre os nós disponíveis no cluster. Isso garante alta disponibilidade e balanceamento de carga. Possibilita a escala habilidade horizontal, sendo necessário adicionar novas máquinas e réplicas facilmente com um comando.
Não considero uma otimização precoce, pois não gasto muito tempo para configurar o Swarm e posso escolher quando ampliar ou não a infra.
Segurança
- Firewall da Hetzner para proteção contra acessos indevidos às portas da VPS;
- Traefik 2 para proxy reverso e SSL renovado automaticamente (segunça contra ataques e interceptação);
- Todos os serviços rodam em uma rede privada do Docker, garantindo que apenas os serviços possam se comunicar entre si.
- Cloudflare para DNS, Proxy e redirecionamento de e-mail.
Monitoramento
- Hetrix Tools Monitor para monitoramento externo de toda a infra. É um serviço externo e gratuito que não consumirá dados da VPS e ainda irá avisar se houver algo de errado, ou quando os limites da máquina alcançarem um ponto crítico; Eu posso definir em que momento crítico ele deverá me avisar, via e-mail ou Telegram, a cada cinco minutos. Isso possibilita eu aumentar os recursos da VPS antecipadamente ante dos users perceberem lentidão ou identifique problema rapidamente.
- O próprio painel da Hetzner também tem várias métricas interessantes
- O Portainer ajuda também a ver o consumo dos recursos para cada serviço e os logs
Acessos
- Terminus para acesso SSH e SFTP, ou seja, acesso rápido via terminal para manipulação da VPS e o SFTP para envio de arquivos.
- VS Code editando os arquivos diretamente na VPS via SSH. Ou seja, edito os arquivos na minha máquina, direto na VPS.
- Bitwarnen para gerenciamento seguro de todas as senhas e chave privada SSH.
Custos
- Praticamente todos os serviços estão na mesma VPS, ficando de fora apenas a Cloudflare e Hetrix, mas são gratuitos. O custo inicia em 6 dólares mensais (em média R33 reais com dolar a 5,50), mas irá aumentar com base na quantidade de recursos que o projeto irá necessitar, podendo aumentar ao longo do tempo.
Para a realidade do meu projeto esse valor está bem razoável e fácil de manter, mas se essa não for a mesma realidade pra você e seu projeto consumir muito, vale considerar a rentabilidade do projeto (Payback), otimizações, e outras possíveis soluções. Mas acho difícil ter tudo isso em serviço separados e pagar mais barato (minha opinião). Basta considerar o valor a ser pago para manter o Wordpress sozinho.
Destaques da infra
O destaque vai para o Pocketbase, que é um backend maravilhoso e que atende muito bem diversas aplicações. Com ela você pode não utilizar o Firebase em muitos casos.
E também o Wordpress próprio e otimizado.
Em resumo
Em resumo, tenho aqui uma VPS com todos os serviços que eu preciso para meu app, rodando com baixo custo. Além de muita proteão e monitoramento automatico, que me avisa quando houver problemas.
Por fim...
Acredito que essa infra irá me atendender muito bem por um longo período, ou quem sabe durante toda a vida do app.
Espero que gostem! =)
Comementem o que achou e vamos compartilhar ideias. Ou se você quiser saber mais detalhes, ou saber como instalar tudo, e como essa infra pode te ajudar a lançar rápido teu app/projeto, me manda um oi!
E-mail: [email protected]
Linkding: https://www.linkedin.com/in/ederson-bizerril/
Será muito massa poder te ajudar.