Real World Vagrant For Distributed Computing
4.6 (52 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
840 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Real World Vagrant For Distributed Computing to your Wishlist.

Add to Wishlist

Real World Vagrant For Distributed Computing

Build a Distributed Cluster of Virtual Machnes with a single command! Ready for BigData, NoSQL or IMDB installation.
4.6 (52 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
840 students enrolled
Created by Toyin Akin
Last updated 1/2017
English
Current price: $10 Original price: $90 Discount: 89% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 4 hours on-demand video
  • 3 Articles
  • 4 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
What Will I Learn?
  • Simply run a single command on your desktop, go for a coffee, and come back with a running distributed environment for cluster deployment
  • Quickly build an environment where any NoSQL, IMDB or BigData software can be installed
  • Ability to automate the installation of software across multiple Virtual Machines
View Curriculum
Requirements
  • Basic programming or scripting experience is required.
  • You will need a desktop PC and an Internet connection. The course is created with Windows in mind.
  • The software needed for this course is freely available
  • You will require a computer with a Virtualization chipset support - VT-x. Most computers purchased over the last five years should be good enough
  • Optional : Some exposure to Linux and/or Bash shell environment
  • 64-bit Windows operating system required (Would recommend Windows 7 or above)
  • This course is not recommened if you have no desire to work with/in distributed computing
Description

"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.

Who is the target audience?
  • Software engineers who want to expand their skills into the world of distributed computing
  • System Engineers that want to expand their skillsets beyond the single server
  • Developers who want to write/test their code against a valid distributed enviroment
Compare to Other Distributed Computing Courses
Curriculum For This Course
26 Lectures
04:00:26
+
INTRODUCTION
3 Lectures 22:08

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.

Preview 13:17

Possible course curriculums to follow ...

Preview 00:06

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

Enterprise Hardware
08:45
+
CLUSTER TOOLS
5 Lectures 45:03

Here I show you where you can acquire and download the free tooling needed to carve up your desktop / laptop machine

Deployment Tools
12:38

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.

Configure First VM
10:43

IMPORTANT : Pinning the version of an imported vagrant box in order to prevent using future vagrant boxes which may be broken!

Fixing the version of boxcutter to : 2.0.14
00:26

You will start up your first Virtual machine. You will make sense of the output from both VirtualBox as well as Vagrant.

Run First VM
11:01

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.

Managing the VM
10:15
+
CONFIGURE VIRTUAL MACHINE - PART I
7 Lectures 01:07:43

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.

Vagrant Variables
05:58

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.

Vagrant VM - Detach GUI
09:28

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.

Vagrant VM - Desktop
12:40

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.

Vagrant VM - VirtualBox Friendly Name
09:00

Switching vagrant box if you find a prebuilt, atlas, hosted box has issues ...

vm network
00:27

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.

Vagrant VM - Hostname
16:46

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.

Vagrant VM - IP Address
13:24
+
CONFIGURE VIRTUAL MACHINE - PART II
4 Lectures 28:42

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.

Memory Configuration
07:32

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.

Virtual CPU configuration
07:35

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

Preview 06:11

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.

Custom Repository - Activate
07:24
+
MULTINODE CLUSTER
4 Lectures 50:01

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


Multinode VMs - Part1
11:36

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

Multinode VMs - Part2
11:54

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

Multinode VMs - Host File
12:02

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.

Multinode VMs - HostManager
14:29
+
DISTRIBUTED SOFTWARE DEPLOY
3 Lectures 26:53

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.

Multinode Software Installation- Part1
11:43

Here you will configure your Vagrant file to run the installation script across ALL your Virtual machines.


Multinode Software Installation- Part2
11:43

At last! You made it. Congratulations.

Summary
03:27
About the Instructor
Toyin Akin
4.1 Average rating
145 Reviews
1,428 Students
15 Courses
Big Data Engineer, Capital Markets FinTech Developer

I spent 6 years at "Royal Bank of Scotland" and 5 years at the investment bank "BNP Paribas"  developing and managing Interest Rate Derivatives services as well as engineering and deploying In Memory DataBases (Oracle Coherence), NoSQL and Hadoop clusters (Cloudera) into production.

In 2016, I left to start my own training, POC-D. "Proof Of Concept - Delivered", which focuses on delivering training on IMDB (In Memory Database), NoSQL, BigData and DevOps technology. 

From Q3 2017, this will also include FinTech Training in Capital Markets using Microsoft Excel (Windows), JVM languages (Java/Scala) as well as .NET (C#, VB.NET, C++/CLI, F# and IronPythyon)

I have a YouTube Channel, publishing snippets of my videos. These are not courses. Simply ad-hoc videos discussing various distributed computing ideas.

Check out my website and/or YouTube for more info

See you inside ...