mongodb and windows azure
DESCRIPTION
Overview of Windows Azure's current support for MongoDB deployments on IaaS virtual machines or PaaS worker roles. Presented at MongoDB Seattle, 9/14/2012.TRANSCRIPT
![Page 1: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/1.jpg)
MongoDB and Windows Azure
Doug MahughSenior Technical EvangelistMicrosoft Open Technologies, Inc.
Sridhar NanjundeswaranSoftware Engineer10gen
![Page 2: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/2.jpg)
Agenda
• Overview of Windows Azure
• MongoDB on Windows Azure
• Deploying MongoDB as a Cloud Service
• Deploying to Virtual Machines
• Best Practices, Tips & Tricks
![Page 3: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/3.jpg)
Windows Azure
Windows Azure provides a comprehensive set of services that you can selectively compose to build your cloud apps and services
Global Data Center Footprint99.95% Monthly SLA / pay only for what you use
Flexible & Open Compute OptionsVirtual Machines, Web Sites, & Cloud Services
Managed Building Block ServicesBlob storage, SQL Database, Cache, Service Bus, & more
![Page 4: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/4.jpg)
Applicationbuilding blocks
StorageBig data
Caching
CDN
Database
Identity
Media
Messaging
Networking
Traffic
![Page 5: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/5.jpg)
Open Source on Windows AzureMicrosoft works with leading OSS communities to assure that popular applications, frameworks and tools work great with Windows Azure
Learn more: http://www.windowsazure.com/en-us/community/open-source-software/
![Page 6: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/6.jpg)
Microsoft Open Technologies, Inc.• Wholly owned subsidiary of
Microsoft
• Responsible for advancingthe company’s investmentin openness:• interoperability• open standards• open source
• Collaborating with the MongoDB community since 2011 to improve the MongoDB experience on Windows Azure
![Page 7: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/7.jpg)
• Open-source SDKs forpopular programminglanguages, to get youup and running quickly
• Choice of popular IDEssuch as Visual Studioand Eclipse
• Consistent REST protocols and APIs across Windows Azure serviceshttp://www.windowsazure.com/en-us/develop/overview/
Windows Azure Developer Center
MongoDB drivers:
.NET driver
Node.js driver
Java driver
PHP driver
Python driver
Driver download page
![Page 8: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/8.jpg)
A container of related service roles
Web Roles Worker Roles
Windows Azure Cloud Service
![Page 9: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/9.jpg)
Windows AzureVirtual Machines
Windows Server 2008 R2
Windows Server 2012
OpenSUSE 12.1
CentOS 6.2
Ubuntu 12.04
SUSE Linux Enterprise Server SP2
![Page 10: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/10.jpg)
Virtual Machine Sizes
Each Persistent Data Disk Can be up to 1 TB
VM SizeCPU Cores
MemoryBandwidth (Mbps)
# Data 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
![Page 11: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/11.jpg)
Windows Azure Management Portalhttp://manage.windowsazure.com
Old portal is available athttps://windows.azure.com
![Page 12: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/12.jpg)
Getting Started
http://www.windowsazure.com/en-us/pricing/free-trial/
![Page 13: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/13.jpg)
MongoDB + Windows Azure
• MongoDB designed to run in the cloud• Windows Azure supports multiple architectures for
MongoDB deployment• The combination of MongoDB and Windows Azure
provides many benefits:• High scalability and elasticity• On-demand capacity• Pay for only what you use• Faster time-to-market
![Page 14: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/14.jpg)
Replica set hostedon Windows Azure
worker roles orvirtual machines
Replica Set
Primary
Secondary
Secondary
DriverYour Application
Replica Sets: high availability
![Page 15: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/15.jpg)
Shards and mongos (router) hosted on Windows Azure worker roles or virtual machines
Key range A-B
Primary
Secondary
Secondary
Sharding: high scalability and throughput
Key range B-C
Primary
Secondary
Secondary
Key range C-D
Primary
Secondary
Secondary
Key range D-E
Primary
Secondary
Secondary
Mongos (router)
Your Application
![Page 16: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/16.jpg)
MongoDB + Windows Azure benefits
Flexible
• PaaS or IaaS deployment• Java, PHP, Node.JS, .NET, or Python• Many OS options including Windows Server, CentOS,
Ubuntu, SUSE
Scalable
• MongoDB’s built-in support for horizontal scaling and sharding
• Windows Azure’s built-in support for responsive auto-scaling
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
![Page 17: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/17.jpg)
Deploying MongoDB as a Cloud Service
• Windows Azure cloud servicesrun on a fully automated, highlyscalable 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
Azure wrapper:http://www.mongodb.org/display/DOCS/MongoDB+on+Azure+Worker+Roles
![Page 18: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/18.jpg)
Deploying to Virtual Machines
• Compared to worker role, VM-basedreplica sets offer more control, aswell 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+I
nstaller
• .\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.windowsazure.com/en-us/manage/linux/common-tasks/mongodb-on-a-linux-vm/
![Page 19: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/19.jpg)
Scripting Capabilities• Windows Azure PowerShell Cmdlets• Cross Platform Scripting Built on node.js• Service Management APICapabilities:• Provisioning, Removal• Reboot, Start• Import and Export VM settings• Support for Windows and Linux VMs• Fully Customize VM with Data Disks and Endpoint Configuration• Automate Virtual Network Settings
![Page 20: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/20.jpg)
azure topic verb options
Command Line Syntax Overviewprompt>
accountaccount locationaccount affinity-groupvmvm diskvm endpointvm imageserviceservice certsiteconfig
downloadimportlistshowdeletestartrestartshutdowncapturecreateattachdetachbrowseset
usernamepassworddns-prefixvm-namelb-porttarget-image-namesource-pathdisk-image-namesize-in-gbthumbprintvalue-v-vv
![Page 21: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/21.jpg)
Example: Provisioning a Replica Setazure 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 27017azure vm endpoint create mongoc9-2 27018 27018azure vm endpoint create mongoc9-3 27019 27019
To set up MongoDB, SSH into each instance and:
get mongodb binaries and installcreate db dirstart mongod, initialize replica set
![Page 22: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/22.jpg)
DEMO-PaaS
Monitoring service: http://beefb1a5abb743f086e57c5f7bf5d3cf.cloudapp.net/
App deployed with the MongoDB Replica Set wrapper for Windows Azure http://beefb1a5abb743f086e57c5f7bf5d3cf.cloudapp.net:8080/
![Page 23: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/23.jpg)
DEMO-IaaS
Local MongoDBinstance Primary
mongo-demo.php
mongo-demo.php?host=localhost
Replica set onLinux VMs Primary Secondary Secondary
mongo-demo.php?host=linux
Replica set onWindows VMs Primary Secondary Secondary
mongo-demo.php?host=windows
![Page 24: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/24.jpg)
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/
• OSS-on-Azure tutorials:http://ossonazure.interoperabilitybridges.com/tutorials
• Install MongoDB on a Centos virtual machine in Windows Azure:http://www.windowsazure.com/en-us/manage/linux/common-tasks/mongodb-on-a-linux-vm/
• Node.js Web Application with Storage on MongoDB (Virtual Machine):http://waweb.windowsazure.com/en-us/develop/nodejs/tutorials/website-with-mongodb-(mac)/
![Page 25: MongoDB and Windows Azure](https://reader034.vdocuments.us/reader034/viewer/2022052410/547cb465b4af9f4b6e8b45a5/html5/thumbnails/25.jpg)
Q&A