building a virtual training lab solution using docker and aws

25
Date: Presente r: Building a Learning Lab Solution Using Docker 6/8/2015 Aater Suleman Docker Austin Meetup

TRANSCRIPT

Page 1: Building A Virtual Training Lab Solution Using Docker and AWS

Date:

Presenter:

Building a Learning Lab Solution Using Docker

6/8/2015

Aater Suleman

Docker Austin Meetup

Page 2: Building A Virtual Training Lab Solution Using Docker and AWS

Goal

To Provide Hands On Corporate Training to 600 students on

software EDA tools at a top 5 EDA ISV

Page 3: Building A Virtual Training Lab Solution Using Docker and AWS

Pre-cloud the classrooms looked like this

Page 4: Building A Virtual Training Lab Solution Using Docker and AWS

Technical Requirements

Secure environment

One workstation/student

Identical workstations

All workstations have training materials

Instructors have the ability to share new files during training

Page 5: Building A Virtual Training Lab Solution Using Docker and AWS

Challenges

600+ workstations with generous requirements:

24 GB memory

8 vCPUs

Prerequisite software (RHEL, ~100 packages)

Course material (3-5 GB)

Page 6: Building A Virtual Training Lab Solution Using Docker and AWS

Options

Training laptops

Purchase 600 laptops

Image the laptops using PXE boot

Store and maintain the laptops for next session (6 months)

Virtual machines

Distribute VM images (30+ GB files)

Upgrade employee Laptops that didn’t meet the spec

Page 7: Building A Virtual Training Lab Solution Using Docker and AWS

Solution (in a nutshell)

Virtual Workstations

Spin up 100s of instances in AWS

Students access the instances from their

regular Laptops

Page 8: Building A Virtual Training Lab Solution Using Docker and AWS

Solution Details

AWS architecture

Server details

Automation/Orchestration Access Dashboard

Page 9: Building A Virtual Training Lab Solution Using Docker and AWS

Admin Subnet

Instructor Subnet

Student subnet

NATAPILicenseservers

HQ

HTTPs trafficIP range: US-west-2https://ip-ranges.amazonaws.com/ip-ranges.json

Internet Gateway

Virtual Private Gateway

S3

Page 10: Building A Virtual Training Lab Solution Using Docker and AWS

Server

AWS m3.2xlarge instance and Graphics optmized instances

Amazon Linux and Windows

Boot scripts to:○Set License environment variables○Set file sharing daemons

Page 11: Building A Virtual Training Lab Solution Using Docker and AWS

Linux Setup

RHEL 6.5

NX 3.5 installed for remote desktop access

Page 12: Building A Virtual Training Lab Solution Using Docker and AWS

Automation

Create course○Provide course name for tagging

Create instructor workstation○Create a workstation for instructor to prepare the

image

Save instructor workstation ○Snapshot the instance that the instructor is working

on

Page 13: Building A Virtual Training Lab Solution Using Docker and AWS

Automation (cont’d)

Create class workstations ○Create workstations for the entire class given a list of

users

Start/Stop class workstations ○Start/stop workstations for the entire class

Start/Stop student workstation ○Start/stop workstation of just one user in the class

Page 14: Building A Virtual Training Lab Solution Using Docker and AWS

Access

NX and RDP access files generated for each container

Users access the environment by downloading and running the file on their laptops

No need to run VMs, buy larger laptops, or pollute laptop with throw-away software

Page 15: Building A Virtual Training Lab Solution Using Docker and AWS

Dashboard

Drupal-based Dashboard with Active Directory Integration

Role Class Instructor Student

AdminCreate classCreate/terminate class instances

Assign instructors

Instructor Start/stop class instances

Create instructor instanceSave instructor instance

Start/stop student instances

StudentStart/stop student instanceDownload NX/RDP file to access workstation

Page 16: Building A Virtual Training Lab Solution Using Docker and AWS

Tear Down

Terminate Class instances for all classes

Delete the Cloudformation Stacks

Page 17: Building A Virtual Training Lab Solution Using Docker and AWS

Revamp (6 months)

Create CloudFormation stack

Create IPSec tunnel

Restart Drupal server

Page 18: Building A Virtual Training Lab Solution Using Docker and AWS
Page 19: Building A Virtual Training Lab Solution Using Docker and AWS

Benefits

IT Guys

Saved the laptop upgrades

No effort invested in preparing machines

No maintenance in supporting variety of laptops

No requests from instructors and students to check setup

Page 20: Building A Virtual Training Lab Solution Using Docker and AWS

BenefitsInstructo

rs

Agility - could change the material till the last minute

Could improve it as many times as needed

Did not need to wait for IT to install software and test it

Did not have to rely on IT to create working images

Did not need support to start/stop workstations

Page 21: Building A Virtual Training Lab Solution Using Docker and AWS

Benefits

Allowed to work on labs from office or home

Homogeneous, pre-tested environments

Students

Work on regular laptops

Could start/stop instances as desired

Page 22: Building A Virtual Training Lab Solution Using Docker and AWS

Benefits

Significant cost savings

Autonomy

Automated workflow

Strong feedback on the solution from the

Customer's teams using it.

Training Department

Page 23: Building A Virtual Training Lab Solution Using Docker and AWS

FYI

Informally, the solution ran so smoothly that there were zero support cals in the entire 2 weeks period with 600 students working concurrently.

Page 24: Building A Virtual Training Lab Solution Using Docker and AWS

Challenge

FileSync from instructors to students

Student instances are in private subnet

All students try to download at nearly the same time

NAT becomes a choke point

Interim Solution:

Multiple NAT servers (m3.4xlarge to get 10G internet)

2016: Upgraded to S3 Endpoints in VPC

Page 25: Building A Virtual Training Lab Solution Using Docker and AWS

Thank You

Twitter: @Flux7Labs

Website: www.flux7.com

Icons Src: iconfinder.com