virtualizing mongodb: cloud, ec2, openstack, vms...or dedicated?

81
Virtualizing MongoDB: Cloud, EC2, GCE or Dedicated? David Mytton MongoDB World - July 2014 blog.serverdensity.com

Upload: mongodb

Post on 25-May-2015

1.395 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Virtualizing MongoDB: Cloud, EC2, GCE or Dedicated?

David MyttonMongoDB World - July 2014

blog.serverdensity.com

Page 2: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

David Mytton

Page 3: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Server monitoring, cloud management, dashboards and alerting

serverdensity.com

Page 4: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Server Density Architecture

Page 5: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Server Density Architecture

● ~100 servers - Ubuntu 12.04

Page 6: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Server Density Architecture

● ~100 servers - Ubuntu 12.04

● 50:50 virtual/dedicated

Page 7: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Server Density Architecture

● ~100 servers - Ubuntu 12.04

● 50:50 virtual/dedicated

● 30TB/m incoming data

Page 8: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Server Density Architecture

● ~100 servers - Ubuntu 12.04

● 50:50 virtual/dedicated

● 30TB/m incoming data

● Nginx, Python, MongoDB

Page 9: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Server Density Architecture

● ~100 servers - Ubuntu 12.04

● 50:50 virtual/dedicated

● 30TB/m incoming data

● Nginx, Python, MongoDB

● Softlayer > Google Cloud

Page 10: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Two choices for deployment

Page 11: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Two choices for deployment

● Virtualized

● Bare metal

Page 12: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of virtualization

● Easy to manage

Page 13: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of virtualization

● Easy to manage

● Fast boot

Page 14: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of virtualization

● Easy to manage

● Fast boot

● Easier to resize/migrate

Page 15: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of virtualization

● Easy to manage

● Fast boot

● Easier to resize/migrate

● Templating/snapshots

Page 16: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of virtualization

● Easy to manage

● Fast boot

● Easier to resize/migrate

● Templating/snapshots

● Containment

Page 17: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of virtualization

● Another layer

Page 18: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of virtualization

● Another layer

● Hypervisor overhead

Page 19: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of virtualization

● Another layer

● Hypervisor overhead

● Host contention

Page 20: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of virtualization

● Another layer

● Hypervisor overhead

● Host contention

● i/o performance

Page 21: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of bare metal

● Dedicated resources

Page 22: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of bare metal

● Dedicated resources

● Direct access to hardware

Page 23: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of bare metal

● Dedicated resources

● Direct access to hardware

● Customisable specs

Page 24: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Advantages of bare metal

● Dedicated resources

● Direct access to hardware

● Customisable specs

● Performance

Page 25: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of bare metal

● Build/deploy time

Page 26: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of bare metal

● Build/deploy time

● More difficult to resize

Page 27: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of bare metal

● Build/deploy time

● More difficult to resize

● Difficult to migrate/snapshot

Page 28: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Disadvantages of bare metal

● Build/deploy time

● More difficult to resize

● Capex/lifetime

● Difficult to migrate/snapshot

Page 29: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why cloud?

● Flexible

Page 30: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why cloud?

● Flexible

● Unlimited resources

Page 31: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why cloud?

● Flexible

● Unlimited resources

● Cheap to get started

Page 32: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why cloud?

● Flexible

● Unlimited resources

● Cheap to get started

● Other products

Page 33: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why colo?

Page 34: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why colo?

● Vastly cheaper

● Complete control

Page 35: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Performance problems?

Page 36: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Performance problems?

Easy answer: move to bare metal!

Page 37: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising virtualization

● Dedicated CPUs

Page 38: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising virtualization

● Dedicated CPUs

● High speed networking

Page 39: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising virtualization

● Dedicated CPUs

● High speed networking

● Disk i/o (MB/s & IOPS)

Page 40: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

Page 41: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● Newer, 64bit instance types

Page 42: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● Newer, 64bit instance types

● Use network / EBS optimised instances

Page 43: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● Newer, 64bit instance types

● Use network / EBS optimised instances

● High memory (CPU not important)

Page 44: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● Newer, 64bit instance types

● Use network / EBS optimised instances

● High memory (CPU not important)

● Local storage ephemeral

Page 45: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● Newer, 64bit instance types

● Use network / EBS optimised instances

● High memory (CPU not important)

● Local storage ephemeral

● Volumes for log, journal and data

Page 46: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● PIOPS EBS volumes

Page 47: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● PIOPS EBS volumes

● RAID for redundancy & performance

Page 48: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising EC2

● PIOPS EBS volumes

● RAID for redundancy & performance

● blockdev --setra 32

Page 49: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Common EC2 Problems

Page 50: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Common EC2 Problems

● Networking

Page 51: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Common EC2 Problems

● Networking

● Older hardware

Page 52: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Common EC2 Problems

● Networking

● Older hardware

● Complex pricing (PIOPS)

Page 53: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why EC2?

Page 54: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why EC2?

● Most popular

Page 55: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why EC2?

● Most popular

● Range of instance types

Page 56: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why EC2?

● Most popular

● Range of instance types

● Many regions

Page 57: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising GCE

● High memory instances

Page 58: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising GCE

● High memory instances

● Volume size = IOPS available

Page 59: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising GCE

● High memory instances

● Volume size = IOPS available

● VMs have limits too

Page 60: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising GCE

● High memory instances

● Volume size = IOPS available

● VMs have limits too

● Single volume or wasted space

Page 61: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Optimising GCE

● High memory instances

● Volume size = IOPS available

● VMs have limits too

● Single volume or wasted space

● Network / RAID already handled

Page 62: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Common GCE problems

● Volume too small

Page 63: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Common GCE problems

● Volume too small

● RAIDing unnecessary

Page 64: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Common GCE problems

● Volume too small

● RAIDing unnecessary

● Hitting limits?

Page 65: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why GCE?

● Best network performance

Page 66: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why GCE?

● Best network performance

● Easy to size disks / pricing

Page 67: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why GCE?

● Best network performance

● Easy to size disks / pricing

● Global snapshots

Page 68: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Why GCE?

● Best network performance

● Easy to size disks / pricing

● Global snapshots

● Live migrate

Page 69: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Networking performance

AWS

GCE

bit.ly/googlevsamazon

Page 70: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Tweak: separate disks

Page 71: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Tweak: separate disks

● Avoids i/o contention

Page 72: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Tweak: separate disks

● Optimise IOPS/size/price for journal, dbpath, logs

● Avoids i/o contention

Page 73: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Tweak: separate disks

● Optimise IOPS/size/price for journal, dbpath, logs

● --directoryperdb - even separate out each database

● Avoids i/o contention

Page 74: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

--directoryperdb warning

Page 75: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

--directoryperdb warning

● Snapshotting more complex

Page 76: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

--directoryperdb warning

● Snapshotting more complex

● Requires fsync lock + snapshot all volumes

Page 77: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Summary

● VMs for flexibility

Page 78: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Summary

● VMs for flexibility

● … but need tweaks

Page 79: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Summary

● VMs for flexibility

● Bare metal/colo for price/performance

● … but need tweaks

Page 80: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

Summary

● VMs for flexibility

● Bare metal/colo for price/performance

● … but ops overhead

● … but need tweaks

Page 81: Virtualizing MongoDB: Cloud, EC2, OpenStack, VMs...or Dedicated?

どもありがとうございます

@davidmytton

[email protected]

blog.serverdensity.com