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))

  • 2,896 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,896
On Slideshare
2,877
From Embeds
19
Number of Embeds
1

Actions

Shares
Downloads
20
Comments
0
Likes
2

Embeds 19

http://www.slideshare.net 19

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Needs diagram, add content from raw deck
  • http://code.msdn.microsoft.com/winazuremediawiki

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