Jul 2, 2020

Introducing Environment Scheduling

Yaron Yarimi
Software Engineer

As your cloud footprint grows, so do the bills associated with it. There’s a lot of tools available for trying to help reduce your cloud costs, but one of the simplest ways is to just be able to easily shut off resources you’re not using, and then quickly bring them back when you do need them.

env0 already gives your team the power to do this through our self service capabilities — allowing any permissioned member of the team to quickly deploy or spin down an environment based on your pre-approved IaC templates, but sometimes you want to be able to regularly bring your environments up or down, and in large quantities.

Since we’re always looking for new ways to enable your team and make them more agile (while maintaining the visibility, predictability, and governance that you need of course), we’re excited to introduce our latest feature: Environment Scheduling!

Scheduling with env0 allows you to easily and consistently deploy, or destroy, your cloud environments on your pre-determined schedule, and with no manual intervention. Shut down non-production environments nightly or over the weekends to save costs, schedule expensive, high powered clusters to ramp down after their job runs are complete, or just automate the infrastructure for your nightly build processes. Scheduling can help with many different cases.

Scheduled Actions

With the launch of Environment Scheduling, you can now schedule both “Deploys” and “Destroys” of a running environment in env0.

Schedules are built using the standard UNIX cron expression syntax and can be configured independently, as seen in this screenshot.

Scheduled Actions in env0
Scheduled Actions in env0

Some common use cases for scheduling environments include:

  • Optimize Your Cloud Costs
    As we described above, you can automatically spin down your non-production workloads during non-working hours and then either automatically bring them back up at the start of the day, or just wait until your team actually needs them and does a manual re-deploy.
  • Nightly Builds
    It’s a common use case to have a nightly version build of your application. When testing your fresh build through a live test environment, you can make sure that this environment is kept up only while needed with configuring your desired routine.
  • Timed Workloads
    Another familiar scenario is to have a bunch of scheduled processing workloads in favor of ML model training or batch ETL that should take place every once in a while and should be taken down after a predefined period of time.

Maintain Visibility

Development teams often manage a whole host of environments and keeping track of all of them (and what’s happening) can be overwhelming. With env0, you already get a single view of all your running (and past) environments, and now you can easily see their scheduled actions on them as well. Managing environments has never been so easy!

Environments in env0
Environments in env0

A Complete History

Of course you also need to know exactly what has happened with your environments, that’s why env0 also provides you a complete audit log actions on your environment, including both manual and scheduled ones, by your team.

Deployment History in env0
Deployment History in env0

Learn More

Whether it’s for your company’s maintenance window, some batch ETL process or ML models training workload, you can configure a predefined schedule that suits your business needs. You’ll keep full control over your environments’ uptime, while keeping governance at a high level with proper permission delegation for your team.

You’re welcome to check out our docs about scheduling, or if you’d like more help, just reach out or schedule a demo with us!