AWS Customer Presentation: 6Wunderkind - Berlin Summit 2012

1,593 views
1,491 views

Published on

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

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

No notes for slide

AWS Customer Presentation: 6Wunderkind - Berlin Summit 2012

  1. 1. Wunderful InfrastructureAlex Koppell & Mark Bate, 6Wunderkinder
  2. 2. Alex KoppelWunderkind, Development
  3. 3. Mark BateWunderkind, Operations
  4. 4. Wunderlist• Cloud-based task manager• Cross-platform (11 so far)• Friendly, intuitive design• Easy sharing w/ friends & coworkers
  5. 5. Wunderkit• Ruby on Rails (single app)• MongoDB• Redis• Hosted on PaaS
  6. 6. Development
  7. 7. Wunderlist• Code Igniter (PHP)• MySQL• Redis• Hosted in AWS
  8. 8. Wunderkit• Cloud-based collaboration app• Cross-platform• Focus on teams and projects
  9. 9. Operations
  10. 10. Wunderlist Servers• Ubuntu on EC2 • Apache + PHP for sync • Nginx + FPM + PHP for web app• Redis on EC2 + EBS• MySQL on RDS
  11. 11. Wunderlist Development• OS X Lion on MacBook Airs• Apache + PHP + MySQL + Redis• System? Homebrew? MAMP? Manual?
  12. 12. Wunderkit Servers• Ubuntu on PaaS• Nginx + Passenger + Rails• Redis• MongoDB• Infrastructure built thru YAML & shell scripts
  13. 13. Wunderkit Development• OS X Lion on MacBook Airs• Apache + Passenger + Rails• Homebrew? RVM? Rbenv?
  14. 14. So that means...•2 Applications...•2 Languages...•2 Infrastructures...• Manually managed developer environments...• Crazy!!!
  15. 15. Finding Wunderland
  16. 16. Goals• Highly available• Ability to scale easily• Flexible
  17. 17. Wonderful Code• Service-Oriented Architecture• Multiple specialised services • Rails and Node.js initially • MongoDB & Redis initially• Communication via asynchronous messaging
  18. 18. Complicated!• SOA is complicated• Requires rock-solid setup • Consistency across environments • Sanely manageable
  19. 19. The Way It Should BeServers Development• Ubuntu 12.04 LTS • Ubuntu 12.04 LTS• Nginx • Nginx• Unicorn • Unicorn• Ruby 1.9.2 • Ruby 1.9.2• Rails 3.1 • Rails 3.1• MongoDB • MongoDB• Redis • Redis
  20. 20. Wunderful Infrastructure• Configuration Management - Chef• Infrastructure as Code• Virtualisation - VirtualBox + Vagrant
  21. 21. CHEF• Deployment & configuration management• Write Recipes as part of Cookbooks, which are applied through Roles.• Ruby-based = Developers can write cookbooks ;)• Client-Server or Solo (standalone) modes• Similar to Elastic Beanstalk, Puppet, Babushka, CFEngine• http://www.opscode.com/chef
  22. 22. Infrastructure as Code• Define packages & their configurations in code • Visibility • Editable • Testable • Version Controlled
  23. 23. The Cloud! Ubuntu 12.04 AMI $ ec2-run-instances EC2(virtual machine image, (virtual machine instance stored on EBS) running on AWS hardware)
  24. 24. Configuration Management (Servers) Librarian-Chef Librarian gem, used  as  a  “Bundler”  for   Chef cookbooks Download cookbooksfrom remote Upload cookbooks, roles & data bags Chef Server running on Developer’s  terminal EC2 + EBSmanages EC2 nodes & Chef repository
  25. 25. Configuration Management (Servers) Boot EC2 instance(s) with role(s) EC2 instance(s) Developer’s  terminalmanages EC2 nodes & Chef repository EC2 server downloads & runs cookbooks required to fulfil role(s) Chef Server running on EC2 + EBS
  26. 26. Virtualise!• VirtualBox • Oracle’s  open  source  VM  software,  similar  to  VMWare,  Parallels,  etc. • http://www.virtualbox.org• Vagrant • Ruby gem, adds in useful features on top of VirtualBox • http://vagrantup.com
  27. 27. Virtualisation (Development) Vagrant Ruby gem, providesUbuntu 12.04 image VirtualBox useful extensions for Developer’s  MacBook  Air (stored in S3) instance provisioning and configuring
  28. 28. Configuration Management (Servers) Librarian-Chef Librarian gem, used  as  a  “Bundler”  for   Chef cookbooks Download cookbooks from remote Developer’s  terminal manages EC2 nodes & Chef repository
  29. 29. Configuration Management (Servers) Boot Vagrant instance(s) with role(s) Vagrant Vagrant / VirtualBox Developer’s  terminal instance(s)manages EC2 nodes & Chef repository Chef Solo uses cookbooks in  developer’s Vagrant installs Chef Solo repository and runs cookbooks required to fulfil role(s) Chef Solo running in the VM
  30. 30. Results• Sane environments • No voodoo! • No  more  “it  worked  in  development”! • Maintainable • Aspirin budget drastically reduced!
  31. 31. AWS Building Blocks• EC2 • Complete control from the OS up • Export AMI images to VMs (Windows only)• S3 • Store & serve cookbooks, VMs, etc• SNS • Notifications on success / failure• EBS • Store & snapshot operational data
  32. 32. 6W Dev Blogdev.6wunderkinder.com

×