r uby on rails & w indows azure @ sriramk s riramkrishnan

60
Ruby on Rails & Windows Azure @sriramk sriramkrishnan.com

Upload: merry

Post on 22-Feb-2016

29 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

Ruby on Rails&

Windows Azure@sriramk

sriramkrishnan.com

Page 2: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 3: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

July 25th, 1965Newport, Rhode

Island

Page 4: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

http://www.flickr.com/photos/joegratz/83461579

Page 5: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 6: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

Windows Azure and the Microsoft cloud

Page 7: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

Scalable Computation

Page 8: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

Cloud Storage

Page 9: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

Utility billing

Page 10: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

Automated management

Page 11: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

+

?!

Page 12: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

We love Ruby on Rails

Page 13: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

And other languages/framewor

ks you secretly love ;)

Page 14: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 15: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

puts 'Hello world'

Page 16: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 17: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 18: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

UsefulNOT!

Page 19: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

THE RAILS“STACK”

Page 20: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

load balancers

Page 21: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

LOAD BALANCERS

Pound, Varnish, Pen, hardware solutions, etc…

Page 22: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

REVERSE PROXIES mod_proxy, Perlbal,

nginx, …

Page 24: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

REVERSE PROXIES Works the same way

Page 25: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

app/web servers

Page 26: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 27: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

APP& WEB SERVERS

Many, many combinations possible

Most work great

Page 28: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

APP& WEB SERVERS

Page 29: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 30: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

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
Page 33: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

data

Page 35: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

MYSQL Runs great on Windows Azure

Page 36: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

WINDOWS AZURE CLOUD STORAGE SERVICES

SQL Azure Blobs Tables Queue

s

Page 38: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

SQL Azure Useactiverecord-sqlserver-adapter

Patch usinghttp://gist.github.com/318780

Page 40: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

Storage Services • Public REST APIs

• waz-storage gem good starting point

Page 41: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

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

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

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

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

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

caching

Page 48: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

memcached http://code.msdn.microsoft.com/winazurememcached

Page 49: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan
Page 50: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

day to day

Page 51: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

DeploymentComes with the platform.

Page 52: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

ManagementComes with the platform.

Page 54: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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

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
Page 57: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

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
Page 59: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

“louder”

Page 60: R uby  on  Rails & W indows Azure @ sriramk s riramkrishnan

The end.

@sriramksriramkrishnan.com