SlideShare a Scribd company logo
MongoDB on Windows AzureWIP ReportMongoBoston September 2010
Brief SurveyBusiness Decision Makers?IaaS (ex. AWS or RackSpace) users
Management of Resources:  What you managePlatform as a Service (PaaS)Software as a Service (SaaS)PRIVATE(On-Premise)Infrastructureas a Service (IaaS)ApplicationsApplicationsApplicationsApplicationsYou ManageYou ConfigureDevelopment & Runtime KernelsDevelopment & Runtime KernelsDevelopment & Runtime KernelsDevelopment & Runtime KernelsYou ManageDatabasesDatabasesDatabasesDatabasesSecurity, Management, Load Balancing & IntegrationSecurity, Management, Load Balancing & IntegrationSecurity, Management, Load Balancing & IntegrationSecurity, Management, Load Balancing & IntegrationLogical Servers, StorageLogical Servers, StorageLogical Servers, StorageLogical Servers, StorageYou ManageManaged by VendorManaged by VendorVirtualizationVirtualizationVirtualizationVirtualizationOSOSOSOSManaged by VendorServer HardwareServer HardwareServer HardwareServer HardwareNetworking, Utilities, PhysicalNetworking, Utilities, PhysicalNetworking, Utilities, PhysicalNetworking, Utilities, Physical
The Windows Azure PlatformWindows Azure is an internet-scale cloud services platform hosted in Microsoft data centers around the world, proving a simple, reliable and powerful platform for the creation of web applications and services.
Defining the Windows Azure Architecture
Compute Services in Windows AzureGOAL: Massive ScalabilityTwo role types: Web Role & Worker RoleWindows Azure applications are built with web roles, worker roles, or a combination of both deployed to a number of instances.Scale out – not up – by replicating worker instances as needed.Allow applications to scale user and compute processing independently.Each instance runs on its own VM (virtual machine), replicated as needed
BLOBS: Provide a simple interface for storing named files along with metadata for the file.QUEUES: Provide reliable storage and delivery of messages for an application.TABLES: Provide structured storage. A table is a set of entities which contain a set of properties.Blobs, Tables, Queues and DrivesDRIVES: A durable NTFS file system volume, sharable across instances.
Running even one Mongo instanceAzure runs Windows 2008 server VMs.NET 4 included. All else must be bundled.XCOPY = GOOD. Registry and MSI = BADMongoDB = XCOPY = GOOD!!!Mongo needs disk storage.Choose: non-durable or durableLocal disk: non-durable. Blob: durable!Mongo needs connection portMultiple instances can’t talk to each otherClient can’t choose server instanceCan’t scale – multiple instances are independent!Azure uses random ports – Mongo needs to use this portMongod won’t allow mapping of http server port!
Single-Instance SolutionSingle worker role instanceLocal (non-durable) or blob (durable) storageSingle port mapped to mongod.exeServer only; no web server accessMongod instance as spawned processNot as serviceMust specify mapped port, data path, no httpIf server exits, recycle instance
Here’s How It’s Donevar storage = RoleEnvironment.GetLocalResource("MongoDBStorage");varstoragePath = storage.RootPath;string mongoRoot = Path.Combine(Environment.GetEnvironmentVariable("RoleRoot") + 	@"\", @"approot\MongoDB");intport = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["MongoIn"].IPEndpoint.Port;varcmdline = String.Format( "--nohttpinterface --port {0} --dbpath {1} ", port, storagePath);MongoProcess= new Process(){StartInfo= new ProcessStartInfo(Path.Combine(mongoRoot, @"mongod.exe"), cmdline)     	{UseShellExecute= false,WorkingDirectory= mongoRoot}};MongoProcess.Start();
Managing InstancesMongoD.exe provides statushttp (28017), mongod shellAzure Load Balancer hides instances!Single IP/Port inbound from client appsMultiple port round-robin internallyAzure-hosted apps can access instances!Must treat all instances equallyAssuming specific instance access = bad
Client works against single IP/PortNo way for client app to access individual serverNo shared storage
Multiple servers accessible via Azure serverMainly for management purposes
Replica Sets ChallengesNo shell accesshow to configure?Single IP How to access?How to monitor?DB accessHow to access Master in set?What about storage?
Replica Set SolutionReplicaSet worker roleRuns mongod with –replSetManagement role (either worker or part of web)Enumerates all ReplicaSet role instancesBuilds configuration documentConnects to one node; uploads configwhich initializes replica setClient applicationConnects to replica set via compatible driverStorageEither local storage or blob storage.If blob storage, each replica set node has its own blob
Areas to be ExploredReplica set per deploymentSelf configuring replica sets and shardsConfiguration data held in WA StorageInstance and Replica Set information pushedMongo HTTP port configuration
Coming Soon to a Cloud Near YouRDP access to instancesMongo Sharding will be simpler to implement than replication due to its cloud friendly architecture

More Related Content

DOCX
Node js getting started
PPT
Node js beginner
PDF
Node Js, AngularJs and Express Js Tutorial
PPT
Php By Virat
PDF
Node.js introduction
ODP
Getting hands on-experience with UltraESB
PPTX
Deploy meteor in production
PPTX
Node.js
Node js getting started
Node js beginner
Node Js, AngularJs and Express Js Tutorial
Php By Virat
Node.js introduction
Getting hands on-experience with UltraESB
Deploy meteor in production
Node.js

What's hot (20)

PPTX
HTML5 Programming
PPTX
ASP.NET vNext
PPT
Exploring Node.jS
PDF
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
ODP
Introduction to Mesos
PDF
Mongo performance tuning: tips and tricks
PPTX
Node js for beginners
PDF
Asp.net caching
PPTX
Introduction to Node.js
PDF
Webserver
PPTX
Caching in asp.net mvc
PDF
Distributed computing in browsers as client side attack
PPTX
Caching Enhancement in ASP.NET 4.0
PDF
Node JS | Dilkash Shaikh Mahajan
PPTX
Microsoft Azure Media Services
PPT
Aspnet Caching
PPTX
What I learned from FluentConf and then some
PPT
Aleksandr_Butenko_Mobile_Development
PDF
Introduction to Node.js Platform
PPTX
Containerized Data Persistence on Mesos
HTML5 Programming
ASP.NET vNext
Exploring Node.jS
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Introduction to Mesos
Mongo performance tuning: tips and tricks
Node js for beginners
Asp.net caching
Introduction to Node.js
Webserver
Caching in asp.net mvc
Distributed computing in browsers as client side attack
Caching Enhancement in ASP.NET 4.0
Node JS | Dilkash Shaikh Mahajan
Microsoft Azure Media Services
Aspnet Caching
What I learned from FluentConf and then some
Aleksandr_Butenko_Mobile_Development
Introduction to Node.js Platform
Containerized Data Persistence on Mesos
Ad

Viewers also liked (10)

PDF
MongoHQ (Jason McCay & Ben Wyrosdick)
PDF
Ruby Development and MongoMapper (John Nunemaker)
PDF
Practical Ruby Projects with MongoDB - Ruby Midwest
KEY
MongoDB - Ruby document store that doesn't rhyme with ouch
PPTX
MongoDB Replication (Dwight Merriman)
PPTX
Cosmic rays detection theory
PPT
Cosmic Ray Presentation
PPTX
physics lecture
KEY
MongoDB: How it Works
PPTX
Solid state physics - Crystalline Solids
MongoHQ (Jason McCay & Ben Wyrosdick)
Ruby Development and MongoMapper (John Nunemaker)
Practical Ruby Projects with MongoDB - Ruby Midwest
MongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB Replication (Dwight Merriman)
Cosmic rays detection theory
Cosmic Ray Presentation
physics lecture
MongoDB: How it Works
Solid state physics - Crystalline Solids
Ad

Similar to MongoDB on Windows Azure (20)

PPTX
MongoDB on Windows Azure
PPTX
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
PPTX
Windows azure camp
PDF
Node JS Interview Question PDF By ScholarHat
PPTX
Java on Windows Azure
PDF
Azure Cloud Dev Camp - App Platform
PPTX
Public Cloud Platforms for .NET Developers
PDF
Experiences using CouchDB inside Microsoft's Azure team
PPT
Managing Your Runtime With P2
PDF
Introduction to Windows Azure
PPTX
Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor
PPTX
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
KEY
node.js: Javascript's in your backend
KEY
MongoDB vs Mysql. A devops point of view
PPTX
Windows azure camp - Kolkata
PPTX
Azure and Umbraco CMS
PPT
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
PPT
Hadoop and Voldemort @ LinkedIn
PPTX
The three aaS's of MongoDB in Windows Azure
PPT
The Top 10 Things Oracle UCM Users Need To Know About WebLogic
MongoDB on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
Windows azure camp
Node JS Interview Question PDF By ScholarHat
Java on Windows Azure
Azure Cloud Dev Camp - App Platform
Public Cloud Platforms for .NET Developers
Experiences using CouchDB inside Microsoft's Azure team
Managing Your Runtime With P2
Introduction to Windows Azure
Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor
StorageOS, Storage for Containers Shouldn't Be Annoying at Container Camp UK
node.js: Javascript's in your backend
MongoDB vs Mysql. A devops point of view
Windows azure camp - Kolkata
Azure and Umbraco CMS
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Hadoop and Voldemort @ LinkedIn
The three aaS's of MongoDB in Windows Azure
The Top 10 Things Oracle UCM Users Need To Know About WebLogic

More from MongoDB (20)

PDF
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
PDF
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
PDF
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
PDF
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
PDF
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
PDF
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
PDF
MongoDB SoCal 2020: MongoDB Atlas Jump Start
PDF
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
PDF
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
PDF
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
PDF
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
PDF
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
PDF
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
PDF
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
PDF
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
PDF
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
PDF
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
PDF
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...

Recently uploaded (20)

PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
PDF
This slide provides an overview Technology
PDF
DevOps & Developer Experience Summer BBQ
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
PPTX
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
PDF
Revolutionize Operations with Intelligent IoT Monitoring and Control
PDF
Why Endpoint Security Is Critical in a Remote Work Era?
PPTX
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx
PDF
agentic-ai-and-the-future-of-autonomous-systems.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
PDF
Doc9.....................................
PDF
Smarter Business Operations Powered by IoT Remote Monitoring
PDF
Event Presentation Google Cloud Next Extended 2025
PDF
Reimagining Insurance: Connected Data for Confident Decisions.pdf
PDF
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Enable Enterprise-Ready Security on IBM i Systems.pdf
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
This slide provides an overview Technology
DevOps & Developer Experience Summer BBQ
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
NewMind AI Weekly Chronicles - July'25 - Week IV
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
Revolutionize Operations with Intelligent IoT Monitoring and Control
Why Endpoint Security Is Critical in a Remote Work Era?
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx
agentic-ai-and-the-future-of-autonomous-systems.pdf
NewMind AI Weekly Chronicles - August'25 Week I
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
Doc9.....................................
Smarter Business Operations Powered by IoT Remote Monitoring
Event Presentation Google Cloud Next Extended 2025
Reimagining Insurance: Connected Data for Confident Decisions.pdf
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
madgavkar20181017ppt McKinsey Presentation.pdf
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Enable Enterprise-Ready Security on IBM i Systems.pdf

MongoDB on Windows Azure

  • 1. MongoDB on Windows AzureWIP ReportMongoBoston September 2010
  • 2. Brief SurveyBusiness Decision Makers?IaaS (ex. AWS or RackSpace) users
  • 3. Management of Resources: What you managePlatform as a Service (PaaS)Software as a Service (SaaS)PRIVATE(On-Premise)Infrastructureas a Service (IaaS)ApplicationsApplicationsApplicationsApplicationsYou ManageYou ConfigureDevelopment & Runtime KernelsDevelopment & Runtime KernelsDevelopment & Runtime KernelsDevelopment & Runtime KernelsYou ManageDatabasesDatabasesDatabasesDatabasesSecurity, Management, Load Balancing & IntegrationSecurity, Management, Load Balancing & IntegrationSecurity, Management, Load Balancing & IntegrationSecurity, Management, Load Balancing & IntegrationLogical Servers, StorageLogical Servers, StorageLogical Servers, StorageLogical Servers, StorageYou ManageManaged by VendorManaged by VendorVirtualizationVirtualizationVirtualizationVirtualizationOSOSOSOSManaged by VendorServer HardwareServer HardwareServer HardwareServer HardwareNetworking, Utilities, PhysicalNetworking, Utilities, PhysicalNetworking, Utilities, PhysicalNetworking, Utilities, Physical
  • 4. The Windows Azure PlatformWindows Azure is an internet-scale cloud services platform hosted in Microsoft data centers around the world, proving a simple, reliable and powerful platform for the creation of web applications and services.
  • 5. Defining the Windows Azure Architecture
  • 6. Compute Services in Windows AzureGOAL: Massive ScalabilityTwo role types: Web Role & Worker RoleWindows Azure applications are built with web roles, worker roles, or a combination of both deployed to a number of instances.Scale out – not up – by replicating worker instances as needed.Allow applications to scale user and compute processing independently.Each instance runs on its own VM (virtual machine), replicated as needed
  • 7. BLOBS: Provide a simple interface for storing named files along with metadata for the file.QUEUES: Provide reliable storage and delivery of messages for an application.TABLES: Provide structured storage. A table is a set of entities which contain a set of properties.Blobs, Tables, Queues and DrivesDRIVES: A durable NTFS file system volume, sharable across instances.
  • 8. Running even one Mongo instanceAzure runs Windows 2008 server VMs.NET 4 included. All else must be bundled.XCOPY = GOOD. Registry and MSI = BADMongoDB = XCOPY = GOOD!!!Mongo needs disk storage.Choose: non-durable or durableLocal disk: non-durable. Blob: durable!Mongo needs connection portMultiple instances can’t talk to each otherClient can’t choose server instanceCan’t scale – multiple instances are independent!Azure uses random ports – Mongo needs to use this portMongod won’t allow mapping of http server port!
  • 9. Single-Instance SolutionSingle worker role instanceLocal (non-durable) or blob (durable) storageSingle port mapped to mongod.exeServer only; no web server accessMongod instance as spawned processNot as serviceMust specify mapped port, data path, no httpIf server exits, recycle instance
  • 10. Here’s How It’s Donevar storage = RoleEnvironment.GetLocalResource("MongoDBStorage");varstoragePath = storage.RootPath;string mongoRoot = Path.Combine(Environment.GetEnvironmentVariable("RoleRoot") + @"\", @"approot\MongoDB");intport = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["MongoIn"].IPEndpoint.Port;varcmdline = String.Format( "--nohttpinterface --port {0} --dbpath {1} ", port, storagePath);MongoProcess= new Process(){StartInfo= new ProcessStartInfo(Path.Combine(mongoRoot, @"mongod.exe"), cmdline) {UseShellExecute= false,WorkingDirectory= mongoRoot}};MongoProcess.Start();
  • 11. Managing InstancesMongoD.exe provides statushttp (28017), mongod shellAzure Load Balancer hides instances!Single IP/Port inbound from client appsMultiple port round-robin internallyAzure-hosted apps can access instances!Must treat all instances equallyAssuming specific instance access = bad
  • 12. Client works against single IP/PortNo way for client app to access individual serverNo shared storage
  • 13. Multiple servers accessible via Azure serverMainly for management purposes
  • 14. Replica Sets ChallengesNo shell accesshow to configure?Single IP How to access?How to monitor?DB accessHow to access Master in set?What about storage?
  • 15. Replica Set SolutionReplicaSet worker roleRuns mongod with –replSetManagement role (either worker or part of web)Enumerates all ReplicaSet role instancesBuilds configuration documentConnects to one node; uploads configwhich initializes replica setClient applicationConnects to replica set via compatible driverStorageEither local storage or blob storage.If blob storage, each replica set node has its own blob
  • 16. Areas to be ExploredReplica set per deploymentSelf configuring replica sets and shardsConfiguration data held in WA StorageInstance and Replica Set information pushedMongo HTTP port configuration
  • 17. Coming Soon to a Cloud Near YouRDP access to instancesMongo Sharding will be simpler to implement than replication due to its cloud friendly architecture