"Automation is absolutely critical to our success and Chef has been instrumental in managing our platform. It ensures consistency throughout our infrastructure and makes spinning up new servers a snap." Ben Poweski, Architect, Getaroom
The variety of front-end and back-end applications, server configurations, and environments within Getaroom's infrastructure, not to mention huge user demand spikes during peak periods, present a variety of challenges:
Getaroom's engineering team deployed Chef to automate configuration management for all of its Amazon EC2 infrastructure resources and integrated Chef with the Jenkins Continuous Integration (CI) application to configure all application updates for production.
As Getaroom's business expanded, its compute needs outgrew the PaaS it was using, necessitating a move to Amazon EC2. Leveraging Chef and its Knife EC2 command-line plug-in, as well Chef Community cookbooks for Amazon EBS volume management, the company moved its entire infrastructure to Amazon, achieving a mean time to new server capacity of less than 30 minutes.
"Amazon EC2 gives us the flexibility we need to keep up with both rapid growth and surges in demand during peak periods," said Ben Poweski, Architect, Getaroom. "Executing the move to Amazon manually would have been nearly impossible, but with Chef, it went very smoothly. Managing our infrastructure like application software has empowered our engineers to deliver end-to-end solutions without depending on separate organizations to deliver dependent services."
Getaroom employs a sophisticated website infrastructure to deliver the best hotel rates to its users. In addition to the front-end production site, Getaroom also maintains a number of development environments for third party vendors to test application integration with Getaroom's service. Internally, Getaroom runs an automated test suite of regressive software tests and a range of development 'sandboxes' for its developers to freely innovate new application updates. With so many different, compute-intensive environments integrating with its production site, Getaroom needed an automation tool that could ensure consistency across all its systems without significant manual management.
"Basically, we have a whole lot going on under the covers and a small team to make it work," Morgan Nelson, Senior Engineer at Getaroom continued. "There's simply no way to keep an infrastructure like ours running smoothly without automation. Chef helps us make it all happen day in and day out, from repeatable and consistent configuration to seamless application updates, all with a few simple lines of code."
Using the Chef Community cookbook for Ruby Version Management (RVM), Getaroom's engineering team can easily manage the various versions of Ruby running in its different environments, significantly reducing system errors. Getaroom employs large groups of IT operations and development personnel, making user authentication important to both security and system consistency. Leveraging Chef as a data repository for user information, Getaroom can easily manage user account access across its entire infrastructure. Meanwhile, to continuously integrate new application updates into production, Getaroom integrated Chef with Jenkins CI, with Chef delivering updated configurations to the Jenkins server for deployment into production.
By automating the integration of both its environments and applications, Getaroom has created a highly consistent infrastructure with maximum repeatability and minimal risk.
"Using Chef with EC2 lets us treat our infrastructure like software, which is really a game-changing concept," Chris Griego, Senior Developer, Getaroom, concluded. "We can configure once and replicate as many times as needed, without worrying about consistency. With Chef we’ve been able to automate our infrastructure from bottom to top, from Jenkins to MongoDB to MySQL to HaProxy."