SlideShare uma empresa Scribd logo
1 de 33
@ @nathenharvey Nathen Harvey
Hello! Nathen Harvey Web Operations at CustomInk nharvey@customink.com @nathenharvey Organize MongoDCMeetups See you there next month! @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Thanks for attending 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 Operations Technology – post-check-out, fulfillment, etc. Ruby on Rails With some legacy Java Approximately 30 different applications running in production @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 solution 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 definitions Makes development easier and developers happy Limited amount of time between releases Challenges No prior experience with running production Limited amount of time between releases Unproven solution Nathen Harvey Nathen Harvey
Problem Complex Production Environments OrchestratedServices @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 Collections @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Central Logger Subclasses Buffered Logger It’s a gem loaded into Rails applications as a Railtie Captures useful metadata Use the MongoDB Ruby Driver http://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 characteristics @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Case for Document-based Schema @nathenharvey Nathen Harvey
Application Architecture Rails application for managing the product catalog Writes to MongoDB as it’s database Utilizes GridFS for storing files Uses Mongoid as the ODM @nathenharvey Nathen Harvey
Implementation Flow ECommerce Application Catalog Application MongoDB Oracle @nathenharvey Nathen Harvey
Next Steps Continue to adopt MongoDB in the Operations Technology applications Begin using MongoDB with ECommerce applications Reporting artwork usage Capturing JavaScript logs @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Automated Deployment Chef is an open source systems integration framework built to bring the benefits of configuration management to your entire 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 Production http://github.com/mzupan/nagios-plugin-mongodb
Monitoring Production Monit
Lessons Learned Capped Collections Testing 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 transformations on a large dataset still painful Unless you’re sharding, map reduce probably slower and more complex than what you’re used to @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
MongoDCMeetup Join fellow MongoDB enthusiasts for a monthly meetup Meetings are held at CustomInk in McLean, VA http://www.meetup.com/Washington-DC-MongoDB-Users-Group/ @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
Thank You! Nathen Harvey Web Operations at CustomInk nharvey@customink.com @nathenharvey Organize MongoDCMeetups See you there next month! @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey

Mais conteúdo relacionado

Semelhante a Mongo db at_customink

Semelhante a Mongo db at_customink (20)

Go Revel Gooo...
Go Revel Gooo...Go Revel Gooo...
Go Revel Gooo...
 
Building a great internal platform starts with the API
Building a great internal platform starts with the API Building a great internal platform starts with the API
Building a great internal platform starts with the API
 
A tour of React Native
A tour of React NativeA tour of React Native
A tour of React Native
 
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 MinutesUsing Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
 
Nitrodroid 2013 | Building your first Android App on PhoneGap
Nitrodroid 2013 | Building your first Android App on PhoneGapNitrodroid 2013 | Building your first Android App on PhoneGap
Nitrodroid 2013 | Building your first Android App on PhoneGap
 
Cake Php Consultant
Cake Php ConsultantCake Php Consultant
Cake Php Consultant
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...
 
Machine Learning and Python For Marketing Automation | MKGO October 2019 | Ru...
Machine Learning and Python For Marketing Automation | MKGO October 2019 | Ru...Machine Learning and Python For Marketing Automation | MKGO October 2019 | Ru...
Machine Learning and Python For Marketing Automation | MKGO October 2019 | Ru...
 
What is Django | Django Tutorial for Beginners | Python Django Training | Edu...
What is Django | Django Tutorial for Beginners | Python Django Training | Edu...What is Django | Django Tutorial for Beginners | Python Django Training | Edu...
What is Django | Django Tutorial for Beginners | Python Django Training | Edu...
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 
DevOp with Me!
DevOp with Me!DevOp with Me!
DevOp with Me!
 
Hire Laravel Developers India | Laravel Development Services | Hire Laravel P...
Hire Laravel Developers India | Laravel Development Services | Hire Laravel P...Hire Laravel Developers India | Laravel Development Services | Hire Laravel P...
Hire Laravel Developers India | Laravel Development Services | Hire Laravel P...
 
Hire React Native Developer
Hire React Native DeveloperHire React Native Developer
Hire React Native Developer
 
Learn Django Tips, Tricks & Techniques for Developers
Learn Django Tips, Tricks & Techniques for DevelopersLearn Django Tips, Tricks & Techniques for Developers
Learn Django Tips, Tricks & Techniques for Developers
 
Caribbean Developers Conference - 201K8s
Caribbean Developers Conference - 201K8sCaribbean Developers Conference - 201K8s
Caribbean Developers Conference - 201K8s
 
PWA to React Native migration
PWA to React Native migrationPWA to React Native migration
PWA to React Native migration
 
Internet of Things Brings On Development Demands That DevOps Manages, Say Exp...
Internet of Things Brings On Development Demands That DevOps Manages, Say Exp...Internet of Things Brings On Development Demands That DevOps Manages, Say Exp...
Internet of Things Brings On Development Demands That DevOps Manages, Say Exp...
 
ConFoo 2016: Development to Deployment
ConFoo 2016: Development to DeploymentConFoo 2016: Development to Deployment
ConFoo 2016: Development to Deployment
 
Building Cross Platform Mobile Apps
Building Cross Platform Mobile AppsBuilding Cross Platform Mobile Apps
Building Cross Platform Mobile Apps
 

Mais de Nathen Harvey

Mais de Nathen Harvey (13)

Accelerate Your DevOps Journey
Accelerate Your DevOps JourneyAccelerate Your DevOps Journey
Accelerate Your DevOps Journey
 
Continuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud BaltimoreContinuous Delivery - GDG Cloud Baltimore
Continuous Delivery - GDG Cloud Baltimore
 
Using Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkUsing Error Budgets to Prioritize Work
Using Error Budgets to Prioritize Work
 
Introduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecIntroduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpec
 
Introduction to Test Kitchen
Introduction to Test KitchenIntroduction to Test Kitchen
Introduction to Test Kitchen
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
 
Testing Terraform
Testing TerraformTesting Terraform
Testing Terraform
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
 
DevOps Days India Keynote
DevOps Days India KeynoteDevOps Days India Keynote
DevOps Days India Keynote
 
Compliance Automation with InSpec
Compliance Automation with InSpecCompliance Automation with InSpec
Compliance Automation with InSpec
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Step AFK: Practical Advice for Career Adavancement
Step AFK: Practical Advice for Career AdavancementStep AFK: Practical Advice for Career Adavancement
Step AFK: Practical Advice for Career Adavancement
 
Walk This Way - An Introduction to DevOps
Walk This Way - An Introduction to DevOpsWalk This Way - An Introduction to DevOps
Walk This Way - An Introduction to DevOps
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Mongo db at_customink

  • 2. Hello! Nathen Harvey Web Operations at CustomInk nharvey@customink.com @nathenharvey Organize MongoDCMeetups See you there next month! @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 3. Thanks for attending In the other track Eliot Horowitz, CTO & Co-Founder, 10gen Schema Design at Scale @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 4. CustomInk @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 5. CustomInk @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 6. CustomInk @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 7. CustomInk Customers @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 8. CustomInk Customers @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 9. CustomInk Customers @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 10. CustomInk Customers @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 11. Customer Reviews Nathen Harvey Nathen Harvey
  • 12. CustomInk Technology Divide our technology into two classes: ECommerce – pre-checkout and shopping cart Operations Technology – post-check-out, fulfillment, etc. Ruby on Rails With some legacy Java Approximately 30 different applications running in production @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 13. CustomInk Databases Primarily Oracle Was the “right” choice 11 years ago when the company was started No longer a good solution for us MySQL Percona Server with XtraDB MongoDB @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 14. MongoDB Champions Easy to set-up and configure “Greenfield” projects with loose schema definitions Makes development easier and developers happy Limited amount of time between releases Challenges No prior experience with running production Limited amount of time between releases Unproven solution Nathen Harvey Nathen Harvey
  • 15. Problem Complex Production Environments OrchestratedServices @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 16. Why Mongo? Introduces company to MongoDB Easily to modify document structure Lightweight development Easy to install and deploy Capped Collections @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 17. Central Logger Subclasses Buffered Logger It’s a gem loaded into Rails applications as a Railtie Captures useful metadata Use the MongoDB Ruby Driver http://github.com/customink/central_logger @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 19. Record Structure @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 21. Product Catalog @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 22. Why Mongo? Frequently changing requirements GridFS Wide variety of products with varied characteristics @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 23. Case for Document-based Schema @nathenharvey Nathen Harvey
  • 24. Application Architecture Rails application for managing the product catalog Writes to MongoDB as it’s database Utilizes GridFS for storing files Uses Mongoid as the ODM @nathenharvey Nathen Harvey
  • 25. Implementation Flow ECommerce Application Catalog Application MongoDB Oracle @nathenharvey Nathen Harvey
  • 26. Next Steps Continue to adopt MongoDB in the Operations Technology applications Begin using MongoDB with ECommerce applications Reporting artwork usage Capturing JavaScript logs @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 27. Automated Deployment Chef is an open source systems integration framework built to bring the benefits of configuration management to your entire infrastructure. We use Chef to manage our infrastructure and deploy MongoDB @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 28. 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
  • 31. Lessons Learned Capped Collections Testing 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 transformations on a large dataset still painful Unless you’re sharding, map reduce probably slower and more complex than what you’re used to @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 32. MongoDCMeetup Join fellow MongoDB enthusiasts for a monthly meetup Meetings are held at CustomInk in McLean, VA http://www.meetup.com/Washington-DC-MongoDB-Users-Group/ @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey
  • 33. Thank You! Nathen Harvey Web Operations at CustomInk nharvey@customink.com @nathenharvey Organize MongoDCMeetups See you there next month! @nathenharvey Nathen Harvey @nathenharvey Nathen Harvey

Notas do Editor

  1. Tempfile https://github.com/mongodb/mongo-ruby-driver/blob/master/lib/bson/bson_ruby.rb#L153MongoDB maintains deleted lists of space within the datafiles when objects or collections are deleted. This space is reused but never freed to the operating system.http://www.mongodb.org/display/DOCS/Durability+and+Repair