"Our infrastructure, which is based around a .NET app with some GNU/Linux mixed in, was growing very rapidly as we prepared to transition to our own in-house built platform. Chef was also at the time making great progress in supporting the Windows platform. Chef allowed us to dive right in to building tools for full cloud integration and automated configurations that greatly reduces hands-on work and ensures repeatability and consistency across IaaS platforms." Joey O'Neill, Senior Systems Administrator, Cheezburger
Cheezburger leverages multiple IaaS cloud providers in combination with physical servers hosted in Seattle, WA, to power its wide range of popular humor websites. Scaling and managing infrastructure across multiple IaaS providers in a primarily Windows environment presented a number of challenges:
Cheezburger deployed Chef across the company's entire hybrid infrastructure - which includes multiple IaaS cloud resources along with a small number of physical servers - to automate resource configuration and provisioning in its primarily Windows environment.
Millions of people visit Cheezburger's family of humor sites every day, meaning Cheezburger's infrastructure must be able to scale in near real-time to keep up with surges in traffic. Cheezburger's IT team knew their small cluster of physical resources would not be able to keep pace with user demand, so they turned to a hybrid cloud strategy, leveraging the economies of scale and redundancy of multiple IaaS providers to create a highly scalable, resilient cloud infrastructure. By combining cloud resources from multiple IaaS providers to power their websites, while using physical servers for memory, Cheezburger has minimized infrastructure costs, while ensuring maximum flexibility in managing site traffic.
"As our traffic grows or we make improvements in the efficiency of our platform, its trivial to add or delete servers in our clusters, or even destroy a cluster or build one in a different geographic location," said Joey O'Neill, Senior System Administrator, Cheezburger. "Chef allows us to be agile and quickly respond to changes without worrying about configuration mistakes."
Cheezburger deployed Chef across multiple cloud deployments to manage all their IaaS instances from a single point of view, providing maximum system visibility and control. Because Chef has Knife command line plugins for the APIs of every major public cloud provider, Cheezburger has the freedom to use multiple cloud platforms and move their application between these clouds as needed. By customizing the Chef Community .NET cookbook to their unique specifications, Cheezburger created a code-based blueprint for managing infrastructure, automating configuration management and provisioning for all its compute resources. Using Chef, Cheezburger can deploy infrastructure as code, providing a model for reuse that significantly reduces the time to deploying new cloud servers and ensures the highest levels of system consistency and flexibility.
"Managing our cloud resources via code doesn’t only save us a significant amount of time, it also ensures every operation is executed exactly as it's supposed to be, every time," O'Neill added. "Chef gives us a blueprint for new cloud clusters that makes it easy to spin up additional capacity."
Cheezeburger has developed a cookbook for managing Windows and GNU/Linux firewalls called Chz-Firewall. The cookbook enables users to identically configure firewalls across different operating systems by putting arrays of ports to open, or IPs to whitelist/blacklist, into attributes.
Chef provides Cheezburger with a comprehensive solution for configuring its infrastructure, including single command cluster deployments of a load balancer, cache server, and HTTP servers, as well as self-aware configuration between Chef and system load balancers. By automating configuration across its hybrid infrastructure, Cheezburger can ensure system consistency with minimal risk of error.
"Chef gives us the foundation to scale our infrastructure far into the future. Its code repository lets us automate fixes or new server configurations in near real-time, making life a lot easier," O'Neill concluded.