Cloudinary Blog

How Mediavine handled image load in a 50M+ page-views Rails site

 
We are often asked to share our customer stories with the rest of the Cloudinary community. Whether it's for learning about others experiences managing images with Cloudinary, or just to reaffirm Cloudinary's solution - we love to hear your stories and we're happy to share them.
 
Today, we wanted to introduce you to Mediavine Inc., one of the largest online entertainment networks on the web, and how they utilized Cloudinary to solve their image management needs.
 
 

The customer

Mediavine, Inc. owns and operates some of the web's largest entertainment and lifestyle properties. Mediavine's network of sites include:

       TV Fanatic

     
        Movie Fanatic
         
       Food Fanatic
         

 
 
 
 
 
 
 
 
 
Combined, these websites garner a traffic of nearly 50 million page views a month. 
As modern media outlets go, Mediavine's websites are incredibly image rich. 
 

The challenge

Mediavine's sites run on a custom Ruby on Rails CMS hosted on Heroku. Like many other Rails sites, they started off using the Carrierwave and mini_magick gems to handle their image needs. 
 
However, as their page views and image processing needs grew, they quickly ran into performance problems
 
"No matter how much we optimized image uploads - including moving all version processing to background workers - uploading several high resolution files was just not going to be possible through the dyno manifold." Says Eric Hochberger, founder and head of development at Mediavine. "We knew we needed to go directly to our image store, S3. We looked into rolling out our own solutions, such as carrierwave_direct, but they were far too complex after way too many hours of struggling. And they would still require additional image processing!"
 
 
 

The solution

We asked Eric if he could share his experience with Cloudinary: 
 
"With Cloudinary we got direct upload to the cloud working within minutes. But it didn't just stop there. Cloudinary solved our timeout issue, while greatly speeding up our uploading process, thanks to its easy-to-implement javascript upload." Eric said.
 
"Cloudinary did more than that though. It helped us solve problems we had previously never thought were fixable," Eric added. "Scaling animated gifs worked perfectly without any of our previous imagemagick glitches. As for face detection we thought only the geniuses at Facebook could possess?  Yeah. We have it now. Full ITPC data?  Just try getting that out of mini_magick. Now we can pull locations out of images."
 
What about the integration with Cloudinary? "This all came in ridiculously easy fashion. Really, when it comes to any headaches with dealing with images, Cloudinary has solved them all. Its URLs even solve CDN cache busting. Working with Cloudinary's gem and carrierwave implementation has been a programmer's dream."
 

Recommendation

"It's rare when you can outsource a problem and save money but somehow Cloudinary managed to do that." says Eric. "We were able to knock our direct image hosting costs in half from S3/CloudFront, thanks to Cloudinary's generous pricing and optimization. Even better, we were able to significantly reduce Heroku usage, courtesy of seriously reducing worker dynos with outsourcing thumbnail and version generation. Talk about a win-win."
 
"Even if you have a 'working' solution," continues Eric, "we promise Cloudinary will do it better. Don't worry if you have to migrate from an existing system. They even come with code to help you do that. We had our hundreds of thousands of images migrated in less than an hour. And thanks to the fact they support carrierwave, we had minimal code changes."
 
 

Final words

We were very impressed by just how fast Mediavine managed to wrap their heads around the Cloudinary service, migrate their images and complete the full integration. 
 
We are extremely excited to have Mediavine using Cloudinary, and wanted to thank Eric for taking the time and sharing his experience.
 
Cloudinary users - let us know if you want to share your own unique experience using Cloudinary. We'd love to feature your services here and we're sure that all of Cloudinary's customers will find your insights helpful.
 
Mediavine case study

Recent Blog Posts

Compressing a single-color image in various formats

In part one (One pixel is worth three thousand words) of this turned-to-be-two-part blog post, I discussed one-pixel images and how well different image formats “compress” these images. I was surprised how much there is to be said about the matter. This was supposed to be a short blog post, describing one-pixel images and how they compress, and instead it became a glorious monster (and also a two part blog post…).

Read more
How various image formats compress one-pixel images

A couple of months ago while taking a break from implementing cool new features like q_auto and g_auto, I was joking in our team chat about how well various image formats “compress” one-pixel images. In response, Orly — who runs the blog — asked me if I’d write a post about single-pixel images. I said: "Sure, why not. But it will be a very short blog post. After all, there’s not much you can say about a single pixel."

Read more
New interactive web development demo with code samples
Developing a great website and maintaining it can be a challenging and time-consuming task, even for the most talented developer. You need to meet graphic design requirements for any device according to the latest design trends, and constantly find ways to optimize your website performance, for any browser. 
We can save you a lot of time and effort. Cloudinary takes care of the entire image management pipeline: image upload, a rich set of manipulation and optimization capabilities, cloud storage, administration and super-fast CDN delivery. 
Read more