Integrating GitHub &                           EC2 with Django                                Ross KarchnerTuesday, Februa...
Problem: we needed an                easy way for developers                 to spin up test serversTuesday, February 21, ...
Solution: “Thinglauncher”                    • Authenticates against GitHub Enterprise                    • Key management...
Tuesday, February 21, 2012
Managing keys in GitHubTuesday, February 21, 2012
Essential Software                    • Boto: Communication with Amazon Web                             Services          ...
What happens when you launch a server?                  An Ubuntu server is                  requested with the users     ...
What happens when you launch a server?                             The server is created, additional configuration is done ...
What happens when you launch a server?                             If the user requested a git checkout, this is done with...
What happens when you launch a server?                             If the repo contains a “fabfile.py”, that file is also ru...
What’s next?                    • Open Source                    • Windows Servers                    • UI- overhaul      ...
Upcoming SlideShare
Loading in …5
×

Thinglauncher Intro

1,166 views

Published on

presented to django-district on 2/21

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,166
On SlideShare
0
From Embeds
0
Number of Embeds
325
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Thinglauncher Intro

  1. 1. Integrating GitHub & EC2 with Django Ross KarchnerTuesday, February 21, 2012
  2. 2. Problem: we needed an easy way for developers to spin up test serversTuesday, February 21, 2012
  3. 3. Solution: “Thinglauncher” • Authenticates against GitHub Enterprise • Key management via Github • Creates virtual servers (EC2 instances) in our “virtual private cloud” (VPC) • Manages costs by automatically stopping servers after 5 days. • I’m not allowed to name projects anymore.Tuesday, February 21, 2012
  4. 4. Tuesday, February 21, 2012
  5. 5. Managing keys in GitHubTuesday, February 21, 2012
  6. 6. Essential Software • Boto: Communication with Amazon Web Services • Django-social-auth (with custom backend): OAuth authentication with GitHub, and GitHub API Access • Ubuntu Cloudinit: Customize server configuration • Fabric & Cuisine: remote control and further configuration of servers • RabbitMQ & Celery: Task QueueTuesday, February 21, 2012
  7. 7. What happens when you launch a server? An Ubuntu server is requested with the users selected SSH key, and a “cloudInit” configurationTuesday, February 21, 2012
  8. 8. What happens when you launch a server? The server is created, additional configuration is done per the CloudInit file (Apache, Git, and useful Python packages are installed). The user’s selected SSH key is installed to ~/.ssh/ authorized_keys Another SSH keypair is set up (or retrieved) so that the user can push and pull to Github Also per CloudInit, the server “phones home” to let ThingLauncher know that it is up and running.Tuesday, February 21, 2012
  9. 9. What happens when you launch a server? If the user requested a git checkout, this is done with Fabric, and the Cuisine APITuesday, February 21, 2012
  10. 10. What happens when you launch a server? If the repo contains a “fabfile.py”, that file is also run, allowing the server to be configured further. This one sets up a wordpress site.Tuesday, February 21, 2012
  11. 11. What’s next? • Open Source • Windows Servers • UI- overhaul • Make it easier to develop, test, and share server configurations • Database management • “Thinglauncher for Deployment”Tuesday, February 21, 2012

×