Download presentation
Presentation is loading. Please wait.
1
Ruby on Rails & Windows Azure @sriramk sriramkrishnan.com
3
July 25 th, 1965 Newport, Rhode Island
4
http://www.flickr.com/photos/joegratz/83461579
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 ;)
15
puts 'Hello world'
18
Useful NOT!
19
THE RAILS “STACK”
20
load balancers
21
LOAD BALANCERS Pound, Varnish, Pen, hardware solutions, etc…
22
LOAD BALANCERS Part of the platform Any available TCP port Can pull VMs in/out of rotation
23
REVERSE PROXIES mod_proxy, Perlbal, nginx, …
24
REVERSE PROXIES Works the same way
25
app/web servers
27
APP & WEB SERVERS Many, many combinations possible Most work great
28
APP & WEB SERVERS
33
GEMS Package with app At runtime, use Gem::GemRunner or “ gem install ” Caveat – Not all gems build/work on 64-bit Windows
34
data
35
MYSQL Runs great on Windows Azure
36
MYSQL Solution Accelerator http://bit.ly/99Bx9H Master/slave, scale up and down slaves, periodic backups
37
WINDOWS AZURE CLOUD STORAGE SERVICES SQL Azure BlobsTablesQueues
38
SQL Azure Cloud-based relational database service Scalable, available, fault-tolerant Works with T-SQL based libraries/tools
39
SQL Azure Use activerecord-sqlserver- adapter Patch using http://gist.github.com/318780
40
Storage Services Public REST APIs waz-storage gem good starting point
41
Blobs Simple interface for storing named files with metadata Very large objects (upto 1TB in size per blob) Available through a CDN frontend
42
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']
43
Queues Reliable delivery of messages Drop-in replacement for beanstalkd, starling, worker systems
44
WAZ::Storage::Base.establish_connection!( :account_name => account_name, :access_key => access_key) queue = WAZ::Queues::Queue.create('my-queue') queue.enqueue!("some message")
45
Tables Structured data at scale Efficiently insert, query and retrieve millions of entities
46
entity = { :first_name => ‘William', :last_name => ‘Adama', } service.insert_entity('customer_table', entity) service.query('customer_table', {:expression => "(last_name eq ‘Adama‘)", :top => 2} )
47
caching
48
memcached http://code.msdn.microsoft.com/ winazurememcached
50
day to day
51
Deployment Comes with the platform.
52
Deployment Use service management API to automate E.g : Deploy packages as a part of your Rakefile
53
Management Comes with the platform.
54
Management Use service management API to configure, upgrade, scale up/down Use monitoring/diagnostics API to replace nagios/ganglia
55
Debugging debug, to_yaml helpers work OOB Standard logger works great, logs to RAILS_ROOT/logs. Use diagnostics API to retrieve
57
THINGS TO REMEMBER Open platform Works well with Ruby world Jump in!
59
“louder”
60
The end. @sriramk sriramkrishnan.com
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.