Li o seu comentário lá Pilati. Eu gosto bastante de uma hibrida, onde parte fica local e parte na cloud.

Recentemente eu implementei um serviço assim em parceria com um amigo (não foi para fins comercial diretamente, mas para auxilia-lo em um serviço temporário). A aplicação continha um App (android), uma API, um banco postgres e um Engine Selenium para executar umas tarefas pesadas. Para executar, eu fiz o seguinte: Subi a API + postgres no render (free) e localmente eu subi o conteiner com o Selenium e um script ficava fazendo polling e verificando se havia um novo job para ser executado. Sempre que existia um job, o serviço local executava sua tarefa e enviava o resultado para a API. O App Android era quem criava as demandas via API.

De forma bem resumida foi isso. Com certeza não foi a melhor solução técnica, mas fomos pressionados pelo tempo. Tínhamos uma semana para pensar na solução (pq inicialmente só tínhamos o problema) e colocar em produção (lembrando que temos emprego, filhos, familha em geral).

Por fim, para evitar todos esses problemas de segurança, eu tenho ido para esse caminho de solução.