In this lesson,
we're going to cover when to automate and orchestrate.
Now let's dive into this critical topic
of automation and orchestration,
and its significant in the realm of our secure operations.
When we talk about automation and orchestration,
they are indispensable tools
in our modern information technology
and cybersecurity enterprise environments.
Automation and orchestration offer us the potential
to streamline our complex processes,
enhance our security measures,
and significantly improve our operational efficiencies.
However, their effective deployment does require
that you consider several factors
before you implement automation and orchestration
inside of your organization,
including the complexity, the cost,
any single points of failure, the concept of technical debt,
and your ability to conduct ongoing supportability
of your automation and orchestration processes.
So our first step is determining
whether or not we should automate
or orchestrate a given process
by determining how complex the process actually is,
and if that actually warrants your time, money,
and resources that would be required to be able to automate
or orchestrate the entire process.
For example, if you want to conduct a routine backup
of your server storage every evening,
this would be a great use for setting up automation
because it's not really complex enough
to require the use of orchestration.
On the other hand,
if you want to create a runbook
that'll conduct an instant response
on a given workstation
when it's identified as being infected with malware,
that requires a lot more moving pieces.
And so you're going to have to use orchestration
because there's numerous complex tasks
like logically isolating the infected machine
from the network,
imaging the workstation storage drive,
submitting that drive image for analysis
to the forensics team, formatting that workstation,
installing a known good operating system image
on that workstation,
scanning the workstation
to validate it's no longer infected,
and returning the workstation to the network.
And all of this can be conducted
using an orchestration process
that launches multiple different automation processes
to be able to complete all of those required actions
on your behalf.
Now, second, we have to stop
and think about the cost associated
with implementing automation and orchestration.
Cost is usually going to be a key factor
in your decision-making process
as to whether or not you're going to use
automation and orchestration.
While these technologies
do promise substantial long-term cost savings
because of their increased efficiency,
they often entail a really large upfront investment
to be able to create them
because you have to hire a service provider,
or you need to pay a team of developers to make them,
or something like that.
Now, because of this,
you really need to conduct
a comprehensive cost-benefit analysis
to weigh the expenses associated with that development,
implementation, or maintenance
against your proposed automation and orchestration solution
and the benefits that you expect to get
with those long-term savings.
You should also make sure
that you're considering all of your costs,
including all the hardware, software,
personnel, and ongoing support costs
that are going to be associated
with the automation and orchestration functions.
For example, here at Dion Training,
we initially began selling discounted exam vouchers
several years ago to our students,
and we started this program using manual labor
where a real person would simply receive
an email order from you.
We would buy the exam voucher on your behalf at a discount,
and then we would email that voucher code over to you
to fulfill your order.
Now, this worked well enough when we started out the program
because we only sold a few vouchers per week.
But as our program became more popular,
we quickly found that it was both cheaper and more efficient
to fully automate the voucher fulfillment process,
even though this wasn't an inexpensive thing for us to do.
In our case, we began automating this process
a few years ago using some simple automations
that cost us a few thousand dollars to create.
Over time though, as we continued to increase
the number of vouchers we were selling,
we had to upgrade our system
to a fully orchestrated system that we use today.
Now we consider the cost at each step along the way,
and that's why we started with a manual process
to figure out what we needed to do
at the cheapest and easiest way to get started.
Then we implemented an automation process at a lower cost
until it made financial sense for us
to move to a more expensive and fully orchestrated solution.
And I recommend you do the same thing
in your organizations, too.
Now, the third thing we need to consider
is any single points of failure that may exist
as you begin to implement automation
or orchestrations inside of your network.
For example, many organizations will simply forget
to build in backup systems
or manual processes that they can use in case the automation
or orchestration system fails in the future.
This lack of foresight
does create a single point of failure
in your organization's network
because everything is relying on your orchestrations
and automations, and if they stop working,
everything's going to stop working.
Now this is an issue for you,
so you need to make sure your automations and orchestrations
are being appropriately designed to maintain,
and that way you won't have a disruption
to your essential business processes
if one of those encounters an issue.
For example, even though we use
our fully-orchestrated voucher fulfillment system
here at Dion Training,
we still have a manual process
that we can use if the orchestration fails for any reason.
This helps to mitigate the risk of a single point of failure
by implementing redundancy measures
and failover mechanisms into our systems.
And we have both technical ones and manual ones
that we use for administrative processes.
Redundancy here might entail backup servers
or a failover system that ensures uninterrupted operations,
even if one component fails.
Or it could simply involve having a manual process
that could be implemented
if the automation or orchestration fails,
and you have to buy and fulfill those vouchers manually.
Now, the fourth thing we have is technical debt.
Now, technical debt is created
by our automation and orchestration systems
anytime we develop them.
Just like any other technology we have,
these systems can accumulate technical debt
if it's not adequately maintained
or if those systems become outdated
because things are changing,
and we're not keeping up with it.
Technical debt refers to the accumulated cost
and complexity of suboptimal
or hastily implemented software solutions
that need to be addressed or refactored in the future.
This technical debt can impede efficiency
and security for us, so we have to mitigate it.
And the best way to mitigate the risk of technical debt
is to make sure that you're conducting regular reviews
and updates of your automation and orchestration systems.
This type of ongoing maintenance helps to ensure
that these systems remain aligned
with your organization's evolving needs
and your ever-changing technology landscape.
For example, here at Dion Training,
we accumulated quite a bit of technical debt
with that first voucher fulfillment automation system.
So as we move to the fully-orchestrated process,
we spent a lot of time refactoring our existing code base
before we could even move forward
with the orchestration project.
And this cost us weeks of effort
and the associated labor cost that went into that,
with that code refactoring project was pretty substantial.
Fifth, we need to consider the ongoing supportability
of our automations and orchestrations.
Now, long-term supportability is a vital factor
for you to consider, because as your technologies evolve,
your orchestration and automation processes
have to also be modified and adapted
to meet that changing technology.
As you invest in automation and orchestration solutions,
you need to ensure
that your team possesses the necessary skills
to be able to maintain and adapt those systems over time.
Training and skill development
are going to be essential components
to ensure your ongoing supportability
of your automations and orchestration systems.
Now, I have seen many organizations
who simply outsource the one-time development
of those automations and orchestrations,
and then they're surprised when their systems stop working
after a few weeks, a few months, or even a few years.
Now, this is because most automations
rely on the interconnection of various systems
through the use of APIs,
or application programming interfaces, and webhooks.
But if any of those various systems
is updated, upgraded, or replaced,
it can break all of your automations.
For example, at Dion Training, we have an automation
that we use to pull questions
posted by our students about four times per day,
and then create trouble tickets in our own support system
for our student support analysts
to be able to respond to those questions.
So for example,
if the Udemy learning management system gets an update,
that's actually going to break some of our automations
because they change the way they receive
questions from the students,
or have they notify us that a new question is being posted.
So our development team has to go back in
and update our automations
to ensure that they're always working properly
and are supported over time
as other systems along the way are being changed or updated.
So when should you automate or orchestrate a given process?
That's a great question that we really have to answer.
Well, what I have found is that the most effective use
of automation and orchestration
is for tasks and workflows
that are both repeatable and stable.
You should first try to identify any processes
within your organization that remain consistent over time.
These processes are the ones that are prime candidates
for automation or orchestration
as they can yield significant time and resource savings
because they're repeatable and fairly consistent.
If you have a task that is considered a one-off task,
a highly variable task
or a frequently changing task,
it is probably not going to be a good candidate
for automation or orchestration.
For example, let's say you need to migrate 10 users
from one learning management system into another.
Now, it could take you four or five hours
to code an automation to perform that migration,
or you could spend 30 minutes by manually copying
and pasting this information from one system to another.
Now, if this was a task you have to perform every day
by migrating 10 students over,
then it would probably make sense to automate this process
because it would cost you four or five hours one time,
and then after about two weeks,
you've already made up that time,
because now, instead of taking 30 minutes a day,
it's only going to take you one or two minutes a day
to review the results.
On the other hand, if this is a one-time task
or something you do only every couple of years,
it's really not going to make sense
to spend four to five hours of automation
instead of just spending the 30 minutes
it would take you every few years
to migrate those 10 user accounts manually.
So remember, automation and orchestration
offer immense potential to optimize secure operations,
but their implementation
should be guided by a strategic approach.
By meticulously addressing the complexity of tasks,
weighing the associated costs,
mitigating single points of failure,
managing technical debt,
ensuring ongoing supportability,
and focusing on automating or orchestration
stable, repeatable processes,
your organization can harness the full power
of these technologies.
Now, the decision to automate or orchestrate processes
should really be informed by your specific needs, resources,
and circumstances in your organization.
Additionally, it's important
that you conduct continuous monitoring
and adaptation of your automation and orchestration systems
to ensure they remain effective
and in alignment with your organization's goals over time.