Lose It! Delivers a Scalable and Compelling Weight Loss Experience
Develop a Java-based web application for weight loss and weight management that is capable of scaling to meet unknown consumer demand
Use RUN@cloud from CloudBees to streamline deployment, support tens of thousands of transactions per minute and rapidly scale up or down as needed
"Off-loading the technical back-end work to CloudBees enabled our team to direct all their efforts towards one objective--creating a compelling, innovative user experience that will help people lose weight."
-- Charles Teague, FitNow
Watch what you eat. It's a core tenet of successful weight loss and weight management programs. Here's another: there is power in numbers. The Lose It! web application, iPhone app and Android app have enabled users to take advantage of both of these principles to lose more than 10 million pounds collectively, with the average user dropping more than 12 pounds. "Tracking what you eat is a validated way to lose weight, but adding a social component--peer support--improves motivation and the efficacy of tracking," explains Charles Teague, CEO of FitNow, the start-up company that developed Lose It! "When people form small support groups, they are more apt to stick with a diet program and succeed--and Lose It! helps them do just that."
FitNow decided early on to capitalize on their expertise and organizational knowledge by developing and delivering a great app to help people lose weight and eat healthier. For a five-person start-up, allocating resources and incurring overhead to manage day-to-day application infrastructure needs was simply not viewed as a priority. Instead the company wanted to distinguish itself in a crowded software application market by offering a high quality app. "Our operations strategy is to leverage third parties for infrastructure and associated maintenance," says Teague. "Our business strategy is to provide a great consumer experience that differentiates us, and that's where we want to focus our resources. We do not want to invest in infrastructure--we just want it to be there."
FitNow executes its operations and business strategies for Lose It! with the CloudBees RUN@cloud Platform as a Service (PaaS) solution. "Thanks to CloudBees, we have managed to avoid hiring a full-time systems administrator to support what would be equivalent to 25 in-house servers," notes Teague. "We have lower infrastructure maintenance costs and higher productivity because we have access to the computing resources we need, when we need them."
Challenge: Preparing for Unknown Demand
When FitNow was ready to release the web version of Lose It! with social networking features, the company had no way of accurately predicting user demand, and thus no concrete way of planning how many servers they would need to meet that demand. "We could not predict how successful the application would be, so we didn't know if we would need three servers or 53 on the day it launched," says Teague. Infrastructure planning was further hampered by the seasonal nature of interest in weight loss programs, which typically subsides during the holidays but increases in January and at the beginning of summer. Overestimating demand and purchasing servers to provide the expected capacity would be a costly mistake, but so too would underestimating demand and not having enough capacity. It was clear that Lose It! would benefit from a cloud deployment that would enable rapid scaling to match demand.
FitNow had made the decision to develop both the front end and the back end of the Lose It! application in Java. "We targeted Java because of its maturity, performance and overall robustness. We also wanted to use Google Web Toolkit on the front end - it is a good tool for creating really great client web experiences. With Java, we were also confident that the back end would live up to our performance, stability and code quality expectations," explains Teague. The developers needed a solution that would enable them to make the most of Java, the cloud and PaaS deployment. This, in turn, would let Lose It! focus on delivering a great application, instead of dealing with infrastructure and deployment headaches.
Teague and his team considered a number of potential solutions, but found that many lacked the automation, transparency and flexibility they wanted--including the ability to custom tune application servers and other aspects of the deployment environment as needed.
A Flexible and Scalable Solution
FitNow deployed Lose It! to the cloud using RUN@cloud. All of the servers for the application, including application servers, replicated database servers and cache servers are running on RUN@cloud.
The CloudBees infrastructure for Lose It! handles thousands of writes per minute and tens of thousands of reads per minute. "Lose It! is a high volume site. We're seeing volumes as high as 25,000 transactions per minute and RUN@cloud is handling it all 24/7," says Teague.
When the development team wants to share a test version of the Lose It! website, they can instantly spin up a new server in the cloud. The ability to spin servers up and down as needed in a variety of preproduction states streamlines the development and testing process.
Deployment has been streamlined as well. "We deploy once a week on average, though with major releases, it may be multiple times per day. We can do this without worry because it costs next to nothing with RUN@cloud," says Teague.
For FitNow, RUN@cloud has provided a vital layer between Lose It! and Amazon's Infrastructure as a Service (IaaS) offerings. Teague notes that CloudBees takes care of details that few organizations have the time or experience to delve into. "For example, I probably wouldn't have had block stores in different isolation zones like CloudBees automatically did for us, thinking that there would never be a block store problem. When Amazon went down last year, they had a major problem with one isolation zone on the Amazon block store. Sites like ours which were across multiple zones - with data replicated, were able to restore service quickly and without any data loss," he explains.
FitNow gets real-time visibility into Lose It! application performance with the New Relic Software as a Service (SaaS) solution. A part of the CloudBees Ecosystem, the New Relic service enables FitNow to track server performance and analytics, as well as analyze requests to see how the front end, application and network are contributing to response times. FitNow can use this information to tune application servers in the cloud when necessary.
- Deployment in minutes, not weeks. "When deployment gets as easy as it does with CloudBees, it changes the way you think about development," says Teague. "At other companies I've worked for, deployment was a two-week process. Fixing any bug, even if it took a minute to write code, took two weeks, so you had to be extremely careful on the production server. With RUN@cloud that same process now takes us five minutes. We can address bugs and performance bottlenecks in minutes, which enables us to continuously improve the quality of Lose It!"
- Reliable, high-volume transactions with no administration overhead. "Our application on RUN@cloud is handling more than a million simultaneous users and tens of thousands of transactions per minute--all with no systems administrators. That alone is saving us more than $100,000 per year," says Teague. "We are seeing three nines (99.9%) for up-time on the equivalent of 25 dedicated servers, with a hardware IT budget of zero."
- Increased focus on core differentiators. "To deliver the Lose It! web application we needed scalability. RUN@cloud was a great fit, because it gave us a flexible, scalable solution with low entry cost," says Teague. "Off-loading the technical back-end work to CloudBees enabled our team to direct all their efforts towards one objective--creating a compelling, innovative user experience that will help people lose weight."