In this lesson,
we will cover when to automate and orchestrate.
Now, let's delve into the critical topic
of automation or orchestration
and their significance in the realm of secure operations.
This lesson is designed to align with Objective 4.7 of
the Security+ SY0-701 certification exam,
where we will specifically focus
on the other considerations as the sub-bullet.
By the end of this lesson,
you will have a deep understanding of when, why, and how
to implement automation and orchestration effectively,
taking into account various factors
to influence decision-making in this domain.
Automation and orchestration are indispensable tools
in our modern information technology
and cybersecurity enterprise environment.
Automation and orchestration offers us the potential
to streamline complex processes,
enhance our security measures,
and significantly improve our operational efficiency.
However, their effective deployment does require
that you consider several factors
before implementing automation and orchestration
in 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.
First, we must consider the complexity
of any potential automation and orchestration projects.
You will find that automation and orchestration technologies
work best when they are applied to repetitive tasks
that are somewhat complex,
since this makes a positive return on investment,
more likely than automating a simplistic process.
So, our first step in determining if we should automate
or orchestrate a given process is to consider
how complex that process actually is,
and if it warrants the time, money, and resources required
to be automated or orchestrated.
For example, if you want to conduct a routine backup
of your server's storage every evening,
this would be a good use for setting up automation,
but it is not complex enough
to require the use of orchestration.
On the other hand, if you want to create a runbook
that can conduct an incident response
on a given workstation when it is identified
as being infected with malware,
you will want to use orchestration,
since this involves numerous complex tasks
like logically isolating the infected machine
from the network, imaging the workstation storage drive,
submitting that dropped image for analysis
to the forensics team, formatting the workstation,
installing a known good operating system image
on the workstation, scanning the workstation
to validate that it's no longer infected,
and returning the workstation to the network.
Now, this can all be conducted
using an orchestration process
that launches multiple different automation process
to complete all of these required tasks.
Second, we need to consider
the cost of implementing automation and orchestration.
Cost is usually going to be a key factor
in your decision making process as to whether or not
you will use automation and orchestration.
While these technologies promise
substantial long-term cost savings
due to their increased efficiency,
they often entail a large upfront or initial investment
to create them in terms of hiring a service provider
to create them or to pay a team of developers
to implement them.
Therefore, you should conduct
a comprehensive cost-benefit analysis
to weigh the expenses associated with the development,
implementation, and maintenance of your proposed automation
and orchestration solutions against the expected benefits
and long-term savings.
You should also make sure
that you're considering all of the costs,
including any hardware, software, personnel,
and ongoing support calls that will be associated
with the automation or orchestration.
For example, at Dion Training,
when we initially began selling discounted exam vouchers
to our students, we started this program using manual labor,
where a real human would receive the exam voucher order
from one of our students, and then they would then assign
an exam voucher to the student and email that voucher code
to that student to fulfill the order.
This worked well when we started the program
'cause we only sold a few vouchers per week,
but as our program became very popular,
we quickly found that it was both cheaper and more efficient
to fully automate the voucher fulfillment process,
even though it wasn't an inexpensive thing to do.
In our case, we began automating this process
a few years ago using some simple automation
that cost us a few thousand dollars.
Over time, as we continued to increase
the number of vouchers we sold,
we upgraded our system to a fully orchestrated system
that is still in use today.
But since we considered the cost,
we began with a manual labor process,
and then implemented an automated process to lower the cost
until it made financial sense
to move to a more expensive and fully orchestrated solution.
Third, you need to consider any single points of failure
that may exist as you begin to implement automation
or orchestrations in your organization's network.
For example, many organizations forget
to build backup systems or manual processes
that can be used if automation
or orchestration systems fail.
This lack of foresight will create a single point of failure
in your organization's network, since everything relies
on your automation and orchestration.
If your automations and orchestrations
are not appropriately designed and maintained,
these systems can disrupt essential business processes
if they encounter an issue.
For example, even though we use our fully orchestrated
voucher fulfillment system at Dion Training,
we still have a manual process that we can use
if our orchestration fails for any reason.
This helps to mitigate the risk of a single point of failure
by implementing redundancy and failover mechanisms,
both technical ones and manual ones.
Redundancy might entail backup servers or failover systems
that ensure uninterrupted operations,
even if one component fails,
or it could involve having a manual labor process
that could be implemented if the automation
or orchestration has failed.
Fourth, we must consider the technical debt
created by our automation and orchestration systems.
Just like any other technology,
our automation and orchestration systems
can accumulate technical debt if not adequately maintained
or if they become outdated.
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,
so to mitigate the risk of technical debt,
it is important that you conduct regular reviews
and updates of your automation and orchestration systems.
This ongoing maintenance helps to ensure
that these systems remain aligned
with your organization's evolving needs
and technology landscape.
For example, here at Dion Training,
we had accumulated quite a bit of technical debt
with our first voucher fulfillment automation system.
So, as we moved to fully orchestrate the process,
we had to spend a lot of time
refactoring our existing code base
before we could move forward with our orchestration project,
which cost us a few weeks of effort
and the associated labor costs
that went along with the code refactoring process.
Fifth, we need to consider the ongoing supportability
of our automations and orchestrations.
Long-term supportability is a vital factor to consider
because as technologies evolve,
our automation and orchestration processes
must also be modified and adapted
to meet this changing technology.
As you invest in automation and orchestration solutions,
ensure that your team possesses the necessary skills
to maintain and adapt to these systems over time.
Training and skill development are essential components
of ensuring ongoing supportability.
I have seen many organizations
who outsource the one-time development for their automations
or orchestrations, and then they're surprised
when their system stopped working after a few weeks,
a few months, or even a few years.
This is because most automations rely on the interconnection
of various systems through the use of APIs and webhooks,
but if any of these various systems are updated, upgraded,
or replaced, it can break all of your automations.
For example, at Dion Training, we have an automation
that is used to pull any questions posted by our students
about four times per day,
and then we create trouble tickets
in our own support system for our Student Support Analyst
to respond to these questions.
If Udemy, one of our partners, updates their systems,
this will sometimes break our automation process
because they change the way
that they receive questions from students
and how they notify us of new questions being posted.
So, our development team has to update our automations
to ensure that they're always working properly
and are supported over time
as other systems are changed and updated.
So when should you automate or orchestrate a given process?
Well, I found 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 one of the ones
that are prime candidates for automation and orchestration,
as they can yield significant time and resource savings,
since they're repeatable and fairly consistent.
If you have a task that is considered a one-off task,
a highly variable or frequently changing task,
then it's probably not a suitable candidate
for automation or orchestration.
For example, if you need to migrate 10 user accounts
from one learning management system to another,
it might take you four or five hours to code
an automation to perform that migration,
or, you can spend 30 minutes manually copying
and pasting the information from one system to another.
If this is a task that you perform every day,
then it would definitely make sense to automate this process
for the cost of four or five hours one time,
and now that process that occurs daily
can only take one or two minutes each time.
Alternatively, is this a one-time task
or a task that may be performed once every few years,
and it doesn't make sense to spend the four or five hours
to automate this task, and instead,
you should just spend the 30 minutes every few years
to mainly migrate those 10 user accounts.
So remember, automation and orchestration
offer immense potential to optimize secure operations,
but their implementation should be guided
by a strategic approach.
By meticulously assessing the complexity of tasks,
weighing the associated costs,
mitigating single points of failure,
managing technical debt,
ensuring ongoing supportability, and focusing on automating
or orchestrating stable, repeatable processes,
organizations can harness
the full power of these technologies.
The decision to automate or orchestrate processes
should be informed by the specific needs, resources,
and circumstances of each organization.
Additionally, it is important that you conduct
continuous monitoring and adaptation
of automation and orchestration systems to ensure
that they remain effective and in alignment
with your organization's goals.