Highlights
We'll begin with a simple webapp and launch all the components necessary to run it at scale. CI, monitoring, logs, backups, etc: Everything automated and built to scale with complete configuration management. Here's the high-level tasks we'll perform:
I'll provide a large variety of content, facilities, and resource for discussion & collaboration throughout the course, including:
- Set up a Chef server to manage configuration
- Write the Chef recipes necessary to deploy our webapp to a single server
- Build a continuous integration server that automatically takes new code, tests it, and deploys it
- Automate provisioning of new systems to quickly scale in size (and replace failed servers)
I'll provide a large variety of content, facilities, and resource for discussion & collaboration throughout the course, including:
- Recorded video of all classes
- Private git repos with special code specific to the course & its assignments
- Private forums
- Private wiki
- A special IRC chatroom
Prerequisites
Technical prerequisites
Knowledge prerequisites
- A working *nix-style development machine (Mac OS X, Linux, etc)
- Ruby 1.9.x/2.x + Rubygems (RVM / rbenv highly recommended!)
- Working git install
- Working Amazon AWS Account
- Able to join GoToWebinar
Knowledge prerequisites
- You should have solid production development experience in one language of your choice
- Highly recommended to be able to read, understand, and write simple Ruby programs (work through tryruby.org at least twice)
- Working knowledge of git
- Know how to use GoToMeeting & IRC
Pricing
Pricing is $999 for early-bird signups and $1499 for regular signups. The class will be limited to 40 seats.
This is the first class in this all-online style, so I hope you'll bear with me for any bumps we may have this time.
If you need to cancel, I'll refund your registration 100% through July 14th & 50% through August 1st. After that your seat is locked in. You are free to transfer your registration to someone else, just e-mail me to let me know!
If you need to cancel, I'll refund your registration 100% through July 14th & 50% through August 1st. After that your seat is locked in. You are free to transfer your registration to someone else, just e-mail me to let me know!
Schedule
The first class week begins on Monday, August 12th and runs until November 1st (12 weeks). Each lesson will be given twice during the week to accommodate different schedules.
Generally the schedule will be (all times US Eastern):
This is a draft schedule and the times are subject to change. Please feel free to provide feedback if other times would work better for you!
Generally the schedule will be (all times US Eastern):
- Mon 9:30pm OR Thu 4:00pm - Live stream class (with Q&A afterward)
- Tue 8:30pm & Fri 8:30pm - Optional classmate chat (This is a chat with your classmates to discuss & troubleshoot)
- Tue 9:30pm & Fri 9:30pm - Instructor discussion (optional, for those needing help with assignments)
This is a draft schedule and the times are subject to change. Please feel free to provide feedback if other times would work better for you!
About Me
- I'm a software developer currently working at Chargify.com. I've been developing software for 15 years with an emphasis on DevOps and highly-available / highly-scalable operations. I have a passion for teaching and helping others learn. Here's a few of my teaching-specific highlights:
- Conference speaker - MWRC 2013
- Instructor at Denver Learn on Rails (teaching beginner Ruby on Rails)
- Adjunct Computer Science instructor at Southwestern college
- Make sure to check out the video from my last talk if you're curious about my teaching / speaking style!
Syllabus
FAQ
How will you present the material?
There will be a weekly GoToWebinar to present the coursework for the week. I'll present the basics, walk you through what needs to be done, and then we'll have a short Q & A. The next day we'll have a discussion where you can get additional assistance.
Do I have to use Amazon EC2?
No, the course is designed to work with any cloud provider: Rackspace, Linode, etc. You can be successful in this course with any of those, but your ability to get help from others may be much more limited. Whichever you choose, you'll be responsible for the costs incurred. However, the exercises can all be run on t1.micros for minimal cost and you can shut them all down when you're not working on them.
Do I have to use Ruby on Rails?
We'll be running a tiny proof-of-concept Rails app, but it is not the focus of the course. You can opt to replace it with a web app of your choice in PHP, Perl, Python, etc. You can be successful in this course with any of those, but your ability to get help from others may be much more limited.
Do I have to use *nix / OSX?
Yes. The differences will be too big if you try to complete this course with Windows servers. I just honestly don't think you'll get enough value to be worth the effort, so I'm going to say this is a requirement.
What do I get for completion?
You'll receive a certificate of completion if you accomplish all the assignments throughout the course. I'm also thinking of offering t-shirts for successful completion (feedback appreciated!).
How do I register?
Visit the registration page (hosted by EventBrite)
How do I contact you?
Please feel free to e-mail me at [email protected]
There will be a weekly GoToWebinar to present the coursework for the week. I'll present the basics, walk you through what needs to be done, and then we'll have a short Q & A. The next day we'll have a discussion where you can get additional assistance.
Do I have to use Amazon EC2?
No, the course is designed to work with any cloud provider: Rackspace, Linode, etc. You can be successful in this course with any of those, but your ability to get help from others may be much more limited. Whichever you choose, you'll be responsible for the costs incurred. However, the exercises can all be run on t1.micros for minimal cost and you can shut them all down when you're not working on them.
Do I have to use Ruby on Rails?
We'll be running a tiny proof-of-concept Rails app, but it is not the focus of the course. You can opt to replace it with a web app of your choice in PHP, Perl, Python, etc. You can be successful in this course with any of those, but your ability to get help from others may be much more limited.
Do I have to use *nix / OSX?
Yes. The differences will be too big if you try to complete this course with Windows servers. I just honestly don't think you'll get enough value to be worth the effort, so I'm going to say this is a requirement.
What do I get for completion?
You'll receive a certificate of completion if you accomplish all the assignments throughout the course. I'm also thinking of offering t-shirts for successful completion (feedback appreciated!).
How do I register?
Visit the registration page (hosted by EventBrite)
How do I contact you?
Please feel free to e-mail me at [email protected]
Expectations
This class is not meant to be easy. It's meant to be challenging. I'd put it roughly as an 'intermediate' to 'advanced' level class for developers and system administrators with at least a year or two of experience under their belts.
You'll be put into a team of three other students. This will be your peer group and I encourage as much social interaction and collaboration as possible. You'll get their e-mail addresses and I want you to work together with them on tips, feedback, testing, and problem solving.
Prior to asking for instructor help (either via e-mail or during the Q & A), I expect that you've already tried to help yourself by:
1. Working on the problem yourself and troubleshooting for a reasonable period of time (**more** than 15 minutes)
2. Googling and trying at least two possible solutions found
3. Asking your peer group
4. Attending the collaborative chat and asking your classmates
You'll be put into a team of three other students. This will be your peer group and I encourage as much social interaction and collaboration as possible. You'll get their e-mail addresses and I want you to work together with them on tips, feedback, testing, and problem solving.
Prior to asking for instructor help (either via e-mail or during the Q & A), I expect that you've already tried to help yourself by:
1. Working on the problem yourself and troubleshooting for a reasonable period of time (**more** than 15 minutes)
2. Googling and trying at least two possible solutions found
3. Asking your peer group
4. Attending the collaborative chat and asking your classmates
Not quite ready?
You can sign-up for my low-volume, no-spam, private e-mail list and I'll gladly keep you up to date on this and future classes.