It's Day 1 of OSCON and it's the first of the "tutorial days". It's similar to the few days leading up to VMworld where you can pay a little extra and go to the pre-conference bootcamps. You can look at the entire OSCON 2014 Schedule to see the list of tutorials and sessions.
The conference feel is unlike any of the big ones. There wasn't a single banner outside advertising the event and there were only a handful banners and signs inside that pointed where you needed to go. In fact, it took me about 10 minutes to figure out that OSCON was sharing the venue with 3 other Cons and I had to walk a quarter mile to get to the location.
As much as I really wanted to attend Get Started With the Arduino - A Hands-On Introductory Workshop, I figured it probably wasn't in my "career's" best interest. Maybe I'll do this tutorial next year since it's been going 4 years strong. So I opted to attend Getting Started with OpenStack: Hands on Tutorial with Egle Sigler & Cody Bunch, and Introduction to Docker: Containerization is the New Virtualization with James Turnbull.
Don't get me wrong, I'm not a new fish (shawshank reference) when it comes to OpenStack and Docker. I've spent a good deal of time messing with the both, but I've never taken any formal training. It's the same thing as your boss telling you "Go install vCenter" when you have no idea about the underlying features and functions of ESXi. When messing with any new technology I believe you need to grasp the foundation before you start going crazy. There's only so much you can learn from self-discovery and reading documentation. This is why I opted to take these "introductory" courses so I can learn from the people who make the product.
Cody and Egle did a great job with the lab materials. Granted, some people had some issues (like the guy behind me that didn't know what Fusion or VirtualBox was and only had a laptop with 2GB of RAM) but that's a PEBCAK problem. The PDFs were well written and you can actually download all the materials and explore on your own. The materials are pretty straightforward. The one great thing about attending this session is that Cody and Egle explained all the techno tidbits of that were happening behind the scenes. One example is Cody explained how blocks were written to Cinder volumes based on thin/thick. Egle showed how to do everything via CLI instead of through the Horizon dashboard. Supplement with the following resources:
- http://anystacker.com/oscon-openstack-workshop-commands/ or https://gist.github.com/eglute/7382c35de6985d45f831
- https://developer.rackspace.com/blog/neutron-networking-l3-agent/
- https://developer.rackspace.com/blog/spinning-up-your-first-instance-on-rackspace-private-cloud/
- OpenStack Architecture Design Guide - http://www.openstack.org/blog/author/nick-chase/
I did end up asking the question "What's the point of knowing the CLI if Horizon will do everything for me?" because in my head it's all about adoption and consumption. We ALL know that adoption of technology becomes infinitely easier when you slap a GUI on it. Cody was able to break this down in a way that makes sense. OpenStack was a product made by developers for developers. They spend 90% of their day in the command line so doing it that way or through an API is their preferred method. That makes sense. OpenStack IS NOT meant to be a replacement for your vSphere infrastructure and it's not meant to be a sysadmin's dream because I doubt your developers care about Sharepoint and Exchange VMs.
The Docker session started off slow, then got too fast. It was learning about the company instead of diving right into the technology. But there were people in the audience who didn't know why we needed Docker to begin. The rest of the time was spent doing some awesome stuff. Connecting containers, Docker API, Docker files, uploading to Docker Hub, etc.
I was severely disappointed in the Docker instructor's ability to actually "instruct". There were 50 things going on at once. Install this, run that, while you're doing that i'm going to go over every command in a Dockerfile so you can't figure it out on your own. I mean they seriously went through 20 slides about every possible command in a Dockerfile while everyone, literally everyone, was having trouble getting the first command to even run because of DNS problems. I wish I had a picture of the room when the speaker said "Is anyone having trouble?" and every hand in the room rose up. It was comical. Thankfully he apologized afterward because he was unaware of the issues and went over those 20 slides much slower this time. The entire time it felt more as if it were a 4 hour session on powerpoint, and try to keep up typing the commands yourself along the way. I wouldn't classify this as a "lab". Maybe the Docker team needs 8 hours to give a proper tutorial instead of cramming 4 hours into powerpoint.
The remainder of the time was spent going over Docker commands. One of the things that I wish we spent more time on was the Dockerfile itself. The Dockerfile is where all the power lives so that's something I'll need to get more hands-on in the future. I got a lot of understanding the Docker networking. It was helpful to look at a webserver in a docker container and expose that port number through the container and into the VM itself. Also getting the docker container IP: docker inspect --format '{{.NetworkSettings.IPAddress}}' <Container Name>
Overall, it was a decent session that gave you the ability to try and learn from powerpoint. I wish they would have taken out the advanced stuff and actually *taught* everyone along the way. In addition, it would have been helpful to go over 'real-world' use cases when using our own containers.
Relevant links:
- https://gist.github.com/wsargent/7049221
- http://docs.docker.com/reference/builder/
- https://registry.hub.docker.com/
- https://github.com/docker-training/postgres/blob/master/Dockerfile
Outside of these sessions, it was incredibly easy to meet folks at lunch and during sessions. A great community meetup. Looking forward to Day 2.