basic ops skills and tools for beginners

37
rainforest @rainforestqa Ops Skills and Tools for Beginners

Upload: mongodb

Post on 08-Sep-2014

903 views

Category:

Technology


3 download

DESCRIPTION

Your datastore, MongoDB, is likely critical to your project; if you're new to MongoDB or Ops and have to keep things running in production this is the talk for you. We will cover Ops with MongoDB from the ground up; which parts of servers you should monitor and why, and show how to take and test backups. Also, we'll run through different tools you can use for installing, running, and monitoring MongoDB. After this you should be comfortable with the basics of running MongoDB in production, as well as have a head start on what you should do next.

TRANSCRIPT

Page 1: Basic Ops Skills and Tools for Beginners

rainforest @rainforestqa

Ops Skills and Tools for Beginners

Page 2: Basic Ops Skills and Tools for Beginners

Russell Smith!

English guy Mongo DB Master Ex Ops consultant

Ruby / PHP developer YC S12 Alum

Using mongo in Prod since 1.6/1.8

Page 3: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Rainforest QA

!

Insanely simple testing

checkout: www.rainforestqa.com

Page 4: Basic Ops Skills and Tools for Beginners

What is Ops?

Page 5: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Setting up servers / services

Page 6: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Supporting Engineers

Page 7: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Keeping stuff running

Page 8: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Avoiding disasters

Page 9: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Fixing breakage

Page 10: Basic Ops Skills and Tools for Beginners

Lets Learn the basics

Page 11: Basic Ops Skills and Tools for Beginners

Installation

Page 12: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Replicated

Page 13: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Sharded

Page 14: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Best practices

Ubuntu is simplest

Install from Mongo’s repo

Chose the right replica set size: 3 nodes

Never use 32 bits

Page 15: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Alternatives

MongoHQ

MonogLab

ObjectRocket

MMS + AWS (via automation)

Page 16: Basic Ops Skills and Tools for Beginners

Monitoring Mongo

Page 17: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Server components

Page 18: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Storage

magnetic, ssd

metric: disk io

Page 19: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Memory / RAM

fastest general store

metrics; free, swap usage

Page 20: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Network

allows communication

use 1gbit or higher (avoid 100mbit)

metrics; latency, throughput

Page 21: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

CPU

more is better

mostly used

metrics; % usage

Page 22: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Monitoring & Diagnostics

Page 23: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Top things to monitorFailover events

Repl Lag

Connections

Lock %

Disk usage

Page 24: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Hosted is Simplest

Page 25: Basic Ops Skills and Tools for Beginners

MMSHosted, free for monitoring

!

Also can do Backups

Automation

Page 26: Basic Ops Skills and Tools for Beginners

ScoutMonitors mongo, servers and many

others (Plugins!) !

non-free

Page 27: Basic Ops Skills and Tools for Beginners

Server DensityMonitors mongo, servers and many

others (Plugins!) !

non-free

Page 28: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Opensource options

Ganglia

Munin

Nagios

Zabbix

Page 29: Basic Ops Skills and Tools for Beginners

Linux tools to learnmongostat / mongotop

top iostat vmstat netstat

Page 30: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Mongo shellrs.conf()

rs.status()

db.serverStatus()

db.stats()

db.currentOp()

Page 31: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Backups

Page 32: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Backup options

mongodump

from the file system

LVM / EBS

MMS

Page 33: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

TEST YOUR BACKUPS

Page 34: Basic Ops Skills and Tools for Beginners

Common pitfals

Page 35: Basic Ops Skills and Tools for Beginners

Missing indexes!

Running out of disk space

Untested backups

Sharding too late / wrong key

un-replicated / even set size

Page 36: Basic Ops Skills and Tools for Beginners

@rainforestqarainforest

Conclusion

do backups

monitor

read the docs

Page 37: Basic Ops Skills and Tools for Beginners

rainforest @rainforestqa

Questions?@rainforestqa

@rhs