Resiliency is the ability of something to withstand a negative impact.
And what I want to talk about this episode in particular is system resiliency.
So what can we do to make individual systems resilient to whatever naughtiness is that take place out
there.
Now the first thing I want to stress more than anything else what do people think about resiliency on
a system they tend to say the word backups now backups are important.
And I would not argue that they aren't a part of what resiliency means but it's a lot more than just
backup so there's going to be some turns you're going to see and security plus and I want to make sure
we've got these covered.
So what I want to do to get started is let's imagine what we want to do is come up with ways to create
resiliency so one of the things we can do is scalability.
No you don't just make the machine bigger what you can do is that let's say for example that that machine
is a server and that server is serving up some new Mike Myers widget and all of a sudden lots of people
want to attack that server.
They want to get to that server.
They just want to order widgets.
Scalability simply means we can add more servers we can just keep piling them up until we have enough
servers to take care of the demand of whatever might be taking place.
Now let's go back to our one little machine one more time because the next term I want to talk about
is elasticity elasticity.
Let's go with that same analogy of web service except these web servers are selling tickets to a really
really popular musical group.
I'm not going to name any because I'm old.
So what's going to happen here is that when a show comes up we're going to have to scale up and all
of a sudden here come lots of new servers they're ready to take care of it.
But plasticity is different than scalability in that alas history also means that after the sale we
can drop down to as little as another single server again because we just don't have that many orders.
The important thing about scalability and elasticity is that it sounds almost impossible I mean how
would we do that.
Well the beautiful part is things like infrastructure as a service and software as a service make these
things fairly easy for example Amazon S3 tools allow us to with a simple turn of a knob and some drainage
on my credit card to be able to quickly populate new servers that are absolutely identical to my virtual
server that I'm already hosting on that service.
So that place it works really really well.
Now similar to this is something that is called redundancy.
Now if you've been watching other episodes you know that redundancy just means more than one of the
exact same thing.
So redundancy is very very important.
So if I've got some low it's making a little bit simpler in this case let's say I've got a domain controller
here in my office.
If that domain controller goes out I'm in trouble.
So what we can do is add a second domain controller or even a third if we wanted to and then that way
if any one of those go out we have a redundant system ready to go.
Now the only downside to redundancy is that it doesn't define much more than having more than one.
So let's say we have another situation where we have accounts receivable databases and I have a far
flung company that's all over the United States and I will say We're based out of Houston Texas.
So if I just have one server in Houston Texas everybody all over the country.
So people from California and people from New York as well as people from Texas are all trying to get
to that server.
Now I could make more servers.
That's easy enough to do.
But what would might be even better is if I perform a distributive allocation.
Really that's a nice word of saying more than one server be redundant but spread them out so that there
is if I had a bad hurricane here in Houston we would still have good redundancy but we would also have
geographical distance.
So in this case I could put a server in California keep my server in Houston and put another one on
the East Coast and I'd now have really good distributed allocation.
Now these are all really really important things.
But there's one more aspect to system resiliency that I want to talk about and that is the very interesting
topic of non-persistent
non-persistent simply means that it isn't persistent.
And when I say persistent I mean permanent within the I.T. world many configurations and set ups once
established don't really have a way for you to take them away other than wiping things clean reinstalling
or if we're lucky returning from a backup.
So if we could avoid these more aggressive steps and create non-persistent within our systems it gives
us great resiliency.
Now there's a gazillion ways to do non-persistent.
The exam talks about just a few of them.
So let's go through those very very quickly.
The first one is the term snapshot a snapshot simply means to take the current state of something at
a binary level and keep a copy of it.
Now this happens in a lot of different aspects within systems but probably the most common is within
a virtual machine.
Now if you take a look at my VM right here.
So I've got this VM it's Ubuntu and it's up and running.
I've got a terminal open.
I've got certain pieces of software installed on here.
I've got this configured the way I want and I want to keep a copy of this just like it is.
So what I can do here is I go over to settings and I can take a snapshot.
So I give it some name
Mike's perfect setup.
This is actually a snapshot.
I do a lot with DMD's.
Once I've got a new VM configured just the way I want it I'll make a snapshot of it and I'll put it
here just fine.
Now what I'm going to do is just hit OK.
And what I've done here is I'm saving a copy of this system exactly as it is now.
Notice the system still running.
The snapshot is a second copy and I can go ahead and install software do whatever I want to do if anything
happens from this point forward.
I can just fall back to that original snapshot.
So I'm going to just close this ugly way.
And when I go back into here this is Mike's perfect setup.
If you take a look here it's under machine tools under snapshots.
I can just go here right now and I can fire this snapshot backup.
I can say fire up the VM but don't use what I have.
Revert to a snapshot.
So snapshots are incredibly powerful and expensive within the world of CMS.
They're pretty standard equipment now.
Non-persistent isn't limited to simply things like snapshots.
Another great example is if I got something in a known state and I'd like to get back to that now you
would think Well Mike isn't that a snapshot.
A snapshot tends to talk about an entire machine.
What we're talking about in this particular case is one small aspect of a machine.
So a great example of that would be here on my system right here I've got Windows Update.
Now Microsoft does a pretty good job with updates but old codgers like me can tell you stories about
five or six Microsoft updates that came out over the years that we ended up going.
Oh please take this update off so we can get back to a known working state.
And Windows has always had this.
I'm using Windows 10 here.
But if you take a look I can click under View installed update history and I can actually go in and
uninstall any particular updates I might have installed.
So it's a very great way to simply be able to go back to a known state to do whatever you need to do
now in no way is this limited to just Windows operating systems and other places.
All my Cisco routers when I set up a Cisco router ice store everything in one configuration file and
I keep that configuration file if I make changes on the router I make a copy of the configuration file
so I've got a copy of the old configuration.
That way if I ever have a problem I can just restart the router by using one of the older configuration
files.
So that's another great example of where you can return to a known state.
The last term we see on the security plus is something called rollback.
Now rollback tends to zero in on a very very small part of the system.
So within the Windows world probably the most classic rollback is good old drivers.
Now if you take a look here on Device Manager under display adapters.
So I've got this old Intel.
Don't tease me about my old driver here.
My old graphics card the drivers fine.
So if I take a look under properties all I have to do is look a driver here and you'll see I have an
option called rollback driver.
I'm going to be in scenarios where I've installed a driver and suddenly things aren't going the way
I want them to.
Windows and not just Windows.
Other Operating systems are pretty good about this too.
I can simply go into an individual driver and I can roll it back.
Even some applications will have this where you update a particular application and suddenly you've
got a problem.
Even applications will often have a rollback feature which simply lets you go back to the previous version.
Now there's one more really great example of not persistence and take a look at that.
We need something called a Live-CD.
So let me pull up for you.
Right here what you're looking at.
Let me make this big so we can see it.
What I've done is I started up a virtual machine and I threw in a Ubuntu installation disk.
Well not really a desk I'm using an ISO file but what we can do with installation media for operating
systems is I can throw one of these in and generate what I'm going to call a live-CD what we're talking
about that is Live-CD or does it have to be a CD it can be a thumb drive also.
You have this live boot media.
So what's happening here if you take a look on the screen it says try Ubuntu on one side and install
Ubuntu on the other.
If I install Ubuntu I am creating persistence.
It's going to actually install itself onto the hard drive and it's just going to be that way.
However if I want to I can just run it from the live media.
It will literally boot this operating system.
Ubuntu in this case it'll use my RAM it will use everything but my hard drive.
The only downside is if I shut that system down it's going to disappear but it's a great way if you
just want to try something.
Or if you don't want to put hard drives into a system these are really great ways to provide non-persistent
States for good system resiliency
and.