[AJUDA] Como criar uma plataforma escalável?
E aí pessoal, tudo bem?
Preciso muito de uma orientação de vocês na escolhas de algumas ferramentas e tecnologias, mas antes deixa eu contextualizar... (se preferir pode pular essa parte e ir direto pro final do texto).
Meu background é só isso
Me chamo Antonio e esse é meu primeiro post aqui no tabnews. No passado já fiz uns sitezinhos básicos em html e csss com algumas funções em php e mexi com wordpress, tudo coisa básica, nada mais do que isso.
Nunca me aprofundei em nada e mesmo assim estive afastado muito tempo dessa área desde a última vez que escrevi algum código e mais recentemente tive a ideia de um projeto que me motivou a voltar a aprender do começo tudo que preciso para concretizar esse sonho.
Meu conhecimento atual
De cara percebi o quanto as coisas mudaram nas tecnologias e maneira como se estrutura um site, antes eu só precisava jogar uns arquivos no servidor via ftp, só pra vocês terem ideia, por isso peço que sejam um pouco compreensivos com a minha noobice pois pra mim muitos termos e conceitos ainda são novidade e posso falar muita coisa que não tem nada a ver ou mesmo não entender algumas coisas que para vocês já é básico.
A idéia principal do projeto
Penso em criar uma plataforma essencialmente para assinantes mas com algum acesso gratuito, com as seguintes características.
- comunidade: uma espécie de rede social interna, exclusiva dos assinantes, com uma timeline estilo meio twitter ou instagram personalizada para cada assinante (cada um verá na sua timeline os recursos que comprou e/ou selecionou na plaforma mais as atualizações gerais da plataforma.
- cursos online: terá um razoável consumo de áudio e vídeo on demand.
- jogos: que funcionem diretamente no navegador, inicialmente jogos simples e casuais, futuramente alguns mais sofisticados.
- e-books: muito material para leitura online
- galeria de fotos/imagens: assinantes poderão criar seus álbuns
- web e mobile: os usuários podem escolher se conectar de ambas as formas, como num instagram ou twitter da vida, sem perder recursos da versão web quando estiverem usando a versão mobile e vice versa.
A dúvida:
Que linguagem e ou conjunto de tecnologias devo considerar para fazer esse projeto pensando principalmente em escalabilidade, ou seja, a intenção é que a plataforma cresça em quantidade de assinantes, recursos disponíveis e novas funcionalidades adicionadas sempre que necessário.
Entre as linguagem, não tenho uma do coração até porque não domino nenhuma. Abaixo listo algumas e o motivo porque as menciono aqui.
- python (por já ter comprado uns dois cursos no impulso)
- php (pela pequena familiaridade que tenho com a sintaxe)
- java (por já ter comprado uns dois cursos no impulso)
- javascript ("parece" que hoje só se fala nele — sim, já sei que no front ele é obrigatório)
- flutter (pela facilidade de um só código - procede?)
Que mais preciso estudar/aprender para tornar essa ideia real?
Preciso fazer um curso de Engenharia de Software e outro de Devops?
E a tal nuvem? O que vou precisar aprender?
AWS, Google, Vercel? Ou qualquer uma serve?
Haveria alternativas melhores para este caso?
E minha segunda maior preocupação (depois da escalabilidade) como posso manter esse projeto o mais independente possível de recursos nativos/proprietários dessas plataformas clouds, pro caso de um dia eu decidir mudar a hospedagem? Ou isso não tem nada a ver e só falei besteira???
Peço aos mais experiente, por favor me ajudem a visualizar um caminho a trilhar, estou meio perdido sem saber por onde recomeçar depois de tanto tempo afastado dessa área.