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 that we want to stress more than anything else, when 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 terms you're going to see on security plus, and I want to make sure we 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 Meyers widget All of a sudden, lots of people want to attack that server, they want to get to that server rack, 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 servers, 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. And that lasticity 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 empty. possible. 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 the 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 virtualized 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, let's make it 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 the 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 we'll 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 distributed allocation, really, that's a nice word of saying more than one server be redundant, but spread them out so that there's, 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 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 persistence. Non persistence simply means that it isn't persistent. And when I say persistent, I mean, permanent. Within the IT world, many configurations and setups, 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 can avoid these more aggressive steps and create non persistence within our systems, it gives us great resiliency. Now, there's a gazillion ways to do non persistence. The exam talks about just a few of them. So let's go through those very, very quickly. The first one is the term a 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 a boon to 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 VMs. Once I've got a new VM configured just where I want it, I'll tend to take a snapshot of it. And I'll put in 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 this notice this 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 back up, I can say, fire up the VM, but don't use what I have revert to a snapshot. So snapshots are incredibly powerful, and especially within the world of VMs. They're pretty standard equipment. Now, non persistence isn't limited to simply things like snapshots another great example is if I've got something in a known state. And I'd like to get back to that now you 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 uninstalled 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. In other places on all my Cisco routers, when I set up a Cisco router, I 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 at driver here. 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 non persistence and to 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've started up a virtual machine, and I threw in a boon to installation disk Well, not really a disk, 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 doesn't have to be a CD, it could 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'll use everything but my hard drive. The only downside is, 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.