Cloud Portability with Multi-Cloud Toolkits
ATTENTION: You must signup in advance to attend this workshop. You will need to have a valid SXSW badge, and an activated SXsocial account. To reserve your seat, please go here: https://sup.sxsw.com/schedule/IAP17712
Take control of your application's future by making it portable in the present.
Changes in reliability, performance, cost, and privacy in the cloud may drive you to consider alternative public, private, or hybrid clouds. Planning for cloud portability upfront can be crucial in avoiding lock-in. The tools you use to interact with the cloud will play a large part in how easy it is to move your app between clouds.
In this workshop we'll cover cloud basics and how to effectively use toolkits that operate across multiple clouds. You'll work through examples of multi-cloud apps in Java, Node.js, Python, or Ruby and go home with recipes for building your own portable cloud applications.
You'll leave this workshop with:
1. Why cloud portability is important.
2. How you can avoid being locked in to a particular cloud provider.
3. What options there are when you need to programmatically control cloud infrastructure.
4. What a multi-cloud toolkit does.
5. How to use a multi-cloud toolkit effectively.
6. Working code for a multi-cloud application.
The agenda:
1. Introductions
2. Cloud 101
3. Multi-Cloud 101
4. Multi-Cloud Toolkits
5. Break
6. Application Architecture
7. Application Code Walkthrough and Workshop
8. Application Demonstrations (time permitting)
9. Conclusion
Prerequisites:
- No prior experience with the cloud is needed.
- A beginner's knowledge of Java, Node.js, Python, or Ruby.
- Basic understanding of how to use the command line when developing software. e.g. In the Terminal for Mac/Linux or the Command Prompt for Windows.
What to Bring:
- For cloud accounts, please arrive already signed up with one or more of the following "trial" accounts. If you already have an account with one of these cloud providers, that will work too.
1. Rackspace Developer Discount - http://developer.rackspace.com/devtrial/
2. HP Cloud Free Trial - http://www.hpcloud.com/free-trial
3. AWS Free Usage Tier - http://aws.amazon.com/free/
All participants should have a laptop with a good code editor (e.g. Sublime Text - http://www.sublimetext.com/).
If you're using Java, the laptop should have installed:
1. Oracle JDK 6+ - http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html or OpenJDK 6+ - http://openjdk.java.net/install/
1. Run "javac -version" on the command line.
2. Maven 3+ - http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
1. Run "mvn -version" on the command line.
If you're using Node.js, the laptop should have installed:
1. Node.js .10+ - http://nodejs.org/download/
1. Run "node --version" on the command line.
2. Run "npm --version" on the command line.
If you're using Python, the laptop should have installed:
1. Python 2.6 or 2.7 - http://www.python.org/getit/
1. Run "python --version" on the command line.
2. pip - http://www.pip-installer.org/en/latest/installing.html
1. Run "pip --version" on the command line.
If you're using Ruby, the laptop should have installed:
1. Ruby 1.9.3+ - https://www.ruby-lang.org/en/downloads/
1. Run "ruby --version" on the command line.
2. RubyGems 2+ - http://rubygems.org/pages/download
1. Run "gem -v" on the command line.
3. Bundler 1.3.5+ - http://bundler.io/
1. Run "bundle -v" on the command line.
4. Nokogiri Gem - http://nokogiri.org/tutorials/installing_nokogiri.html
Presenters

Dana Bauer
Developer & Community Advocate
Rackspace
Hi! I'm a developer and community advocate with the Developer Relations Group at Rackspace. My team builds the tools that make OpenStack and the Rackspace Cloud easy to use for developers. A big part of my job at Rackspace is providing outreach and support to open source communities. I'm also the co-organizer of the Philadelphia Python User Group, an instructor with Girl Develop It Philly, and a passionate supporter of diverse technical communities. I've given several talks and workshops at international and national conferences, including Pycon and Esri UC. I have a background in geography, science, and science writing.

Everett Toews
Developer Advocate
Rackspace Hosting
Everett Toews is a Developer Advocate at Rackspace making OpenStack and the Rackspace Cloud easy to use for developers and operators. Sometimes developer, sometimes advocate, and sometimes operator. He's a committer on Apache jclouds and co-author of the OpenStack Operations Guide from O'Reilly. In the past he's built web applications, taught workshops, and presented at conferences such as Gluecon, OSCON, and the OpenStack Summits.

Ken Perkins
Developer Advocate
Rackspace
I'm a Developer Advocate at Rackspace, working on building SDKs for Rackspace Cloud & Openstack for Node.js in pkgcloud. I have two little girls, and enjoy a game of baseball with my friends when the weather is nice.

Kyle Rames
Developer Advocate
Rackspace
Kyle Rames is a developer advocate specializing in Ruby and Ruby on Rails. In this role, he helps maintain Ruby gems that utilize the Rackspace Cloud. He is a top committer to the fog and the liaison between Rackspace and the Ruby community.
Since joining Rackspace in 2008, Kyle helped write the first lines of large Rails application, which handles 95% of all dedicated hardware sales in the United States. The application is currently being rolled out to Rackspace’s international teams.
Before he was a Racker, Kyle spent two years as a software developer with Avatier Corporation, where he helped build identity management software in C#. He also has experience working on a variety of systems ranging from backend integration systems to web systems as a Java consultant for Delphi Consultants.