Overstock.com may be better known for making your house cozy with rugs, lamps and the like but now they’re connecting people with the feathered, furry and scaly friends that truly make a house a home.
Pet Adoptions by Overstock is a free nation-wide public service that launched in March 2014 as a way to connect people to rescue animals. So far, it has forged over 28,000 connections between pets and potential owners who come to pets.overstock.com from a tab on the main page. The pets site is part of Overstock’s community-involvement initiative which includes the company’s other social responsibility efforts such as Worldstock Fair Trade, Main Street Revolution and Farmers Market.
The brainwave for the pet adoption project came to Overstock CEO Patrick M. Byrne while practicing yoga, and like many of the spontaneous projects that fall outside the regular running operations of the company, the IT department chose OpenStack to make it happen.
“It’s not the first time we’ve received a request for an unusual idea outside our normal workload,” says Mike Smith, principal engineer for Overstock’s website systems team. “Traditionally, IT groups such as ours would have complained about being asked to launch new services that weren’t planned and budgeted for well in advance. Today, being able to respond quickly to requests like this is expected and critical for achieving our business goals.”
So Overstock’s website systems team relies on their OpenStack-powered infrastructure to put into practice some of the best ideas that come to mind during a downward dog pose.
“One of the driving reasons we went with OpenStack is because it allows us to be more agile, so when somebody comes up with a great idea like this, especially if it’s our CEO, the IT department doesn’t become the bottleneck,” Smith added.
All of the pet-related services run on OpenStack Havana. It works a bit like a dating service for pets: specify what you’re looking for from a drop-down menu, add your zip code, desired breed, distance you’re willing to travel and the search engine generates a custom list of adoptable pets from local rescue shelters. Overstock’s Pet Adoptions can also span the country for any animal you may want – from a boa constrictor named Mr. Slithers to a gray guinea pig that goes by the name of Bruce – including some more unusual ones, like horses and alpacas. The adoption site pulls updated info from 6,000 pet shelters nationwide through a series of feeds.
If you’re looking at the 55,000 dogs listed on the site, you can narrow down choices by age, sex, size, color, or other pet characteristics, including energy level and coat health. If the expectant look of a tan-and-white puppy named Tumbleweed tugs on your heartstrings, just click on his picture for details. From there, the site can either forward any questions you may have or start the adoption process by putting you in touch with the shelter. To date, 1.6 million people have visited the site. Overstock doesn’t have exact numbers for how many pets have been adopted through the program, but has been told by shelters that nearly 100% of those people who connect with them through the site and visit the shelter end up adopting a pet. One rescue site calls it “amazing national exposure” for adoptable pets.
CEO Byrne realized that the back-end systems that allow visitors to search through Overstock’s more than 2 million products might be able to curb the millions of pets euthanized each year. Overstock’s search functionality runs on several open source components, and that same technology was put in place for the pet search.
Smith says, “In order to get the infrastructure up quickly, we spun up OpenStack instances to run both the pet site and its back-end search. All of those search results are queried and returned from systems running on OpenStack.”
Using virtualization with OpenStack, means Overstock can launch projects like this quickly, see the response, scale up or down, and convert to a traditional hardware solution if necessary.
This year, Overstock also launched its Spanish-language search and its Supplier Oasis program, which offers multichannel fulfillment services, on OpenStack infrastructure. While the bulk of their production mode for their primary site is still in traditional hardware-based services, in 2015 the IT department has plans to move more of that over to their private cloud. While on-the-fly projects are made easier with OpenStack, Overstock uses it even more extensively for its development and testing environments. Almost all of Overstock’s dev and test systems sit on OpenStack infrastructure.
Behind the website that brought in $353 million in Q3 2014, there are over 400 different Java applications that talk to each other for inventory management, search, account creation, checkout, partner relationships and recommendations, to name a few.
“We have about 350 developers and testers, and their teams all want their own dev and test environments,” Smith says. “Traditionally, managing the lifecycle of those environments has been a lengthy, difficult process.”
Enter “EnvirOmatic,” a home-grown orchestration layer built around the OpenStack API and the APIs of other systems used by Overstock. When a development team is building something that needs eight of the 400 apps in an environment, the IT department can meet the request in less time than it takes to stand in line for a latte.
“The team is able to spin up their own environment with a few clicks in EnvirOmatic. Within 15 minutes, everything has been stood up, it’s all been validated, passed health checks, turned over to them and they’re able to get to work,” Smith says.
“Previously, requests for a full end-to-end environment have taken up to three months to fulfill, and once they had them, development teams would often cling to them even if they became ‘ragged and out of date’ because they knew it would take forever to get a new one," Smith adds.
Now, Overstock stands these environments up with an expiration date of 30 or 90 days. When the development project is done, the environment and everything related to it – the network, the DNS, the databases – disappears and a fresh one can be requested to take its place.
“For us that’s huge,” Smith says. “It means we can support many dev teams but spend less time building and troubleshooting and more time innovating.”
Cloud computing at Overstock has had hurdles, Smith admits. “Our IT road map is to become burstable, cloudy, and more distributed, but we still run a lot of legacy workloads.
“Our 400+ apps aren’t exactly written for the cloud – many require connections back to Oracle databases and require very low latency connections,” Smith says. “As an operations team though, we took the long view: we knew where we wanted to go and knew it would take time for our development team to refactor our applications for a cloud-based world.”
Real-life pets aren’t the only animals top-of-mind at Overstock as it transitions over to the cloud. The company has found itself in the middle of the “pets” vs. “cattle” analogy familiar to many cloud operators. For legacy workloads and traditional server management, every server is like a “pet.” Every server has a name. It is special. If it gets sick it is nursed back to health – the same way a family would rally around a pet.
“In a true cloud environment”, Smith says, “servers are treated much more like cattle. When one gets sick, you shoot it, bring up a new one to take its place and life goes on.”
Making OpenStack safe for these types of “pets” still presents some challenges.
“For example, resizing an OpenStack instance is not a quick operation, even if you are just changing the amount of RAM or number of CPUs, because you have to recopy the entire disk.” Smith says. “Resizing is kind of a foreign concept to a pure cloud environment, because you would just kill it and create a new one of a different size, but to some extent we still operate in an ‘every server is important’ mentality. Operations like resizing are available in OpenStack, but not really part of what OpenStack’s original goals are, and aren’t fully optimized for the enterprise yet.”
An enterprise-minded technical team has formed in the community to address those types of requirements.
While a pet adoption program may seem strange for an online retailer, the Salt Lake City, Utah-based company with 1,500 employees is animal-friendly at heart, Smith says, adding that Overstock has a history of actively promoting local shelters and rescues, including events like Bark in the Park and Strut your Mutt. Since charity begins at home, Overstock held an internal contest to share successful adoption stories for the pet site.
"Adopting Max was one of the best decisions I’ve ever made," Shellie Robinson, a systems integration developer at Overstock, says of taking in the 5-year-old-beagle terrier mix. "Hopefully more people will learn that adopting is one of the best ways to find your new best friend."