Movellas Writes Its Own Success Story in the Cloud
Rapidly develop new features for an online story sharing community and deploy them to the cloud
Use the standards-based CloudBees Platform to empower developers with Jenkins CI, streamline instance provisioning, provide easy configuration capabilities and tap an array of Partner Ecosystem services
"Because CloudBees is focused on supporting industry standards, our developers are not forced to change our applications to deploy them to the cloud. That, combined with support for Jenkins and easy configuration, makes it possible for us to deliver updates to our community quickly."
-- Magnus Kvalheim, Movellas
Based in London and Copenhagen, Movellas is an online story sharing community that enables its users to write and publish their own stories as well as read and provide feedback on their fellow users' stories. With more than 150,000 registered users and about 1.5 million visitors who access stories via the web and mobile apps, the Movellas community is active and engaged in virtually every genre − from fan fiction, fantasy and romance to poetry, humor and suspense.
One key to the success of Movellas has been the company's commitment to develop and deploy frequent, incremental improvements to its offerings. New cloud-based applications are being developed using the CloudBees Platform as a Service (PaaS) solution. "Our community is socially driven, and we are constantly getting new ideas on how to make it better and increase traffic," says Magnus Kvalheim, CTO and co-creator of Movellas. "For us, the CloudBees platform shortens the path from idea to demo to production. As we expand, we can add developers instead of system administrators because we are not tied down with infrastructure maintenance. We are more productive because the CloudBees platform is optimized for developers and it empowers developers."
Challenge: Lower Infrastructure Management Overhead While Improving Scalability
Many of the Java applications that power the Movellas community are deployed via a local hosting company. While this arrangement helps Movellas avoid the cost of procuring and setting up its own physical servers, it is not ideal for new development initiatives. The Movellas development team is still responsible for managing the infrastructure themselves, which includes installing and configuring the required software and middleware. In addition, the team has been slowed by its dependence on the hosting provider for new instances. "Each time a developer needs to provision a new instance, we can't quickly do so," says Kvalheim.
To minimize infrastructure administration overhead and maximize developer productivity, Movellas wanted to move to a PaaS solution for development and deployment of new features, and ultimately for its core functionality as well. The team evaluated several PaaS alternatives, looking for one that met their needs. As long-time users of Jenkins for Continuous Integration (CI), they wanted a solution with strong support for both Jenkins and Java development. Equally important, they wanted a standards-based platform that required no modification to their existing code base.
A Solution for Empowering Developers to Deliver Rapid Incremental Updates
After trying multiple PaaS offerings, Movellas selected the CloudBees Platform for its ease of configuration, its Partner Ecosystem and its support for Jenkins and rapid development.
"The alternatives we evaluated were either not ready for production or difficult to configure. Others required extensive code modifications just to run our applications," says Kvalheim. "We found CloudBees to be the best of breed."
Movellas began using DEV@cloud for new development projects, including one that lets users produce PDF files from Movellas stories. With Jenkins in the cloud, builds integrate libraries from private repositories and Java source from GitHub.
Among the first applications the team deployed with RUN@cloud was an image service, which processes and serves profile pictures, cover art and other images in real time. The images are stored on Amazon S3 and accessed via the CloudFront Content Delivery Network (CDN), with the CloudBees platform acting as the origin server. "One thing that we value a lot is that CloudBees is an excellent PaaS on AWS," says Kvalheim. "We can thus easily tap into AWS services/offerings as well as the CloudBees Partner Ecosystem services. We can also efficiently mix EC2 instances with CloudBees apps if we wanted - and that's not an unlikely scenario. With CloudBees, it is easy for us to extend the platform with other services and there is no lock-in."
The team uses New Relic, an application performance management (APM) service from the CloudBees Partner Ecosystem, to set up threshold alerts and monitor availability of its applications on the Amazon Web Services (AWS) infrastructure platform. The team can rapidly scale up in response to a New Relic alert, and scale back down when the additional capacity is no longer needed.
Movellas developers also use two other Ecosystem services: Papertrail, to search log histories while troubleshooting, and MongoHQ, to manage their MongoDB instance for metrics data.
Now, instead of having to wait for additional resources when they are needed, Movellas developers provision new instances themselves in a few clicks, including private instances for sandboxing. With the CloudBees platform they can also rapidly roll back to previous versions of their applications in production, if needed.
Movellas plans to continue the application migration to the CloudBees Platform and further hone its continuous delivery process.
- Frequent, incremental updates enabled. "When we decided to add support for exporting stories as downloadable PDF files, we made the code changes in an afternoon, deployed it to CloudBees and had it running the same day with no interruption to our other services," says Kvalheim. "As a social site, fast updates like that are vital to us."
- Instance provisioning and configuration reduced from hour to minutes. "Our developers used to spend three to five hours setting up and configuring a new instance," recalls Kvalheim. "With the CloudBees Platform, a developer can have an idea, build a prototype, quickly fire up an instance on AWS to try it out and shut it down when it's no longer needed--all without breaking a sweat."
- Initial deployment completed in hours. "We didn't have to make any changes to our applications to run them on the CloudBees Platform," says Kvalheim. "We downloaded the CloudBees SDK in the morning and we had deployed our first application by noon."