Envolve: How a YC Startup Runs its Cloud App - A Case Study

October 17, 2011 - by alexsalkever

Envolve is a graduate of the YCombinator program and is a fast growing provider of API driven chat-as-a-service.

Envolve operates a Software-as-a-Service customizable chat solution that makes adding rich chat functionality to a website as simple as adding a few lines of JavaScript to a website. The company provides chat services to over 30,000 web properties, many of which serve popular musicians and games that have communities of millions of fans.

Conversation is the root of engagement and people online love to chat, particularly on topics they feel passionate about. Before, adding chat functionality to a website entailed writing code and maintaining a complex messaging infrastructure – both costly endeavors. Envolve saw this problem as an opportunity for a powerful, scalable cloud-based solution that lets website owners add chat to their sites by simply typing a few lines of JavaScript into an HTML template. Today Envolve powers chat on over 30,000 Websites, including sites for some of the world’s largest online games and most popular musicians.

The Challenge

Envolve’s founders knew they wanted a cloud-based infrastructure for their service, primarily to provide peace of mind and eliminate the need to maintain physical servers in remote data centers. But the cloud solution would need to meet their exacting performance and feature needs.

Instant Scalability. Many of Envolve’s customers regularly experienced massive usage spikes driven by special events such as album launches or new game releases. Chat volume regularly soared to 100x normal volumes. Envolve needed a cloud infrastructure that could quickly scale to 100 times standard capacity and just as quickly scale back down to avoid bills for unused virtual server capacity.

Speed. Cloud architectures rely on virtual servers that can be very slow due to the multiple levels of abstraction between bare metal hardware and the actual application. Chat servers that experience latency can drive away users and upset site owners. Envolve wanted a cloud environment with the same snappy response as a dedicated physical server.

100% Uptime and Reliability. When chat goes down on a website, visitors notice instantly and might move on to another site. Envolve knew that it needed a reliable cloud provider to be sure customers’ chat rooms never went dark.

Affordable Transport Costs. Envolve was processing huge volumes of HTTP requests in the form of chat room communication. To prevent ballooning cloud costs for data transport, the Envolve team knew they would need a cloud with minimal transit costs on a per request basis.

Privacy. Chat conversations are sensitive. Envolve wanted guarantees that they would remain private, and felt uneasy with the idea of exposing them in a multi-tenant cloud environment.

The Solution

After significant due diligence, Envolve deployed its core chat server architecture on a Joyent SmartMachine. Since that time – more than a year ago – Envolve traffic has grown to require SP 10 Joyent SmartMachines, including web servers and databases. Joyent provides Envolve with a host of critical benefits:

Scaling with the Push of a Button. With Joyent, Envolve found instant scalability to be simple. For smaller bumps in demand, the automated capacity bursting feature of Joyent’s SmartOS easily handled the traffic jump without an additional server instance. For larger spikes, adding new virtual servers was also quick and easy. “When a musician launches a new album, we just call up new virtual machines as we need them, with the push of a button,” says Lee. “Set up is a matter of seconds. This gives us peace of mind in knowing that we can effortlessly meet these rapid spikes in demand. We also don’t waste time setting up hardware and configuring software.”

Blazing Speed. Joyent’s SmartOS handles Envolve’s need for speedy response without any problem. “The speed and response of Joyent’s cloud is very impressive,” says Lee. “The response times I see are sometimes better than what I get on physical hardware. And the I/O performance just blows away other cloud providers.” Joyent’s SmartOS has a unique architecture that allows customers to virtualize application stacks rather than physical hardware.

10 Terabytes Free Data Transport. To deliver the best network performance to its customers, Joyent uses only new, high-quality server hardware, redundant Tier-1 Internet connectivity providers, and a 10/40 gbps fully-meshed architecture. Envolve has saved thousands of dollars each month in transport costs thanks to Joyent’s inclusion of 10 terabytes of free data transport for each virtual server.

Privacy By Design. Joyent’s privacy-by-design allows Envolve to move unencrypted chat conversations and account data back and forth between virtual servers without worrying that someone else could gain untoward access.

Reliability and Uptime. Joyent has exceeded Envolve’s expectation for reliability with a 100% track record. The company and its customers have yet to face unplanned downtime during the two years that it has used Joyent’s cloud. ““I thank my lucky stars that I am with Joyent whenever I see any of the big clouds or Platforms-as-a-Service going down. I’m very happy that I haven’t had to deal with that,” says Lee.

Local and Centralized Storage. To meet its short-term and long-term storage needs, Envolve runs a hybrid solution consisting of local storage (included free with every Joyent virtual machine) and an NFS mount with Joyent. “It’s pretty snappy and I’ve been very pleased with that set-up,” says Lee.

Envolve's Application Environment

  • 8 x 1 GB SmartMachines
  • 2 x 2 GB SmartMachines
  • Java backend services
  • Google Web Toolkit
  • MySQl
  • Apache
  • Jetty (web server for real-time data)

Sign up now for Instant Cloud Access Get Started