We use Batch for running batch processing jobs in the cloud. The main reasons why we chose it over other alternatives are the following:
We used GitLab CI before implementing Batch. We migrated because GitLab CI is not intended to run scheduled jobs that take many hours, often resulting in jobs becoming irresponsive before they could finish, mainly due to disconnections between the worker running the job and the GitLab CI Bastion. On top of this, GitLab CI has a limit on the number of schedules per project, and running thousands of jobs puts a lot of pressure on the GitLab coordinator and the GitLab CI Bastion.
Pros:
Cons:
https://kubernetes.io/docs/concepts/workloads/controllers/job/
Pros:
Cons:
We use Batch for running