Do.com Gets More Done Thanks to Heroku
Do.com is a social productivity app that helps teams collaborate to get more done. The team at Do had big plans for new features, but noticed they were spending a disproportionate amount of time managing servers on Amazon instead of building their app. In the spirit of productivity, Do’s Director of Engineering Gopal Patel decided to port most of the application to Heroku to take advantage of the platform’s scaling capabilities, extensive Add-on ecosystem, and advanced features that make agile web development simple.
A New Work Flow Boosts Productivity
“We switched to a much more distributed workflow,” says Patel. The team integrated Git, a popular version control software, and took advantage of Heroku’s ability to easily create staging environments for effective collaboration. “Whenever we wanted to set up a staging environment in the past on EC2, we’d have to bring up servers, run all of our deployment scripts, and handle a lot of unnecessary moving parts. Now setting up a staging environment takes less than ten minutes. It’s an easy way for any developer to build out a new feature and then pass around the URL to the team for feedback.”
The facilitated collaboration paid off. Despite having new team members, a new infrastructure, a new code base in a new language, and an entirely new mobile app, the Do team shipped the best version of their social productivity application to date in December 2011. “I’m really proud of the product our team launched”, says Patel. “Heroku made it simple to focus entirely on the application we wanted to build.”
Building Scalable Architecture from Day One with the Heroku Process Model
The team at Do planned a big launch for their new version, and the move paid off. The app skyrocketed in popularity within just one month. The Heroku Process Model ensured the Do team had a rock solid and performant architecture no matter how many users signed up.
“The Heroku way is different and took some getting used to. Ultimately though, it made us think about building our architecture in a scalable way from day one”, says Patel. The Heroku Process Model allowed Patel and his team to easily break up Do’s features into five independently running processes. This ensures that no single process can consume all of the application’s resources and therefore slow down performance for users. “Setting it up this way makes it a lot easier to scale horizontally when we get a higher amount of load”, says Patel. “During our launch, Heroku scaled flawlessly, and still manages 7,000 requests per minute for us each day.”
Patel’s team migrated their database from Amazon RDS to Heroku Postgres. “Heroku Postgres is such an awesome service”, says Patel. “It’s been extremely reliable, fast, and completely maintenance free.”
A New Feature Every Week for Users
Without the hassles of DevOps or database maintenance, the Do team can consistently focus on pushing out features their customers need. They push changes to the app about once a day and have released a new feature every week consistently since their launch. “We gather metrics on each new feature and constantly analyze how people are using the app. Logs and metrics help inform our design process — they tell us what we should be working on,” says Patel.
No Looking Back to Days of Managing Infrastructure
Do continuously grows their team as well as the feature set their small business users need. They also plan to add an Android app to their list of tools in the near future. With so much in flux, they are relieved to not have to worry about servers.
“Before, we had to manage servers and monitor them throughout the night. Heroku takes care of all of that for us now."