Hi. Welcome back to Module three. This is less than 3.1 bag rent. And this Let's never discuss vagrant and virtual box and how we're going to use that in this course. Bagram is configuration management. Four. Virtual Box and Virtual Box is the actual virtualization software.
Virtualization software allows you to create virtual computers on your main computer
via software, and virtual computers are isolated from your main host. And also keep in mind that these virtual computers operating systems are complete. Anything you could do on your host you can do on that virtual computer.
The key take away from this is that because they're logically isolated. If something goes significantly wrong on that virtual computer, then you do not have to worry. Your host computer will not be impacted.
So this segregates your host computer from virtual computers,
settings and configurations. Do not impact your main computer, and that's an important future toe Have I used to not use virtualization for development, and there was a time when a certain dependency would actually mess up my local hosts video card. It would no longer function correctly, and I could no longer update it,
and it was a lot of trouble to get working again. I ended up having to reinstall the operating system, at which point I merely installed those dependencies again that I thought were the suspicious files. And sure enough, once I reinstalled them, the same problem occurred, and that was part of my motivation to move to virtualization. In fact,
that's when I started using virtualization saw for
so then no longer had to work, worry about what was going on, the host versus the virtual machine versus the development.
Now Bagram quickly configures virtual box for expedited development. Without vagrant, we could establish those virtual machines with virtual box by themselves. But then we'd have to go through all the installations of everything we need to set up that operating system as a development environment, much like we would do on our host machine.
Now the strength of aggregates us is that let's just set up pre configured development environments.
So the setting up on new environment could become a ZZ as issuing a command such as vagrant up, waiting a few moments while it installs everything and then just start developing. And that is pretty significant time saving and some scenarios. There are some development environments
they could take up to an hour to set up or get going.
And, of course, that the length of time to set up environments depends on everything that's required and what exactly you're developing. There are some things to keep in mind when working with virtualization is that the host computer must support virtualization. This is determined by the motherboards and CPU,
but if you've never worked with virtualization, you shouldn't fret too much.
Most modern computers are built with support for virtualization. It's becoming a very common feature
now. One of my computer science professors once told me that when you work with computers, there's always a trade off. It could be a minor trade off or a major trade off. But when you're doing something, you're typically making a trade. And there is a trade being made when we use virtualization. Virtualized computers are always slower than the host
Now. This could be negligible on very fast computers
or on just fast computers. You may not notice that the virtual computer is actually not going as fast as your host computer, and if you're working on a small development environment, that's usually just fine.
However, if you do happen to be starting with a slow computer, you may notice the virtualization is very slow. So keep these things in mind when you begin using virtualization. And as far as my experience goes, if you can use virtualization in your development, it's a great path to walk
because it makes things a lot easier once you get used to using it.
So that completes this lesson, and I hope to see you in the next thank you.