"NoSQL", "Big Data", "DevOps" and "In Memory Database" technology are a hot and highly valuable skill to have – and this course will teach you how to quickly create a distributed environment for you to deploy these technologies on.
A combination of VirtualBox and Vagrant will transform your desktop machine into a virtual cluster. However this needs to be configured correctly. Simply enabling multinode within Vagrant is not good enough. It needs to be tuned. Developers and Operators within large enterprises, including investment banks, all use Vagrant to simulate Production environments.
"NoSQL", "Big Data", "DevOps" and "In Memory Database" technology are a hot and highly valuable skill to have – and this course will teach you how to quickly create a distributed environment for you to deploy these technologies on.
A combination of VirtualBox and Vagrant will transform your desktop machine into a virtual cluster. However this needs to be configured correctly. Simply enabling multinode within Vagrant is not good enough. It needs to be tuned. Developers and Operators within large enterprises, including investment banks, all use Vagrant to simulate Production environments.
After all, if you are developing against or operating a distributed environment, it needs to be tested. Tested in terms of code deployed and the deployment code itself.
You'll learn the same techniques these enterprise guys use on your own Microsoft Windows computer/laptop.
Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.
This course will use VirtualBox to carve out your virtual environment. However the same skills learned with Vagrant can be used to provision virtual machines on VMware, AWS, or any other provider.
If you are a developer, this course will help you will isolate dependencies and their configuration within a single disposable, consistent environment, without sacrificing any of the tools you are used to working with (editors, browsers, debuggers, etc.). Once you or someone else creates a single Vagrantfile, you just need to vagrant up and everything is installed and configured for you to work. Other members of your team create their development environments from the same configuration. Say goodbye to "works on my machine" bugs.
If you are an operations engineer, this course will help you build a disposable environment and consistent workflow for developing and testing infrastructure management scripts. You can quickly test your deployment scripts and more using local virtualization such as VirtualBox or VMware. (VirtualBox for this course). Ditch your custom scripts to recycle EC2 instances, stop juggling SSH prompts to various machines, and start using Vagrant to bring sanity to your life.
If you are a designer, this course will help you with distributed installation of software in order for you to focus on doing what you do best: design. Once a developer configures Vagrant, you do not need to worry about how to get that software running ever again. No more bothering other developers to help you fix your environment so you can test designs. Just check out the code, vagrant up, and start designing.
A quick summary of the tooling that you will need to use. Also a short recap as to some of the experiences I went through, in the enterprise world, when this tooling was not considered.
Possible course curriculums to follow ...
I show you some real enterprise hardware. This is the sort of hardware that we are trying to simulate within Vagrant. Here I show you my HP C7000 blade infrastructure. Blades and switches
Here I show you where you can acquire and download the free tooling needed to carve up your desktop / laptop machine
Here you start to build out your first Virtual machine. You start from a blank Vagrantfile file! You will manually add entries to this file one concept at a time. You will truly know what every concept means by the time you finish the course.
You have the choice of using the RESOURCES.zip file. Simply unzip and work in this new directory, or create an empty directory somewhere on your system and work from there.
IMPORTANT : Pinning the version of an imported vagrant box in order to prevent using future vagrant boxes which may be broken!
You will start up your first Virtual machine. You will make sense of the output from both VirtualBox as well as Vagrant.
Here you will practice controlling the newly created Virtual machine. Now that you can build this Virtual machine from scratch, you can now launch and terminate this virtual machine at will. If you make a mistake with the vagrant commands, don't panic. You know how to recreate and relaunch.
Technically the course can end here! But you need to carve out and configure a multi-node environment in order to deploy a cluster, The rest of the course concentrates on this.
Here you convert your initial Vagrant script to use variables. It's best not to use hard coded values within the main body of the Vagrantfile.
Here I show you the option of detaching the Linux Centos console window into it's own console window.
This is for those who like to have that "putty" like experience in order to have multiple Linux sessions opened.
Here you will change the underlying Linux operating system. You will configure the script in order to use the Graphical User Interface version of Centos Linux. Potentially an alternative to Windows.
You will now have the choice of using the lightweight console only version of Centos or the heavyweight GUI version.
The concept taught here is that it is very easy to select and switch to any operating system that has been built for Vagrant.
You will need to provide a friendly name to your Virtual machines as multiple Virtual machines are launched and listed within VirtualBox. This gives you the ability to control the Virtual machines from VirtualBox if Vagrant is not responding to your commands to control your nodes.
As an example, a corrupted script.
Switching vagrant box if you find a prebuilt, atlas, hosted box has issues ...
Just as you provide your Microsoft Windows machine a name/hostname, so too you must provide your Linux operating system a hostname. Especially in a multiple Virtual machine environment. The changes here gives you the ability to control the hostname across multiple Virtual machines.
Your Virtual machines require correctly configured IP addresses to communicate among themselves. For Datacenter type servers we rely on static IP addresses, not dynamically allocated ones. Here we script this by controlling the IP addresses among all the Virtual machines.
In any cluster you build, you will have Management nodes, Worker nodes, Proxy Nodes etc ...
Each node will require it's own memory settings. Here you will extend the script so that no matter the number of Virtual machines configured, you can easily drill into one Virtual machine and configure the exact amount of memory that is required.
In any cluster you build, you will have Management nodes, Compute nodes, Proxy Nodes etc ...
Compute nodes will require more CPU than Proxy nodes.
Each node will require it's own CPU settings. Here you will extend the script so that no matter the number of Virtual machines configured, you can easily drill into one Virtual machine and configure the exact amount of CPU that is required.
Here I explain why centralizing your software resources in one location within your organization is a benefit.
If you are installing software within Production where portions of the binaries are housed on some external repository on the internet not controlled by you, then you are asking for trouble.
The remote site may be down for maintenance. Better to download and centralize your resources
Here, you will actually step through, configuring a centralized location (outside of the vagrant folder) for software. You will also test to make sure that the Virtual machine has access to the configured location.
PART I
Your script is now multi-node capable.
To add a new managed Virtual machine to your cluster, add a single line of code to your script
To add five new managed Virtual machines to your cluster, add five lines of code to your script!
Each line configures the Virtual machine' s - hostname, IP address, CPU, Memory and operating system
PART II
Your script is now multi-node capable.
To add a new managed Virtual machine to your cluster, add a single line of code to your script
To add five new managed Virtual machines to your cluster, add five lines of code to your script!
Each line configures the Virtual machine' s - hostname, IP address, CPU, Memory and operating system
Even though all the Virtual machines have their own hostname configured. The Virtual machines are not able to ping each other via the hostname (they certainly can via the IP addresses) of any of the other hosts. We will look at the reasons why and fix this in the next lesson
Here you will configure an addin to Vagrant that will help you manage the host files within not only our Centos Virtual machines, but also our Microsoft Windows host.
You will configure your project in order to install software across your Virtual machines.
You will download java as well as utilize the script provided for you. (RESOURCES.zip).
You will manually setup and execute the software installation script within one of your Virtual machine to ensure it works. In the next lesson, you will integrate the installation script into your Vagrant file.
Here you will configure your Vagrant file to run the installation script across ALL your Virtual machines.
At last! You made it. Congratulations.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.