building a learning lab solution using docker

29
Building a Learning Lab Solution Using Docker Presented by Aater Suleman August 6th, 2015 Docker Austin Meetup

Upload: flux7

Post on 19-Aug-2015

545 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Building a Learning Lab Solution using Docker

Building a Learning Lab Solution Using Docker

Presented by Aater Suleman

August 6th, 2015

Docker Austin Meetup

Page 2: Building a Learning Lab Solution using Docker

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

Page 3: Building a Learning Lab Solution using Docker

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

Page 4: Building a Learning Lab Solution using Docker

Key Differentiators

R&D FocusRapid

EngagementsCustomer Focus

Page 5: Building a Learning Lab Solution using Docker

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

Page 6: Building a Learning Lab Solution using Docker

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

Page 7: Building a Learning Lab Solution using Docker

Goal

To Provide Hands On Corporate Training to 600 students on

software EDA tools at a top 5 EDA ISV

Page 8: Building a Learning Lab Solution using Docker
Page 9: Building a Learning Lab Solution using Docker

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 10: Building a Learning Lab Solution using Docker

Challenges

600+ workstations with:

24 GB memory

8 vCPUs

Prerequisite software (RHEL, ~100 packages)

Course material (3-5 GB)

Page 11: Building a Learning Lab Solution using Docker

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 12: Building a Learning Lab Solution using Docker

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

Page 13: Building a Learning Lab Solution using Docker

Solution Details

AWS architecture

Server detailsDocker

container setup

Automation/Orchestration

Access Dashboard

Page 14: Building a Learning Lab Solution using Docker

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 15: Building a Learning Lab Solution using Docker

Server

AWS m3.2xlarge instance

Amazon Linux running Docker daemon

cloud-init (user data) used to:

○ Set License environment variables○ Docker pull○ Docker run

Page 16: Building a Learning Lab Solution using Docker

Docker Container Setup

RHEL 6.5

Dockerfile to yum install the packages

NX 3.5 installed for remote desktop access

Page 17: Building a Learning Lab Solution using Docker

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

Page 18: Building a Learning Lab Solution using Docker

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

Page 19: Building a Learning Lab Solution using Docker

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

Page 20: Building a Learning Lab Solution using Docker

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

Page 21: Building a Learning Lab Solution using Docker

Tear Down

Terminate Class instances for all classes

Delete the Cloudformation Stack

Page 22: Building a Learning Lab Solution using Docker

Revamp (6 months)

Create CloudFormation stack

Create IPSec tunnel

Restart Drupal server

Page 23: Building a Learning Lab Solution using Docker
Page 24: Building a Learning Lab Solution using Docker

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

Page 25: Building a Learning Lab Solution using Docker

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

Page 26: Building a Learning Lab Solution using Docker

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 27: Building a Learning Lab Solution using Docker

Benefits

Significant cost savings

Autonomy

Automated workflow

Strong feedback on the solution from the Customer's

teams using it.

Training Department

Page 28: Building a Learning Lab Solution using Docker

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

Page 29: Building a Learning Lab Solution using Docker

Thank You!Twitter: @Flux7Labs

Website: www.flux7.com

Icons Src: iconfinder.com