Edmunds.com

Launched in 1995 as the first automotive information web site, Edmunds.com is the premier online resource for car shopping and automotive information. It has been named “Best Car Research Site” by Forbes ASAP and regularly selected by consumers as the "Most Useful Web Site" according to J.D. Power and Associates New Autoshopper.com Studies (SM).

Edmunds has used MongoDB for years, assisted in its deployment by its implementation partner EPAM Systems. Adoption of MongoDB has grown since the company’s initial project was proven in production. MongoDB’s flexibility, ease of use and success in production have positioned the NoSQL database as a go-to data store for Edmunds developers who now rely on it for developing new functionality and applications.

The Problem

In 2011, Edmunds decided to move away from relational databases in favor of NoSQL options for many applications. While there were many reasons for moving in this direction some of the main forces for doing so were:

  • Performance and the ability scale in a horizontal manner
  • Remove the operational overhead associated with Oracle RDBMS. Put developers in greater control from build time to runtime. While a handful of NoSQL solutions are in place at Edmunds, MongoDB was a natural fit for many data sets that that were not highly structured.

Why MongoDB?

Edmunds first used MongoDB to build rich tooling and monitoring around its publishing system so staff could easily initiate publishing and troubleshoot. Every data set that powers Edmunds.com is published through this system which uses MongoDB as it’s a system of record for all publishing/monitoring activity that occurs day to day. According to Edmunds' Senior Director of Software Architecture Karim Qazi, "MongoDB really allowed rapid application development with its low operational overhead, and its document model was a perfect fit for this data set".

Together both Edmunds and EPAM Systems (a long-term Edmunds development partner) worked very closely to implement this initial MongoDB-based project. EPAM's own internal MongoDB development expertise was vital to the success of this project. The team leveraged MongoDB’s small operational footprint and ease of set-up to ensure a fast project ramp-up and seamless integration with Edmunds’ infrastructure. EPAM also played a role in subsequent projects, such as the ratings/reviews and ad sales management applications, where the EPAM team created the documents and collections design, and implemented the application layer.

MongoDB-enabled applications include:

  • Dealer Analytics. This mobile and wired app built on MongoDB provides dealers with real-time insight into how users are interacting with inventory on Edmunds.com.
  • Ad Sales Management. A MongoDB-based web app provides a consolidated view on inventory of Edmunds ad placements and helps ensure clients are accurately billed for ads served.
  • Ratings / Reviews. MongoDB’s document database was a good choice for replacing Edmunds’ CMS as a means of data storage for this domain as the domain itself fits very naturally into a document model.
  • User Registration. MongoDB replaced a proprietary system to help Edmunds.com manage user data.

DEVELOPER PRODUCTIVITY

MongoDB minimized set-up time and is easy to configure. "From an operations standpoint, MongoDB is easier to set up than relational databases, and the lightweight technology makes it easy to tear things down and bring them back up," said Qazi. "MongoDB works particularly well in our Chef-managed, virtualized environments."

FLEXIBILITY WITH DOCUMENT DATABASE

With MongoDB, Edmunds is not locked into a database. Developers can quickly make changes, adding indexes and new fields, and store data in its natural form with JSON. Rich querying capabilities give developers a range of advanced operators, as well as the ability to query nested content, which they wouldn’t be able to do with pure key-value stores or a relational database.

VARIETY & VELOCITY OF DATA

The MongoDB-based dealer application easily integrates with the Edmunds.com inventory system and offers dealers a variety of real-time analytics, such as: number of page views, transactions occurring and activity of dealers with similar inventory in the same geographic region. This allows dealers to price inventory more accurately and competitively.

SUPPORTS CONTINUOUS DELIVERY

MongoDB has played an important role in supporting Edmunds’ Continuous Delivery investment by allowing them to make a full set of automatic tests and reducing the time between release to production to less than 30 minutes – a task that would be significantly more difficult and expensive with a standard relational database.

Results

By eliminating development time otherwise wasted on database schema and ensuring fast set-up and deployment, MongoDB helps Edmunds to get new applications out quickly. Because of this increased developer productivity, both internally-developed projects and those built with a trusted partner like EPAM can be delivered against aggressive deadlines and lets developers focus more on the application and less on the data store configuration.

"MongoDB is an easy choice – there’s no guesswork and we know it will work," said Qazi.

Next Steps

Qazi is pleased with his experience with MongoDB and expects that Edmunds will continue to rely on MongoDB for important operational applications such as the editorial and dealer ratings and reviews and new functionality being developed into its dealer self-service toolset.

Deployment

  • OS: Linux
  • Replica Sets: Yes
  • Sharding: No
  • Application Language: Java
  • Other database technologies: Oracle Coherence, Oracle RDBMS
  • Monitoring systems: AppDynamics, Zenoss