Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas))

on

  • 2,868 views

 

Statistics

Views

Total Views
2,868
Views on SlideShare
2,849
Embed Views
19

Actions

Likes
2
Downloads
19
Comments
0

1 Embed 19

http://www.slideshare.net 19

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Needs diagram, add content from raw deck
  • http://code.msdn.microsoft.com/winazuremediawiki

Building Ruby on Rails apps on Windows Azure (MIX 2010 at Last Vegas)) Presentation Transcript

  • 1. Ruby on Rails
    &Windows Azure
    @sriramk
    sriramkrishnan.com
  • 2.
  • 3. July 25th, 1965
    Newport, Rhode Island
  • 4. http://www.flickr.com/photos/joegratz/83461579
  • 5.
  • 6. Windows Azure and the Microsoft cloud
  • 7. Scalable Computation
  • 8. Cloud Storage
  • 9. Utility billing
  • 10. Automated management
  • 11. +
    ?!
  • 12. We love Ruby on Rails
  • 13. And other languages/frameworks you secretly love ;)
  • 14.
  • 15. puts'Hello world'
  • 16.
  • 17.
  • 18. NOT!
    Useful
  • 19. THE RAILS“STACK”
  • 20. loadbalancers
  • 21. Pound, Varnish, Pen, hardware solutions, etc…
    LOAD BALANCERS
  • 22.
    • Part of the platform
    • 23. Any available TCP port
    • 24. Can pull VMs in/out of rotation
    LOAD BALANCERS
  • 25. mod_proxy,Perlbal, nginx, …
    REVERSE PROXIES
  • 26. Works the same way
    REVERSE PROXIES
  • 27. app/webservers
  • 28.
  • 29. Many, many combinations possible
    Most work great
    APP& WEB SERVERS
  • 30. APP& WEB SERVERS
  • 31.
  • 32. Worker Role (Windows Azure VM)
    Process.Start()
    script/server
    Port 80
    Run()
    Wrapper code
    Ruby installation
    .NET
  • 33. Worker Role (Windows Azure VM)
    Process.Start()
    WEBRick/Mongrel
    Run()
    Wrapper code
    mod_proxy_balancer
    Port 80
    .NET
    Apache
  • 34.
  • 35. GEMS
    • Package with app
    • 36. At runtime, use Gem::GemRunneror “gem install”
    • 37. Caveat – Not all gems build/work on 64-bit Windows
  • data
  • 38. MYSQL
    Runs great on Windows Azure
  • 39. MYSQL
    Solution Accelerator
    http://bit.ly/99Bx9H
    Master/slave, scale up and down slaves, periodic backups
  • 40. WINDOWS AZURECLOUD STORAGE SERVICES
    SQL Azure
    Blobs
    Tables
    Queues
  • 41. SQL Azure
    • Cloud-based relational database service
    • 42. Scalable, available, fault-tolerant
    • 43. Works with T-SQL based libraries/tools
  • SQL Azure
    Useactiverecord-sqlserver-adapter
    Patch usinghttp://gist.github.com/318780
  • 44. Storage Services
    • Public REST APIs
    • 45. waz-storage gem good starting point
  • Blobs
    • Simple interface for storing named files with metadata
    • 46. Very large objects (upto 1TB in size per blob)
    • 47. Available through a CDN frontend
  • require'waz-blobs‘
    WAZ::Storage::Base.establish_connection!(:account_name => account_name,                                          :access_key => access_key)
    container =WAZ::Blobs::Container.create('my-container‘)
    blob =container.store('my_blob.txt’,'somecontent’,'plain/text‘)
    blob = container['my_blob.txt']
  • 48. Queues
    • Reliable delivery of messages
    • 49. Drop-in replacement for beanstalkd, starling, worker systems
  • WAZ::Storage::Base.establish_connection!(:account_name => account_name,                                 :access_key => access_key)
    queue =WAZ::Queues::Queue.create('my-queue')
    queue.enqueue!("some message")
  • 50. Tables
    • Structured data at scale
    • 51. Efficiently insert, query and retrieve millions of entities
  • entity = { :first_name => ‘William',               :last_name => ‘Adama',                }
    service.insert_entity('customer_table', entity)       
    service.query('customer_table',     {:expression => "(last_nameeq ‘Adama‘)",     :top => 2} )
  • 52. caching
  • 53. memcached
    http://code.msdn.microsoft.com/winazurememcached
  • 54.
  • 55. day to day
  • 56. Deployment
    Comes with the platform.
  • 57. Deployment
    Use service management API to automate
    E.g : Deploy packages as a part of your Rakefile
  • 58. Management
    Comes with the platform.
  • 59. Management
    • Use service management API to configure, upgrade, scale up/down
    • 60. Use monitoring/diagnostics API to replacenagios/ganglia
  • Debugging
    • debug, to_yaml helpers work OOB
    • 61. Standard logger works great, logs to RAILS_ROOT/logs. Use diagnostics API to retrieve
  • 62. THINGS TO REMEMBER
    Open platform
    Works well with Ruby world
    Jump in!
  • 63.
  • 64. “louder”
  • 65. The end.
    @sriramk
    sriramkrishnan.com