What is a CronJob, and how does it automate scheduled tasks in modern IT environments? How is a CronJob commonly used for activities such as backups, report generation, data processing, or Kubernetes workloads? What best practices do you follow to ensure CronJobs run reliably and efficiently?