Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Building a Learning Lab Solution using Docker


Published on

Talk given by Aater Suleman, Flux7 CEO at Austin Docker Meetup on August 6th, 2015.

Published in: Technology
  • If you want to enjoy the Good Life: making money in the comfort of your own home with just your laptop, then this is for YOU... ◆◆◆
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ ◀ ◀ ◀ ◀
    Are you sure you want to  Yes  No
    Your message goes here

Building a Learning Lab Solution using Docker

  1. 1. Building a Learning Lab Solution Using Docker Presented by Aater Suleman August 6th, 2015 Docker Austin Meetup
  2. 2. Today’s Presenter Aater Suleman, PhD Co-Founder & CEO at Flux7 Faculty, University of Texas at Austin Flux7: Cloud and DevOps Solutions Cloud and Devops for web teams Enterprise DevOps management AWS Competencies Partners
  3. 3. 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
  4. 4. Key Differentiators R&D Focus Rapid Engagements Customer Focus
  5. 5. 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 Partners Third shortlisted contestant: 2nd Watch
  6. 6. 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 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
  7. 7. Goal To Provide Hands On Corporate Training to 600 students on software EDA tools at a top 5 EDA ISV
  8. 8. Technical Requirements Secure environment One workstation/student Identical workstations All workstations have training materials Instructors have the ability to share new files during training
  9. 9. Challenges 600+ workstations with: 24 GB memory 8 vCPUs Prerequisite software (RHEL, ~100 packages) Course material (3-5 GB)
  10. 10. 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
  11. 11. 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
  12. 12. Solution Details AWS architecture Server details Docker container setup Automation/ Orchestration Access Dashboard
  13. 13. Admin Subnet Instructor Subnet Student subnet NATAPI License servers HQ HTTPs traffic IP range: US-west-2 https://ip-ranges. ranges.json Internet Gateway Virtual Private Gateway S3
  14. 14. Server AWS m3.2xlarge instance Amazon Linux running Docker daemon cloud-init (user data) used to: ○ Set License environment variables ○ Docker pull ○ Docker run
  15. 15. Docker Container Setup RHEL 6.5 Dockerfile to yum install the packages NX 3.5 installed for remote desktop access
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. Dashboard Drupal-based Dashboard with Active Directory Integration Role Class Instructor Student Admin Create class Create/terminate class instances Assign instructors Instructor Start/stop class instances Create instructor instance Save instructor instance Start/stop student instances Student Start/stop student instance Download NX file to access workstation
  20. 20. Tear Down Terminate Class instances for all classes Delete the Cloudformation Stack
  21. 21. Revamp (6 months) Create CloudFormation stack Create IPSec tunnel Restart Drupal server
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. Benefits Significant cost savings Autonomy Automated workflow Strong feedback on the solution from the Customer's teams using it. Training Department
  26. 26. 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
  27. 27. Thank You! Twitter: @Flux7Labs Website: Icons Src: