Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
The three aaS's of MongoDB in Windows Azure
1. The three Aas’s of
MongoDB on Windows Azure
IaaS, PaaS, SaaS
Doug Mahugh, Lead Technical Evangelist Sridhar Nanjundeswaran
Brian Benz, Sr. Technical Evangelist Software Engineer
10gen
Microsoft Open Technologies, Inc.
2. Agenda
• Windows Azure in 60 Seconds
• MongoDB + Windows Azure
• IaaS [demo]
• PaaS [demo]
• SaaS [demo]
• Hybrid Approaches
• Q&A
3. Windows Azure in 60 Seconds
A brief high-level overview for those
who are new to Windows Azure
5. Windows Azure: What It Is
Win·dows·Az·ure [win-dohz-azh-er]
Noun: A comprehensive set of services that
enable you to quickly build, deploy and
manage applications across a global network
of Microsoft-managed datacenters.
99.95% Monthly SLA
Pay only for what you use
11. Getting Started
Sign up for a free trial
http://www.windowsazure.com/en-us/pricing/free-trial/
Learn about the latest features
http://channel9.msdn.com/Events/WindowsAzureConf/2012/KEY01
12. Windows Azure Developer Center
• Open-source SDKs for
popular programming .NET driver
languages, to get you Node.js driver
up and running quickly
Java driver
PHP driver
• Choice of popular IDEs
Python driver
such as Visual Studio
and Eclipse Driver download page
• Consistent REST protocols and APIs across Windows Azure
services
http://www.windowsazure.com/en-us/develop/overview/
13. +
MongoDB on Windows Azure provides all the
benefits customers have come to expect from cloud
computing: elasticity, on-demand capacity, faster
time to market, and pay-for-what-you-use pricing.
• MongoDB offers built-in support for horizontal
scaling and sharding
• Windows Azure offers built-in support for
responsive auto-scaling
14. Replica Sets: High Availability
Replica Set
Your Driver
Application
Replica set hosted
on Windows Azure
worker roles or
virtual machines
15. Sharding: Scalability
Mongos Mongos
Your (router) (router)
Application
Config 1
Key range A-D Key range E-G Key range G-Z
Config 2
Config 3
Shards, config servers and mongos (router) hosted
on Windows Azure worker roles or virtual
machines
17. Windows Azure
Virtual Machines
Ubuntu 12.04
CentOS 6.2
OpenSUSE 12.1
SUSE Linux Enterprise Server SP2
Windows Server 2008 R2
Windows Server 2012
18. Virtual Machine Sizes
CPU Bandwidth # Data
VM Size Memory
Cores (Mbps) Disks
Extra Small Shared 768 MB 5 1
Small 1 1.75 GB 100 2
Medium 2 3.5 GB 200 4
Large 4 7 GB 400 8
Extra Large 8 14 GB 800 16
19. Deploying to Virtual Machines
– Compared to worker role (PaaS), VM-based
replica sets offer more control, as
well as more responsibility
– MongoDB Installer for Windows Azure is a great learning tool.
Not typically used for production deployment.
• Puts MongoDB on OS disk instead of attached disk
• Limited to 30gb, not performant for writes, Windows-only
• http://www.mongodb.org/display/DOCS/MongoDB+on+Azure+VM+-
+Windows+Installer
• .deploy-mongo.ps1 <node-count> <dns-prefix> <image-name>
<password> <location> <pub-settings-file-path> [replica-set-
name]
– For Linux VM deployment, see tutorial -
http://www.mongodb.org/display/DOCS/MongoDB+on+Azure+VM+-
+Linux+Tutorial
20. Command Line Syntax
prompt> azure Overview
topic verb options
account download username
account location import password
account affinity-group list dns-prefix
vm show vm-name
vm disk delete lb-port
vm endpoint start target-image-name
vm image restart source-path
service shutdown disk-image-name
service cert capture size-in-gb
site create thumbprint
config attach value
detach -v
browse -vv
set
21. Example: Provisioning a Replica Set
azure vm create mongoc9 "OpenLogic__OpenLogic-CentOS-62-20120531-
en-us-30GB.vhd" username password -l "West US" -e
azure vm create mongoc9 "OpenLogic__OpenLogic-CentOS-62-20120531-
en-us-30GB.vhd" username password -l "West US" -e 23 -c
azure vm create mongoc9 "OpenLogic__OpenLogic-CentOS-62-20120531-
en-us-30GB.vhd" username password -l "West US" -e 24 -c
azure vm endpoint create mongoc9 27017 27017
azure vm endpoint create mongoc9-2 27018 27018
azure vm endpoint create mongoc9-3 27019 27019
To set up MongoDB, SSH into each instance and:
get mongodb binaries and install
create db dir
start mongod, initialize replica set
22. Demo - IaaS
1 mongo-demo.php?host=windows IaaS – Windows Azure virtual machines
2 mongo-demo.php?host= SaaS – MongoLab on Windows Azure
1
2
23. IaaS – where to learn more
• MongoDB on Azure VM -
http://www.mongodb.org/display/DOCS/MongoDB+on+Azure+VM
• Install MongoDB on a virtual machine running CentOS Linux in Windows Azure:
http://www.windowsazure.com/en-us/manage/linux/common-tasks/mongodb-
on-a-linux-vm/
• Install MongoDB on a virtual machine running Windows Server 2008 R2 in
Windows Azure:
http://www.windowsazure.com/en-us/manage/windows/common-tasks/install-
mongodb/
• Node.js Web Application with Storage on MongoDB (Virtual Machine):
http://waweb.windowsazure.com/en-us/develop/nodejs/tutorials/website-with-
mongodb-(mac)/
• Create a Windows Azure web site that connects to MongoDB running on a virtual
machine in Windows Azure:
http://www.windowsazure.com/en-us/develop/net/tutorials/website-with-
mongodb-vm/
25. Deploying MongoDB as a Cloud Service
– Windows Azure cloud services
run on a fully automated, highly
scalable cloud platform
– Ongoing management of the OS and infrastructure is
handled by Windows Azure
– Infinitely scalable, on demand
– App and MongoDB in same cloud service provides security
– PaaS approach is the easiest way to deploy MongoDB on
Windows Azure
– For quick and simple deployment, use the MongoDB on
Azure Worker Role:
http://www.mongodb.org/display/DOCS/MongoDB+on+Azure+Worker+Roles
27. PaaS – where to learn more
• MongoDB on Azure Worker Roles -
http://www.mongodb.org/display/DOCS/MongoDB+on+Azure
+Worker+Roles
• MongoDB on Windows Azure (a 10gen white paper) -
http://www.10gen.com/static/downloads/10gen-mongodb-
microsoftazure-white-paper.pdf
• Build and deploy a Node.js application to a Windows Azure
Cloud Service - http://www.windowsazure.com/en-
us/develop/nodejs/tutorials/getting-started/
32. SaaS – where to learn more
• Node.js Web Application with Storage on MongoDB
(MongoLab):
http://www.windowsazure.com/en-
us/develop/nodejs/tutorials/website-with-mongodb-
mongolab/
• Create a C# ASP.NET Application on Windows Azure
with MongoDB using the MongoLab Add-On:
http://www.windowsazure.com/en-
us/develop/net/tutorials/website-with-mongodb-
mongolab/
34. Which approach is best for you?
Deployment Operational
Complexity Responsibility Flexibility OS Security
Linux or
IaaS Some High High
Windows
Custom
Windows
PaaS Some Low High
only
Built-in
None
SaaS Low/none Limited N/A Built-in
35. Your App Your Data
IaaS IaaS
Virtual Machines Virtual Machines
PaaS PaaS
Cloud Services Cloud Services
SaaS
PaaS
MongoLab, Mon
Web Sites
goHQ
Other sites, local
Self-hosted
apps, etc.
36. Other Resources
• MongoDB on Azure:
http://www.mongodb.org/display/DOCS/MongoDB+on+Azure
+-+Overview
• MongoDB Experts video series:
http://blogs.msdn.com/b/interoperability/archive/2012/06/01
/mongodb-experts-video-series.aspx
• Windows Azure development:
www.WindowsAzure.com
• Windows Azure Training Kit:
http://windowsazure-trainingkit.github.com/