building a learning lab solution using docker
TRANSCRIPT
Building a Learning Lab Solution Using Docker
Presented by Aater Suleman
August 6th, 2015
Docker Austin Meetup
Today’s PresenterAater Suleman, PhD Co-Founder & CEO at Flux7
Faculty, University of Texas at Austin
Flux7: Cloud and DevOps SolutionsCloud and Devops for web teams
Enterprise DevOps management
AWSCompetencies
Partners
About Us
Headquarters in Austin, TX
30+ team members
Entire team is certified/accredited
Engineer run company with strong roots in system
architecture and design
Focused solely on AWS, IT automation, and DevOps
Key Differentiators
R&D FocusRapid
EngagementsCustomer Focus
Voted “Best AWS Consultant Partner”
“They are easy to work with, extremely agile and flexible, quick to respond and go over and beyond the required level of effort to make sure
every single activity is successful”Honorable mention: Cloud Technology PartnersThird shortlisted contestant: 2nd Watch
Strategic Partnerships
Docker foundation partner
Flux7 is a recognized leader in Docker implementations
Only partner to present an enterprise solution (Classified Ventures) at DockerCon 2014, the inaugural annual Docker conference.
A video of the presentation can be seen here http://bit.ly/1A4bzVQ
AWS Advanced Consulting Partner
Close collaboration with AWS
Our model of helping enterprises to maintain their own IT, instead of using managed services, mirrors the goals of AWS leaders
Goal
To Provide Hands On Corporate Training to 600 students on
software EDA tools at a top 5 EDA ISV
Technical Requirements
Secure environment
One workstation/student
Identical workstations
All workstations have training materials
Instructors have the ability to share new files during training
Challenges
600+ workstations with:
24 GB memory
8 vCPUs
Prerequisite software (RHEL, ~100 packages)
Course material (3-5 GB)
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
Solution (in a nutshell)
Virtual Workstations
Spin up 100s of instances in AWS
Prepare a Docker image with all the software and materials
Setup private Docker registry
Download and run docker containers on all the instances
Solution Details
AWS architecture
Server detailsDocker
container setup
Automation/Orchestration
Access Dashboard
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
Server
AWS m3.2xlarge instance
Amazon Linux running Docker daemon
cloud-init (user data) used to:
○ Set License environment variables○ Docker pull○ Docker run
Docker Container Setup
RHEL 6.5
Dockerfile to yum install the packages
NX 3.5 installed for remote desktop access
Automation
Create course○ Provide course name for tagging
Create instructor workstation○ Run a single EC2 instance for instructor to prepare the image
Save instructor workstation ○ Snapshot the Docker container the instructor is working on
Automation (cont’d)
Create class workstations ○ Create containers for the entire class given a list of users
Start/Stop class workstations ○ Start/stop containers for the entire class
Start/Stop student workstation ○ Start/stop container of just one user in the class
Access
NX files generated for each container
Users access the environment by downloading and running the NX file on their laptops
No need to run VMs, buy larger laptops, or pollute laptop with software not needed in the future
Dashboard
Drupal-based Dashboard with Active Directory Integration
Role Class Instructor Student
AdminCreate class
Create/terminate class instances Assign instructors
Instructor Start/stop class instancesCreate instructor instance
Save instructor instanceStart/stop student instances
StudentStart/stop student instance
Download NX file to access workstation
Tear Down
Terminate Class instances for all classes
Delete the Cloudformation Stack
Revamp (6 months)
Create CloudFormation stack
Create IPSec tunnel
Restart Drupal server
IT Guys
Benefits
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
Instructors
Benefits
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
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
Benefits
Significant cost savings
Autonomy
Automated workflow
Strong feedback on the solution from the Customer's
teams using it.
Training Department
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)
Now: S3 Endpoints in VPC
Thank You!Twitter: @Flux7Labs
Website: www.flux7.com
Icons Src: iconfinder.com