Scheduling: Saving Round the Clock

Typical infrastructure load is not homogenous. There are resources active round the clock, as well as those for which the active time is followed by idle hours. There are regular working hours for the capacities used by the enterprise teams for their daily routines, as well as peaks and dropdowns related to customer activities, Database loads, etc. And the best point here is – once a load variations are regular and predictable, they can be scheduled.

Scheduling is quite a simple mechanism allowing you to get your resources turned off automatically when they are not needed, and start them back right before you are going to use them.

Unlike auto scaling based on creation and termination of resources depending on the demand, scheduling is targeted to resources that are expected to have longer lifetime.

As compared to other FinOps optimization procedures, it takes relatively small effort for implementation and does not bring significant changes into the infrastructure composition – so you do not need to re-plan the whole architecture once you decide to introduce schedules.

The picture above actually illustrates the significant effect on compute costs that can result only from switching an instance from 24/7 operation mode to start/stop scheduled lifestyle resulting into only 50 working hours per week (The estimation includes only the compute capacities price, without storage usage and other additional services).

Thus, how can effective scheduling be established? And can Maestro help with it?

Three steps to effective scheduling

To get the most from the scheduling, you would need to take several points into account.

  1. Instances mission. Before starting the scheduling procedures, having a global review of the whole resources set would be big plus. During the review, all instances can be divided in those that:

    1. Should be run 24/7 or cannot be scheduled
    2. Can be scheduled
    3. Should be switched from 24/7 or start/stop lifecycle to create/delete lifecycle

      It is worth scheduling an instance if it is started regularly and/or re-creating such instance from scratch or from a custom image is complicated, time- and effort-consuming. 

  2. Workload types. Different types of workloads have different lifecycles. Production workloads may be needed 24/7 while development environments could be shut down outside working hours. A server can be necessary only by Fridays, for example, or there is a dedicated compute cluster that processes big data sets every night.

    For sure, you could create specific schedules for each of the workload types and fill these schedules with specific instances manually. Still, this is a nice option only if there infrastructure is not large, and you do not plan to create and schedule new resources. Otherwise, you can tag your resources properly and create schedules covering specific tags.  

  3. Instances location. Sometimes the operational time of infrastructure depends on its location in terms of the virtualization region where they are hosted.  For example, you have a distributed development team, with sub-teams in USA and Europe, and you want to start and stop instances in the closest regions according to the local business days. 

Maestro as Scheduling master

Scheduling is actually one of the first FinOps tools introduced into Maestro. Yet, it is one of the most popular ones, and, for some reason, often – one of the most underestimated (because there are still numerous cases when the idea of scheduling itself is not taken into account – otherwise, we would not need to tell about it :))

Maestro actually has tools that would allow you with:
  1. Planning a schedule
  2. Creating a schedule
  3. Checking that the schedule works as expected.

Planning a schedule

As was mentioned at the very beginning of this article, one of the best practices for scheduling is dividing the infrastructure into workloads by tags.

Maestro allows quick tagging of the resources from the Content View of the Management page, so this is just a matter of a few clicks:

Additionally, if you are not sure that a specific instance should be scheduled, the Average CPU Utilization report can give you a quick hint on this;



Creating a Schedule

To create a schedule, you do not need to be good at composing CRON expressions – all you need to do is click the necessary buttons on the wizard on Maestro UI. The interface is very intuitive and actually does not need much explanation:


The wizard allows to set up schedules for start/stop actions for specific instances, instances with a specific tag (which actually means – belonging to a specific workload), and instances in a specific region.

All you need to do after selecting the scope is specify the schedule details and click “Create schedule”.

Checking that the schedule works

Setting up a schedule is the main but not the last step in automating your infrastructure’s lifecycle. Once everything is set up, you may want to be sure that the schedules work properly and that all the scheduled instances are started and stopped properly.

Maestro covers this for you, as it regularly checks if the scheduled instances match the expected state. If not, you will get an email notification informing about the schedule failure – which gives you the ability to quickly identify failure, investigate and fix it within the shortest terms:


Thus, scheduling, once organized wisely, is an approach that can lead to significant cost-cutting with minimum effort and affect for the infrastructure. Maestro, in its turn, is a great tool to organizes the scheduling properly and make sure that it goes  – as expected – like clockwork.


Popular posts from this blog

Maestro Analytics: Essentials at the Fingertips

Maestro: Greeting the Green Dragon

Maestro Orchestrator: Product? SaaS? Framework!