Rafter is an educational software company that operates BookRenter.com, which was the first online textbook rental service. The company's Rails-based platform requires considerable cloud resources for application development and testing. While Rafter has always focused on helping educational institutions reduce the steep costs of managing textbook inventory, acquisition and storage, it needed a way to lower its own spending on public cloud infrastructure and meet developer requirements for additional testing and development.
By building a Eucalyptus cloud, Rafter realized immediate advantages over its previously Amazon Web Services (AWS)-only infrastructure. Its Eucalyptus implementation provided better automation and image management than virtualization tools such as VMware or hosted services such as Rackspace. At the same time, Eucalyptus proved much more fiscally feasible than Amazon Reserved Instances, which require considerable upfront investment. Overall, Eucalyptus empowered Rafter's engineering and IT department to reign-in variable AWS costs and benefit from a more predictable and affordable configuration. In the process, Rafter also gained the ability to run Eucalyptus on newer, more powerful hardware, boosting developer productivity and facilitating a more efficient and cost- effective environment for testing and development.
Eucalyptus has transformed our business and saved us 100's of thousands of dollars. We plan to continue to expand our Eucalyptus use, both in our dev/test cloud and eventually in our production datacenters.Chris Williams
The Preface: A Closer Look At Rafter Pre-Eucalyptus
Prior to building its own Eucalyptus private and hybrid cloud, Rafter developers depended exclusively on AWS, heavily utilizing infrastructure-as-a-service from EC2 and persistent disk storage from Elastic Block Storage (EBS). Under the AWS setup, any given developer could be using more than one instance at a given time; with a number of shared instances such as demo servers, integration servers for test, etc. Overall, at any given time, Rafter is running 60–70 instances with another 30 to 40 'sleeping.' Rafter's developers utilized cloud resources to request staging instances for creating and testing applications, and these servers were provisioned automatically. Once an instance was initiated, Chef bootstrapped it and configured the system, deploying applications and attaching recent copies of their production databases—the process was fully automated, which meant little to no control over resource allocation and costs.
"We are continually rolling out new product enhancements where we are constantly creating new services requiring provisioning of resources on the fly," said Chris Williams, Co-founder at Rafter. "Before Eucalyptus, we were on track to spend upwards of $20,000 per month for our public cloud resources; and our usage was only growing—we needed a new solution."
Ultimately, lowering expenses was the key driver behind Rafter's decision to migrate away from AWS-only infrastructure and build a Eucalyptus private and hybrid cloud. Moving to Eucalyptus also gave Rafter a way to maintain maximum flexibility as its IT needs evolved.
The Next Chapter In Rafter's Path Toprivate And Hybrid Cloud
Rafter's Datacenter IT and DevOps teams are responsible for managing the company's Eucalyptus implementation. DevOps maintains most of the cloud-related aspects and Datacenter IT is tasked with overseeing hardware and network provisioning. The teams work together when upgrading Rafter's cloud infrastructure.
Rafter integrated Eucalyptus as a key part of its development and testing environment. In particular, Eucalyptus:
- Empowered software engineers to easily provision their own instances, reducing the IT department’s burden
- Easily integrated with existing EC2-based code and dev/test infrastructure, due to Eucalyptus’ AWS API compatibility
- Allowed for easy capacity expansion as the private cloud demand continues to grow
- Multiplied engineering productivity by using the latest hardware available, at a fraction of the cost to similar public cloud options
- Greatly reduced costs, while still making it easy to leverage hybrid capabilities and scale to the public cloud when needed
Since Eucalyptus provides easy management and elastic growth features, we may soon go beyond application development and testing and start using Eucalyptus for production applications as we transition to a cloud-based data center setup.Chris Williams
To these ends, Eucalyptus featured the AWS compatibility, flexibility and advanced features necessary to improve Rafter's development and test environment. "We relied heavily on EBS for 500GB SQL database volumes and persistent Linux boot volumes, making it crucial for us to have a solution that worked as efficiently as it did with AWS," said Williams. "Eucalyptus provides EBS features, as well as easy image management and scalable storage support, with support for both SAN-based storage and commodity storage hardware that we need."
Currently, Rafter uses Eucalyptus primarily for staging new features and testing updates in its web applications and web services. Although its software engineers develop the applications locally on Apple OS X laptops, all web applications and services run on Linux servers in production. The dev/test cloud provides Rafter engineers with a sand-boxed environment identical to their production systems in which they can build out new features and identify software bugs so they can be fixed before going into production. Eucalyptus also gives Rafter the ability to provide on-demand instances for running large suites of automated tests.
Under Rafter's Eucalyptus setup, users can access resources as needed through a custom-designed "Staging Server Portal," a company-internal web application from which developers can select the applications that they want to deploy and choose from a list of recent production database snapshots. After selections are made, the portal boots a new server instance on Eucalyptus, and Chef automatically deploys the applications, configures the instance, creates DNS aliases, and notifies users when the new server is ready to use. Eucalyptus' AWS API compatibility allows engineers to choose between AWS and Eucalyptus from the same dashboard, providing massive cost savings while still allowing them to use the public cloud when desired.
More specifically, Eucalyptus works with popular AWS tools such as Chef's Knife and EC2 libraries such as Ruby's Fog, RightAWS gems and Python's Boto, making it easy to migrate applications from the public cloud without rewriting or duplicating code. Rafter's DevOps team can simply reuse existing scripts regardless of workload destination.
"Eucalyptus' deep AWS API compatibility gives us the functionality of AWS in house and on our own hardware allowing us to leverage the two in a hybrid scenario," continued Williams. "Tasks that are costly to perform on AWS can now be easily migrated to Eucalyptus saving us money and providing us with a deep level of control and reliability."
The Happy Ending: Rafter Gains Cost Control And Agility
By using Eucalyptus in conjunction with AWS, Rafter realized many operational and financial benefits. The private and hybrid solution lowered costs and allowed Rafter to use more powerful hardware than currently available or affordable on a public cloud, while still having the option to leverage AWS's considerable capacity and elasticity for specific workloads.
Eucalyptus doubled Rafter's cloud capacity, increased engineering productivity and generated substantial cost savings. It has twice as many instances on Eucalyptus as it did under the original AWS setup, with minimal monthly operating expenses. At the same time, Rafter's integration of Eucalyptus increased its flexibility with cloud vendors, preventing it from being too dependent on any single service.
On the cost side, Rafter has been able to better control the expenses of Amazon Reserved Instances, on-demand instances and EBS storage/snapshots. Eucalyptus has replaced the high variable costs of AWS with much lower fixed costs. Rafter's developers are now less concerned about the costs of ramping up application development and staging, and they have benefited from higher cloud usage per dollar spent. They can now devote more time to developing and improving their software.
Rafter provides a cloud-based platform to help colleges and universities make educational content more affordable, effective, and accessible. The company is revolutionizing the way students and schools find, source, and manage course materials – the second largest educational cost behind tuition – with more than 300 colleges and universities already running on Rafter and saving students more than $300 million in cash and financial aid. By delivering superior service to students and educators, schools on Rafter are increasing graduation rates, differentiating their offerings, and elevating their overall quality of education. Rafter also operates BookRenter.com, a destination site for students to rent textbooks at up to 80 percent off the retail price. Rafter is a venture-backed, privately held company headquartered in Silicon Valley, California.