Vamos começar um SaaS (Software as a Service)?
Você tem uma ideia, algo que você sabe fazer, gosta de fazer e acha que pode atender a necessidade de algumas pessoas e empresas…
Mas você não quer começar de qualquer jeito. Não quer otimizar prematuramente mas não quer quebrar logo nos primeiros usuários.
Então você tem algumas escolhas difíceis antes mesmo de começar.
Escolha de linguagem de programação e framework:
- Ruby / Ruby on Rails;
- Node.js;
- Python;
- Rust;
- Lua;
- Go;
Se você for trabalhar com aprendizado de maquina, pode ser melhor utilizar Python pois essa linguagem tem uma grande quantidade de bibliotecas de código aberto sobre esse tema.
Se você quer alta produtividade, boa organização do código fonte e opções de bibliotecas para desenvolver o login, admin, meio de pagamentos, etc… Ruby / Ruby on Rails tem muitas bibliotecas para tudo.
Alta produtividade e escalabilidade? Foi por isso que o Google desenvolveu o Go.
E se sua aplicação vai fazer muitas requisições à serviços externos e você não pode tornar isso assíncrono, você vai precisar de algo como o OpenResty.
No médio prazo pode ser que você acabe com alguns serviços em uma linguagem e outros em outra. Utilizando o que cada uma tem de melhor.
Plataforma de nuvem:
- Microsoft Azure;
- Amazon Web Services;
- Google Cloud Platform;
- Aliyun (Alibaba Cloud);
- Cloudflare;
Base de dados:
- MySQL;
- PostgreSQL;
- Cassandra;
- Redis;
- ClickHouse;
- Bigtable;
Algumas partes da sua aplicação vão precisar de uma base de dados relacional, outras de uma "chave-valor". Dependendo da plataforma de nuvem as opções de base de dados mudam.
No GCP tem o Bigtable, Cloud Spanner e outras… No AWS tem o Aurora, Redshift e outras…
Você provavelmente vai começar com o MySQL ou PostgreSQL mas é bom se manter informado para migrar o que e quando for a hora.
Se eu começar um SaaS, vou manter todos meus amigos atualizados por aqui… Informando os motivos por trás de cada decisão de infraestrutura.