Thursday, September 23, 2010

Reinventing the Virtual Classroom in the Cloud

Adam Monago, Vice President of ThoughWorks Studios on the Chief Learning Officer site (http://www.clomedia.com/talent.php?pt=a&aid=3032) provided a good intro post on an area which is going to experience a lot of growth over the coming years. 
I wanted to expand on the ideas he outlines in the article around a virtual lab provisioning system.  As far as I know, we are the only company delivering a complete end-to-end virtual learning system for technical training.  Our new release due out at the end of October includes solutions for all of the items listed below www.grokworx.com

Content updating

You need to be able to rapidly update content in the cloud.  In most scenarios an educator continually tweaks hands on lab images to fix small issues, or update to newer software releases.  Ideally, you should be able to continually update and publish a lab to your library for participants to access in a few minutes. 
Updated content should automatically appear to the participants the next time they access the labs. 

Manage asynchronous and synchronous learning modalities

Just having the content online isn’t enough, you need the management tools to be able to leverage the same content for both scheduled (synchronous) and on demand (asynchronous) delivery types.  As an educator, you don’t want to spend a lot of time managing access for your participants.  The whole process needs to be seamless; regardless of how the labs are consumed.  
Any Lab, Any time can leverage a learning library as an added bonus to participants and educators. A participant can choose the lab they want to launch on their own time, without any management intervention.

Security

Educators needs advanced security to ensure content is only accessed by the intended audience to maintain copyrights, intellectual property, and non disclosure.    

Lab sharing / performance-based testing

One of the most exiting parts of a virtualized lab system is the ability to measure students based on their ability to actually perform a task (scenario based), instead of answering written test questions.  This can be an easy process:

  1. The participant would receive a lab to complete
  2. Work through scenario 
  3. After completing the steps share or “submit” the lab back to the instructor for review/marking. 
This also works well with distance education where a student can share their VM out with an instructor and explain what the problem is using an office hours type of concept.  The instructor and participant can collaborate to fix the problem.  All of this would be done on each other’s own time.

Complex lab environments

It is very common in technical training to require multiple VMs for each student.  In corporate environments you may need to provide the complete software stack in order to conduct a lab, which means both the server and client virtualized together.   These VMs need to be able to communicate with each other, but need to be isolated from all other student VMs.
In some lab scenarios where you are doing time based activities, like show me the transactions from the last 30 days, require setting the clock on the virtual machine to the same date every time it is issued to a student.      

Save lab WIP (work-in-progress)

There are many scenarios where a participants needs to save their work over the duration of their learning activity.  If you are doing asynchronous training they may get interrupted and need to save their work until they are able to come back to it again.  If you are doing synchronous deliveries they may need to retain their data over several weeks. 

Lab switching 

When designing technical training content, it is very common to have a “starting” point which every participant uses to complete a lab to reduce the number of potential problems from previous mistakes.  The system needs a mechanism to easily switch between the different sets as a participant completes the lab activities.   

Lab performance

If you are leveraging cloud-based labs in a traditional classroom environment, make sure the facility has enough bandwidth to accommodate it.  
Latency is a concern when doing remote labs.  You need to be within a 120-160ms of the servers to have a good experience. 
The type of content can also be a concern. If your labs have a lot of moving pieces on the screen this generates more bandwidth.  When you design the labs and configure the VM make sure to optimize it for remote control.  Using a solid color for a desktop background and disable any visual effects is a good starting point. 

Geographically dispersed public / private cloud lab machines

It is critical to have lab machines close to the participants to give them a good experience.  As well, some lab machines have sensitive data on them which can not leave a controlled internal network. 
Being able to position those lab machines anywhere without losing the management capabilities is a key requirement.  

Instructor collaboration

Instructor needs to be able to take control of a student’s VM, but they also need to be able to talk (voice not chat) privately just like they do in a real live classroom when doing VILT (Virtual ILT).  This isn’t part of the cloud-based labs, but is important to have this feature in your supporting presentation toolkit. 

Wednesday, June 30, 2010

Why Can't Virtual Be Better?

The primary role of an educator is to organize and impart knowledge in a way which can be best consumed by the students.  It is pretty safe to say:

  • Students have varied levels of knowledge
  • Students have different reasons to engage in learning
  • Students live in different geographical locations
  • Student have their own work related challenges
  • Students can only learn so much information before they are “overloaded”

It seems everyone just accepts the idea the best training happens in a physical location.  The main thing a physical environment gives you is the ability to view body language.  The opportunity to visually know if the person you are working with is actually “getting it”.      

As a trainer, should I not be able to have the virtual tool chest to not only make virtual learning equal to physical learning, but actually provide significantly better long-term experience.

Virtual Tool Kit

What are some of the things we have at our disposal in our virtual arsenal (not in any particular order of importance):

  • Labs, labs and more labs
    • 24x7
    • Collaboration between instructor and student (both asynchronously and synchronously)
    • Publish custom labs to a particular student just to meet their requirements
  • Assessment testing
    • Written assessments with automatic grading
    • Performance based testing with labs
    • Gauge student progress
  • Office Hours
    • Have students visit you during set times
    • Video and Voice (yes, you need to make sure you get dressed -- at least wear a clean shirt)
    • Bring up a lab if you need to
  • Synchronous ILT sessions
    • 2-3 hours max per synchronous session
    • Prevents information overload
    • Easier to fit into their schedule
    • Yes, the student needs to make sure they put themselves in a room/place where they can’t be disturbed
    • Keep in mind that in order to qualify for SATV vouchers we still need to deliver the equivalent of 6 hours per day of instructor time, which the Office Hour concept could be part of. 
  • Private forums
    • Support from not only the instructor but your peers
  • Private messaging
  • Virtual Curriculum
    • Combine labs/assessment testing/forums/whitepapers/video/ html resources, etc.... into a single step-by-step guide
    • Similar to an LMS type of system
  • What else do we need??

Sample Program

Course is delivered via a Virtual Curriculum, which is broken out into each module.  It would include the lab links, and “extra” information for them to read through, and an assessment test to make sure they are getting it.  It is the foundation to keep the student and instructor on track and organized.

  • A five day course would take five weeks to complete. 
  • We try to break a course down into two hour chunks and ideally would allow modules to run independently
  • Modules for that session are “recorded” so if a student misses it, then they can “catch up”.  These recordings are only for students that are enrolled in the program.  They show up in their Virtual Curriculum area for that module.  They won’t be used for self-paced. 
  • We have two two-hour “office hour” sessions which students can connect into in order to ask questions.  If you were running three or four courses at the same time, any of your registered students could access the office hours session.
  • This gives the students the opportunity of 8 hours per week of interaction with the instructor.
  • Each course has their own private forum
  • It gives the students five weeks of access for the labs, which could be extended if we want to.

Virtual/Physical Hybrid Learning

Does it have to be “OR”, maybe it can be “AND”? A corporate customer may like the idea of one or two days of “intense” on-site delivery supplemented by a virtual learning track.  I always find it easier to work virtually with someone after you have met them in person. 

If you are using hosted labs, then the customer just needs to provide good Internet connectivity in their training room

Discussion

I know there are people that detest virtual learning; they will always want to go to a physical delivery.

In your experience what do you think students want?

Ideas for other virtual scheduling/structures?

Does this need to be condensed more? 

What are some other virtual tools we need?

General comments.......


Tuesday, June 22, 2010

Virtual Learning Lab Hypervisor Comparison

This article discusses the top requirements for a virtualized lab management system, as promised in my previous article about Virtual Lab Requirements. This is not a datacenter view on the different technologies.  I am not overly concerned about the "performance" of a given hypervisor, nor am I concerned about the management tools supporting the hypervisor. Our focus is building virtual educational lab infrastructure.  
 
Here are our top requirements for virtualized lab management: 
  1. Remote Control Access
  2. Student/Instructor Collaboration
  3. Virtual Machine Control/Build API
  4. Network Control
  5. OS Support 
  6. BIOS Clock Control
  7. Virtual Machine Storage

The software used to provision the labs is called a hypervisor and its associated management software.  For each component that I discuss I am going to call out some of the strengths/weaknesses with Microsoft Virtual Server, Microsoft Hyper-V, VMWare Server, and Oracle's VirtualBox.  I haven't included XEN in this list of comparisons because the lack of an obvious remote control access technology discouraged me.  I looked at XEN quite a while back when we were having problems with the BIOS Clock Control and Microsoft Virtual Server, until we identified a hack to solve it.   I returned to look at XEN two years ago to solve our 64bit Guest OS problem, but it just wasn't a good fit.  Truth be known, I believe a type 2 hypervisor is the best choice as a training platform because of its portability and flexibility.    

Remote Control Access

In most scenarios duplicate lab machines are active at the same time.  This requires network isolation to eliminate errors from duplicate IP addresses and prevent people from interfering with each other's lab.  Remote control to the guest OS isn't really practical because you don't want to rely on configuring the Guest OS for remote control, and if you are doing many different operating systems, it becomes a burden.  Remote control needs to be done at the Guest OS console/BIOS level to control all aspects of a virtual machine and to provide consistent access regardless of the Guest OS. 

Remote control access is one of the pieces proprietary vendors guard to promote/protect their technology stack.  
 
  • VirtualBox has a built-in VRDP server which allows direct RDP access to the guest OS console/BIOS level.
    • Version 3.2 can optimize remote control by redirecting video streams from the guest to the RDP client (needs RDP 7). Video frames are compressed using the JPEG algorithm allowing a higher compression ratio than standard RDP bitmap compression methods.
    • VirtualBox's reliance on generic RDP allows connectivity from any platform which has an RDP client (pretty much everything, even the iPAD has one).  
    • no additional infrastructure required
  • Microsoft Virtual Server (Grokworx's current lab platform) uses a VMRC control which is a proprietary derivative of VNC to achieve console level access.
    • Requires a connection from a Microsoft Windows OS. 
  • Microsoft Hyper-V can provide guest console access
    • Requires a connection from a Microsoft Windows OS. 
  • VMWare Server has a built in VNC server which gives you direct guest console access 
    • VNC can be used by pretty much everything
  • VMWare View/ESX can provide remote control to the Guest OS through their VMWare View client plus infrastructure.
    • Requires additional infrastructure/licenses
    • open source version which can run on a variety of different client computers. 
    • It is too bad you can't use the Open View client to make a direct connection to an ESXi host. 

Winner:  VirtualBox, the ability to connect to the guest OS console from any type of client with the performance of RDP.  The ability to do redirected video is a very nice plus.

Note:  There is one downside to the VirtualBox RDP option and that is each virtual machine needs to have a unique port and it isn't firewall friendly.  Down the road we are going to look at connection brokers like No Machine (www.nomachine.com) which could help solve this problem.  VMWare View does provide a connection broker service as part of its stack.  

Student/Instructor Collaboration

Simultaneous access to the same console enables two scenarios:
  • student lab assistance
  • class level demos.


During lab time the instructor should be able to pull a student to the side and offer them one-on-one assistance similar to the physical classroom experience.  For demos we want the instructor to leverage the virtual lab infrastructure.  There is a scenario where instructors can use desktop sharing and share out a local copy of the software, but this is an unnecessary burden on the instructor and they may not have the hardware or software required to run the labs properly. 

 
  • VirtualBox has a per VM setting which allows multiple connections
  • Microsoft Virtual Server has a server setting which allows multiple connections
  • Microsoft Hyper-V doesn't allow simultaneous connections because of a "security" precaution which can not be changed.  For some reason the Hyper-V team has decided to do its best to remove any functionality required for training.
  • VMWare Server allows simultaneous connections
  • VMWare View/ESX allows simultaneous connections

Winner:  They are all winners; except for Hyper-V, which is an epic FAIL. 

Virtual Machine control/build API

A Lab system should be able to support an "any lab, any time" mantra, which means you don't need to pre-build a student's lab before it is being requested.  When it is being requested, you need to be able quickly build and deploy the image template for use.  A good definition of quickly means a student should have something ready to  go within 60 seconds from the time they requested it.  After the time has expired for the student the resources should be released back into the pool for the next student to use. 
 
  • VirtualBox has several different ways to control the virtual machine environment
    • Web Services
    • XPCOM
    • Command line
  • Microsoft Virtual Server uses Microsoft COM
  • Microsoft Hyper-V uses Microsoft WMI
  • VMWare 
    • Command Line
    • VIX API supports management of VMware Server and Virtual Infrastructure. Bindings are provided for C, Perl, and COM (Visual Basic, VBScript, C#).

Winner:  VirtualBox and VMWare both have a lot of connectivity options across platforms to interface the lab management control.  

Network Control

A lab environment needs to simulate real-world scenarios.  This means students may have complex lab configurations.  In a recent scenario we ran for Microsoft  Live Communication Server each student had seven virtual machines over three different network segments.  Obviously, this is an extreme case, but in the real world you frequently have more than one network segment; especially with any Internet configuration in the mix.  
 

  • VirtualBox networking stack is very flexible by dynamically creating new networks as unique names are added to the virtual machine configuration. 
    • Supports Virtual Distributed Ethernet (VDE) (Linux hosts only):  http://www.virtualbox.org/manual/ch06.html#networkingmodes
    • Emulates different physical Ethernet cards to provide one that will work with your guest OS:  AMD PCNet PCI II, AMD PCNet FAST III, Intel PRO/1000 MT Desktop, Intel PRO/1000 T Server, Intel PRO/1000 MT Server and a Paravirtualized network adapter.
  • Microsoft Virtual Server provides a viable option.  Dynamic networks can be created, and then attached to the Virtual Machine.  This is a two step process; where VirtualBox does this in a single step.
  • Microsoft Hyper-V is similar to Microsoft Virtual Server
  • VMWare Server
    • Limited to only 8 virtual networks per physical server
    • This is a show stopper for lab infrastructure
  • VMWare View/ESX
    • not sure what the network limitation is for VMWare View

Winner:  VirtualBox, because of the dynamic management of the virtual networks and extensive physical Ethernet card emulation. 

OS Support 

We want our lab system to run as many operating systems as possible based on the x86 architecture.  Having 64bit support is important, because newer Windows Server operating systems require 64bit support.
 
  • VirtualBox is a type-2 hypervisor which means it runs on top of another operating system (which is called the Host OS).  
    • 64bit guest support
    • Host OS support:  Windows, Linux, Solaris, OpenSolaris, BSD, and OS X
    • Guest OS support:  Windows, Linux, Solaris, OpenSolaris, OS X (yes it runs OS X inside a VM as well)
    • Pretty much runs anything x86 based
  • Microsoft Virtual Server
    • only 32 bit guest support
    • Host OS support:  Windows Server/XP/Windows 7 (with some prodding)
    • Guest OS Support:  Windows, it says it supports OS's like Linux and Solaris but real-world shows otherwise
  • Microsoft Hyper-V  is a type 1 hypervisor which means it runs directly on the host hardware along with the configured operating system, which is Window Server 2008 (R2)
  • VMWare Server  (type 2 hypervisor)
    • 64bit guest support
    • Host OS support:  Windows and Linux
    • Guest OS support:  Windows, Linux, Solaris
  • VMWare View/ESX is a type 1 hypervisor inside VMWare's operating system
    • 64 bit support
    • Guest OS:  great list of supported operating systems from Windows, Linux, BSD, and Unix

Winner:  VirtualBox and VMWare are both committed to supporting as many operating systems as possible.

BIOS Clock Control

There are three good reasons why we don't want to rely on the current time and preset the bios clock before startup.  
 
  1. Labs are designed to run in a non-production environment, which means, you are going to run some software which is designed to "expire".  The worst thing that can happen is starting a class and finding out your software has expired so the labs are useless.
  2. Student activities which rely on a point in time reference point.  Let's say we are going to do a query on the activity over the past 30 days.  If you don't set the reference time, then the past 30 days will continually change.  
  3. Some software like Microsoft Active Directory's replication system requires the machine to be active at least every 60 days (AD tombstone lifetime). 

  • VirtualBox supports setting the bios clock on startup
  • Microsoft Virtual Server allows setting the bios clock
  • Microsoft Hyper-V
    • For some reason that defies logic, the Hyper-V team has decided to prevent people from controlling the BIOS clock.  
    • It may be piracy related, after all don't all pirates use virtualization and continually reset the clock back.  
  • VMWare supports setting the bios clock

Winner:  Similar to the Student/Instructor collaboration, they are all winners; except for Hyper-V, which is an epic FAIL. 

Virtual Machine Storage

The last item, and the most complex part, is storing the virtual machine disks.   Being able to run "any lab, any time" and quickly provisioning virtual machines on request from students, while providing sufficient disk IO is a challenging puzzle.

  • VirtualBox provides a lot of different storage options
    • Support for vhd, vdi and vmdk files and raw disk partitions
    • Differencing disks
      • no programmatic support for managing differencing disks, which was initially a show stopper for us with VirtualBox because we wanted to do things the same way as Virtual Server (see blow in the Notes).  
    • Directly connect iSCSI targets to the VM (unique to VirtualBox and a major win)
  • Microsoft Virtual Server
    • Support for vhd, raw disk access, direct attached storage, SAN, and locally attached iSCSI volumes.
    • Support for shared storage on CIFS/SMB
    • Differencing disks
  • Hyper-V
    • Support for vhd and raw disk access, direct attached storage, SAN, and locally attached iSCSI volumes.
    • Differencing disks
    • Doesn't support storage of disk on CIFS/SMB shared storage
  • VMWare
    • VMDK disk files and raw disk partitions
    • support for shared storage on NFS shares, direct attached storage, SAN, and locally attached iSCSI volumes.
    • Differencing disks

Winner:  VirtualBox, the ability to directly connect an iSCSI target to a VM is a huge win for dynamic lab provisioning and allowing students to "save" their lab work.  

Note:  Our current design on Microsoft Virtual Server solves a lot of problems, except for easy lab publishing and allowing students to save their work. Right now we use a DFS read-only share to store the base vhd file load balanced across a couple of file servers with lots of RAM for cache to provide the read IO.  When we dynamically build a virtual machine, we create a local differencing disk to handle all of the writeable disk IO.  The local server is configured with a raid10 on small, fast 15k disks to handle the write IO.  When the lab is completed, the local differencing disks are wiped. 

See you next time when I go into more details around VirtualBox and storage management. If you want to view my other articles please visit http://blog.grokworx.com or www.grokmarket.com.


Friday, June 4, 2010

GrokMarket "Call for Participation"

Join The GrokMarket!

Grokworx Software is looking for instructors and content authors to develop and deploy a new learning format structured into three hour "Targeted Learning" segments.

Targeted Learning is about building specialized courses around new and popular subjects.  As an instructor, you know dozens of topics which students really, really want to learn more about. These sessions are not designed to fit together to build out a complete course like MOC, they are instead designed to fill in knowledge gaps. The Grokworx rapid lab publishing system will enable us to quickly and painlessly create instructor-led training to respond to current events in the industry.  

In this format we market the instructors delivering the course because we believe the instructors are the key attraction for students.  In this format it is a win-win for the student: they get the instructor they want and the content they are truly interested in.    

Instructors get remunerated on net revenue. We are tentatively looking at instructor compensation of ~ 70% of the net revenue (net revenue = course price - cc transaction fees - courseware - courseware admin fee if we have to manually order it).  For example if a 3 hour targeted session was priced at 149 USD, with no courseware fee, the net compensation to the instructor would be about $105 per student. So if you put 12 students in a class, some simple math says 12*105= $1260 for a 3 hour session.

Visit www.grokmarket.com to join the list of instructors and authors with this very, very exciting initiative. 


Geoff Nordli
CTO
Grokworx Software

Tuesday, June 1, 2010

Lab Requirements for Virtual Training

A lab is designed to walk a student through a set of exercises reinforcing what has been learned through assigned reading or lecture.  Normally this is delivered in a classroom setting on local computers. A Virtual Lab takes the physical classroom lab activity and delivers it remotely via the Internet.
  
Internet/hosted based labs should strive to provide the same functionality as the physical classroom experience.  There are also considerable benefits to hosted labs which are not available in a traditional classroom setup.  Let's take a look at what type of actions the student and instructor will do in a classroom training.

Lab Machine Interaction

Student

  • Lab machine control (Start/Stop/Reset/Pause/Resume)
  • Local console access
  • Multiple lab machines used in a single lab
  • Complex network configurations
  • Switch between different Lab machines
  • Access to the local DVD/CD-ROM
  • Local audio/speaker access
  • Local file storage/access

Instructor

  • Lab instruction/demos
  • Student/instructor collaboration on the same lab machines
In the next post, we are going to look at the hypervisor software which provides the virtual lab functionality.

Monday, May 31, 2010

Introduction to Virtual Educational Infrastructure

Grokworx Software has been around since the beginning of 2005. Our vision has been to build a complete turn-key virtual learning platform geared towards technical training. Our job is to make sure all of the components work together so our customers don't need to worry about the technology. Customers only need to focus on developing and delivering great content.
As an introduction lets go through the different components you need in order to deliver technical training.

  • Web Portal
  • Web Conferencing
  • Audio Communication
  • Lab Management

Web Portal

The purpose of the web portal is to glue the other components together into a single management interface used by administrators and event attendees. You want to make it as seamless as possible for everyone involved.

  • Central repository for all of the course related resources (lab manuals, lab machines, evaluations, presentations, whitepapers, audio/video presentation, etc...).
  • Event scheduling
  • Registration system
  • Payment processing
  • Member management
  • Lab Management

Web Conferencing

The web conferencing piece is used to deliver the presentation to the students. We have chosen to use Microsoft's Live Meeting (http://office.microsoft.com/en-us/livemeeting/default.aspx) to provide this functionality. Live Meeting includes the following components.

  • Multimedia Presentations
  • Live Video Feeds
  • Participant Feedback (Raise your hand)
  • Recording and archiving
  • Annotation
  • Student Polling
  • Integrated VOIP audio

Audio Communication

One of the key components to providing learning over the Internet is to provide good quality audio. The audio quality from the presenter is key here; "garbage in, garbage out" applies . If the instructor doesn't have a good clean audio stream, then the learning experience will be sub-optimal. It is important that the presenter use a telephone when delivering events.
Attendees also need a variety of different ways to get into the audio conference. A one size fits all approach doesn't work in this scenario:
  • Call me – attendee provides number to call
  • Direct dial number (800 service is nice for paying customers)
  • Voice-over-IP (VOIP) support
  • Most Web Conferencing platforms have built-in VOIP support
  • Live Meeting has built-in VOIP support

This is a training event and not just a one way audio feed (webcast) and requires some special interaction.
  • In order to simulate a live Instructor-Led Training you need to have two-way audio communications and encourage students ask verbal questions.
  • Complete control of participants by Muting/un-muting
  • Admin needs to remove the barking dog in the background....

Private conferencing rooms are the last piece in the audio equation to provide some much needed functionality:
  • Technical support. With a group of 15 or 20 people taking training you can't have one person's problems affect the entire event. This person needs to get moved into a side room to help them resolve their technical challenges.
  • Lab Assistance. When an attendee needs help during lab time you don't want to interrupt everyone else with unnecessary audio.
  • Private questions. Generally, people don't like being exposed before their peers and prefer to ask some questions in private.

Lab Management

Technical training most likely requires attendees to have a lab machine to perform exercises, which reinforce what they learned during the lecture portion of the event. This is also the most complicated portion of delivering training around technical subjects.

Lab Management usually levergages software virtualization products like VMWare Workstation, VMWare Server, VMWare ESXi, MIcrosoft Virtual Server, Microsoft Hyper-V, Oracle VirtualBox, Xen, KVM, etc.... In order to automate the provisioning of the student lab machines normally some sort of base template is configured, which can be automatically replicated numerous times.

Labs need to be consumed synchronously (during the scheduled event hours) and asynchronously (during non-class times). Whatever usage scenario it needs to support dynamic resource allocation. If you have 100 labs available, but only the resource capacity to run 10 simultaneous connections, then you need a way to manage those.

A lab management system needs to support some sort of demand queueing in case demand exceeds the amount of available resources.
As we expand out the Virtual Educational Infrastructure blog we will be spending quite a bit of time around the Lab Management component.