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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

2,144
views

Published on

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,144
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

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

    ×