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