Focusing only on GCP
environment as in the question.
There are solutions that could be used to run workloads as you described. Some of them are:
- Kubernetes Engine
- Cloud Run
You can read more about the differences between GKE
and Cloud Run
here:
You could use GKE for your workload as for the bullet points you mentioned:
- run a docker image (hosted in dockerhub)
Kubernetes uses Docker images. You have an option to specify the place the images are being downloaded from.
- mount a persistent disk as a volume. Big data files will be stored there.
By default GKE
uses gce-pd
as the backbone for PVC
's and PV
's. You will be able to store data needed for pods there:
- expose ports to the internet
Kubernetes has a wide variety of options to allow the traffic to enter your cluster. Some of them are:
ClusterIP
- internal only
NodePort
LoadBalancer
Ingress
You can read more about them here:
- automatic scalability (to 0 when not in use, for example, at night)
By using Kubernetes you can automatically scale not only nodes but also pods that are running your application:
Additional resources: