MongoDB at CustomInk - Meetupfiles.meetup.com/1742411/MongoDB_at_CustomInk.pdfThanks"for"aending"!...
Transcript of MongoDB at CustomInk - Meetupfiles.meetup.com/1742411/MongoDB_at_CustomInk.pdfThanks"for"aending"!...
@
@nathenharvey Nathen Harvey
Hello!
! Nathen Harvey ! Web Opera4ons at CustomInk
! [email protected] ! @nathenharvey
! Organize MongoDC Meetups ! See you there next month!
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Thanks for aFending
! In the other track ! Eliot Horowitz, CTO & Co-‐Founder, 10gen
! Schema Design at Scale
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk Customers
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk Customers
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk Customers
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk Customers
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Customer Reviews
Nathen Harvey Nathen Harvey
CustomInk Technology
! Divide our technology into two classes: ! ECommerce – pre-‐checkout and shopping cart
! Opera4ons Technology – post-‐check-‐out, fulfillment, etc.
! Ruby on Rails ! With some legacy Java
! Approximately 30 different applica4ons running in produc4on
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
CustomInk Databases
! Primarily Oracle ! Was the “right” choice 11 years ago when the company was started
! No longer a good solu4on for us ! MySQL
! Percona Server with XtraDB ! MongoDB
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
MongoDB
! Champions ! Easy to set-‐up and configure ! “Greenfield” projects with loose schema defini4ons
! Makes development easier and developers happy ! Limited amount of 4me between releases
! Challenges ! No prior experience with running produc4on ! Limited amount of 4me between releases
! Unproven solu4on
Nathen Harvey Nathen Harvey
Problem
! Complex Produc4on Environments
! Orchestrated Services
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Why Mongo?
! Introduces company to MongoDB ! Easily to modify document structure
! Lightweight development
! Easy to install and deploy ! Capped Collec4ons
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Central Logger
! Subclasses Buffered Logger ! It’s a gem loaded into Rails applica4ons as a Rail4e
! Captures useful metadata
! Use the MongoDB Ruby Driver
! hFp://github.com/customink/central_logger
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Central Logger
Record Structure
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Log Viewer
Product Catalog
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Why Mongo?
! Frequently changing requirements ! GridFS ! Wide variety of products with varied characteris4cs
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Case for Document-‐based Schema
@nathenharvey Nathen Harvey
Applica4on Architecture
! Rails applica4on for managing the product catalog
! Writes to MongoDB as it’s database
! U4lizes GridFS for storing files ! Uses Mongoid as the ODM
@nathenharvey Nathen Harvey
Implementa4on Flow
Oracle MongoDB
ECommerce Applica4on
Catalog Applica4on
@nathenharvey Nathen Harvey
Next Steps
! Con4nue to adopt MongoDB in the Opera4ons Technology applica4ons
! Begin using MongoDB with ECommerce applica4ons ! Repor4ng artwork usage ! Capturing JavaScript logs
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Automated Deployment
! Chef is an open source systems integra4on framework built to bring the benefits of configura4on management to your en4re infrastructure.
! We use Chef to manage our infrastructure and deploy MongoDB
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
MongoDB Cookbook
! Use Vagrant and VirtualBox as the development environment for our Cookbooks
! Cookbook shared on Github and, soon, OpsCode Community Site.
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Monitoring Produc4on
! hFp://github.com/mzupan/nagios-‐plugin-‐mongodb
Monitoring Produc4on
! Monit
Lessons Learned
! Capped Collec4ons ! Tes4ng replica set failover ! Schema free != design free ! JSON in the DB, JQuery in the browser == happy developers
! mongo_import could not handle carriage returns in CSV files
! Unserializable data types ! Data transforma4ons on a large dataset s4ll painful ! Unless you’re sharding, map reduce probably slower and more complex than what you’re used to
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
MongoDC Meetup
! Join fellow MongoDB enthusiasts for a monthly meetup
! Mee4ngs are held at CustomInk in McLean, VA
! hFp://www.meetup.com/Washington-‐DC-‐MongoDB-‐Users-‐Group/
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Thank You!
! Nathen Harvey ! Web Opera4ons at CustomInk
! [email protected] ! @nathenharvey
! Organize MongoDC Meetups ! See you there next month!
@nathenharvey Nathen Harvey @nathenharvey Nathen Harvey