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
- 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:
- Should be run 24/7 or cannot be scheduled
- Can be scheduled
- 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. - 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. - 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
- Planning a schedule
- Creating a schedule
- 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.