Computer science courses at universities are great at teaching algorithms, basic principles, and the theoretical foundation of computing. While these are essential for broader grasp of the discipline, graduates often find themselves lacking the practical skills needed by companies in their day-to-day operations.
DevOps requires a wide range of practical knowledge and experience that is impossible to get without proper mentoring and exposure to real infrastructure. However, only a few students get that at their university.
We had the chance to interview Lance Albertson, the director of Open Source Lab (OSL) at Oregon State University (OSU), who is at LinuxCon this year to speak about what they do to help their students bridge this skill gap and how they work with open source projects to train the next generation of people who will keep the Internet running.
For those who don't know, what is the Open Source Lab and what does it do?
The OSU Open Source Lab has two primary goals:
- Provide stable infrastructure hosting to high impact open source projects that have special hosting needs.
- Provide a real-world learning environment for OSU students in the DevOps world.
Some of the projects we host include the Apache Software Foundation, the Linux Foundation, Drupal, and the Python Software Foundation to name a few. In the past we hosted and help incubate the Mozilla Firefox project when it first started and more recently Drupal is another great example. We host around 150 projects, but really that number is closer to 1,000 if you include all the sub-projects we provide hosting for.
What are the challenges of teaching DevOps to students at universities?
This is a hard question to answer because there are so many challenges. For many of these students, this is their first time using Linux and with that, part of the challenge is figuring out the best way to get them introduced. This past year we used a combination of Vagrant virtual machines and access to an OpenStack environment. Between laptop issues and understanding how SSH keys work, that's a big hurdle to start out with.
Beyond that, its a question of what type of content and topics we should cover. It's way too easy to dive into all sorts of technical and confusing topics that would likely have the students lose interest. So what we try to do is make it as hands on and as fun as we can. We also try and pick the most important topics we feel they should know initially.
And lastly, giving students an environment to safely play in is also a challenge. Thankfully, OpenStack seems to be a good platform to start out with, but it certainly needs a little more work to make it more user-friendly to students new to DevOps.
How do you go about solving these challenge at Oregon State University?
It has required a multi-phased solution that we're still working on. Initially, just having the OSL here was the first step. It gave OSU students access to real-world DevOps situations. They get to see scaling issues first hand, and also the pros/cons of different ways of managing services. But the problem with this model is that we can only hire and mentor so many students. The OSL only comprises about 1% of the total Electrical Engineering and Computer Science (EECS) student population at OSU, and that means 99% of the students don't get this experience.
When the OSL moved into the College of Engineering two years ago, we had the opportunity to have a closer tie to the academic side of university. Since changing the curriculum takes time, we decided to take an informal approach similar to what a group at Portland State University did called Brain Dump. Two years ago we started our version of it called DevOps Bootcamp that was focused not only on system administration, but also the whole ecosystem that encompasses DevOps.
Last year, we decided to have an all-day event at the beginning of the term called DevOps Day Camp. It was comprised of two tracks, one focused on beginners and another more centered on advanced topics, much similar to what DevOps Days content has. OSL students and staff got together and spent a whole getting a group of about 30 students set up on Linux on the beginner track. We are planning on having it again this year on October 3.
Longer term, we're working with the School of EECS to build more DevOps-oriented course content. Eventually, we hope to offer a specific track focused on DevOps for students, especially utilizing the EECS eCampus Post-Bacc Computer Science program to reach students beyond the state of Oregon. This program enables anyone that already has a degree in anything, to obtain a degree in computer science within a year
What is your advice to students that would like to get started with system administration?
Find a mentor and download VirtualBox and Vagrant. Get a virtual machine up and running and just play around with it. Also, read the content on our DevOps Bootcamp site and walk through the sessions. Much of system administration isn't taught in schools, so finding someone you know who is willing to mentor you is important.
What are the three most important things a newcomer to devops should learn?
- Learn how SSH keys work. Everything around DevOps uses SSH keys.
- Learn Git and create a GitHub account.
- Find a project you're passionate about or interested in, try to make modifications to that project, and if you can, contribute back!
This article is part of the Speaker Interview Series for LinuxCon, CloudOpen, and ContainerCon North America 2015. LinuxCon North America is an event where "developers, sysadmins, architects and all levels of technical talent gather together under one roof for education, collaboration and problem-solving to further the Linux platform."