Quick deployment of a specialized website or application has always drawn developers to Platform as a Service (PaaS)...
After taking a last-minute assignment from the NBA and Turner Digital Sports to build a social media application for the 2011 All-Star Weekend, MaxMedia turned to Engine Yard after evaluating four different PaaS offerings. The Atlanta-based company had just 17 days to design, build and deploy the project.
The idea was simple -- set up a social media aggregator so fans could see what was being said about the event through an attractive dashboard with some analytics. Initially to be done through Twitter, Turner Sports had to shift gears at the last moment after having problems working with the service. The company decided to follow through using Facebook instead and approached MaxMedia with the problem and a short deadline.
“We had a lot of different moving parts,” said James Wright, MaxMedia’s director of technology. “To get it done we had to divide and conquer with a lot of different development teams that were geographically separated [throughout Atlanta].”
Turner Sports didn’t expect anyone could pull off the project given the short turnaround time, giving it little promotion and taking a wait-and-see approach. But Wright’s team managed to put together an architecture for the application in just a few days while working long hours, which took its toll. The DevOps department was overwhelmed by the rapid design.
“We wanted to get everybody focused on writing code as opposed to server administration and scalability testing,” Wright said.
It was at that point they began looking into PaaS providers Rails Machine, Rightscale, Heroku and Engine Yard.
Wright decided they needed to outsource the front end of the website, about 20% of the DevOps work, to a PaaS provider. “When it came to that kind of timeframe and some of the questions we had about scalability, it made sense to go with someone who had that expertise.”
MaxMedia was already using Heroku for some of its background processes, but Wright said the company was unable to get in touch with its staff on a short deadline. MaxMedia couldn’t work with Rails Machine’s stack, and the company was not interested in configuring it to fit Wright’s needs. It was the same problem with RightScale, and there were additional concerns about the load MaxMedia’s application would bring considering it would only live for three days during the All-Star event.
Of the four they reached out to, Engine Yard was the only provider MaxMedia believed it could work with. Engine Yard used the Ruby on Rails (RoR) programming language, could handle the deployment workflow and was willing to tailor its platform to MaxMedia’s needs.
“They were super responsive, got on the phone with us right away and worked long hours to help us,” Wright said. “Overall, [Engine Yard’s] openness to configurability and our ability to define what our stack was … that’s really where we seemed to butt heads with Rails Machine and Rightscale to a certain extent.”
Running the app with Engine Yard
After bringing Engine Yard into the process, MaxMedia had about two weeks to meet its deadline. It was clear to Wright that Turner Sports was not expecting big things from his team. Turner’s IT department even told Wright that they would not have taken this job on such tight deadlines.
But, MaxMedia did finish on time, and aside from a 30-minute delay caused by a failure in one of its SQL Server installations, everything ran smoothly through the three-day period. The success of the project netted MaxMedia additional projects with Turner Sports and guaranteed future partnership between MaxMedia and Engine Yard.
“The fact that we pulled it off and were able to have 100% uptime over the weekend with no glitches, that wouldn’t have happened without Engine Yard stepping in,” Wright said.
Wright added that the only major obstacle working with Engine Yard was the start of the process. He said it was a challenge on a short deadline to find the exact people you needed to deal with, a problem he said he would not have had if he had started dealing with Engine Yard earlier on.
“Getting ramped up on the process -- who’s the point of contact, how do we integrate systems, how do we deploy there -- we didn’t have anything in place, so none of the logistics were figured out,” Wright said, adding that his team gained efficiencies as the project went on.
Wright’s advice for other developers
One of the biggest initial obstacles Wright had was his preconceived notions about what PaaS is and how it can be used.
He initially viewed PaaS providers as a service, but later grew to see them as partners that would come in and essentially run his DevOps.
“I had a lot of ignorance about what sort of services they had. I had some preconceived notions that got challenged later when I was a little bit more informed,” Wright said.
He also stressed that in an ideal world, his team would not have been on such a tight deadline and would have been able to reach out to providers earlier in the process.
“You’ve got to start with some idea of what your architecture is, how you’re going to wire everything together,” Wright said. “And determine early on and engage with whoever the PaaS is whether they can fulfill all your needs in that stack or not.”