Phil Sant, co-founder and chief engineer at music streaming platform Omnifone, believes software developers need to take a Lego approach.
Sant heads up a team of around 90 engineers, who have developed the Omnifone music streaming platform on top of Amazon Web Services (AWS).
The platform now hosts 40 million tracks from nearly every country in the world and takes on a million new tracks every month.
Sant is a firm believer in component-based development for building applications Lego-style, and much of the Omnifone platform is componentised on AWS.
The platform comprises internal and external software services. In Sant’s experience, the biggest challenge from a software engineering point of view is maintaining a consistent service level across the internal and external services.
The first multimedia phone
Omnifone found its raison d'être following the 2005 launch of the Nokia N70, the Symbian-powered multimedia smartphone.
It was the first device that would let a user download a track in the background and navigate the user interface while another track was decrypted and played through the media player.
Building a componentised platform
Omnifone’s first foray in the Amazon cloud came about almost by accident when a streaming music deal with Sky led to a massive load being put on its IT infrastructure.
Sant says: "Our little datacentre could not handle the massive amount of PR and promotion. But our leading techies had been keeping their eyes on Amazon and within a couple of hours we moved most of the popular MP3s up to Amazon S3."
Although this was the company’s earliest experienced of Amazon, with its first global contract, Sant says the company chose to build its own datacentre rather than deploy in the cloud. However, the deal to stream music for Sony meant that Omnifone needed to rethink its IT architecture. "As you can imagine, the due diligence into our architecture to support a global service of 90 million users on the Playstation network meant we needed to convince Sony, but Amazon did not have enough of the software infrastructure to build out the entirety of our platform."
Three years ago Omnifone decided it was time to move to the Amazon cloud following a contract with US streaming service SiriusXM. Sant says Omnifone needed to harden the architecture, which led to the company to componentise its streaming music platform using AWS.
"Dead air on a radio station is the greatest evil of all for radio," he explains. "SiriusXM set us extremely high-level service targets."
Sant says: "So we built our first prototype, effectively a connected iPod, using the Nokia N70, and the rest is history."
The service was built a decade ago for the N70. The original platform has now been completely engineered on AWS.
Sant says Omnifone is one of the top AWS users in terms of the breadth of components it has deployed for its music platform. As a result, he says: "We can get stuff onto Amazon's roadmap."
Highlights from Re:Invent
Computer Weekly met up with Sant at the AWS Re:Invent conference, where Amazon announced several major new services.
When asked which new services excited him the most, Sant says: "The most interesting function I saw was Lambda, which makes code more granular."
Lambda allows code snippets to be triggered automatically, which Sant believes would be useful in organisations that ingest a lot of objects in the cloud, where some actions need to be automated.
He says the new AWS code deploy pipeline has freed up two engineers who were building and managing Omnifone's own code deployment pipeline project. Such a pipeline is key to maintaining service levels and quality on a global service.
"When you release code frequently, it is has to achieve certain quality levels," says Sant.
The big news from the Re:Invent conference was Amazon’s new database Aurora, a product that Sant is very enthusiastic about. He says: "It's a full SQL database server that runs five times faster than MySQL."
Working with Amazon
The company uses 22 AWS services in total, including EC2, elastic load balancers, Cassandra and DynamoDB, and every component in Omnifone’s infrastructure can now scale independently on AWS.
"We have tens of thousands of components running around the globe, so we use multiple availability zones and regions," Sant explains. This scalability has boosted the company’s business development pipeline. "We have signed up more customers in the last six months than in the previous three years."
Sant describes AWS as "a rising tide of software". It's a tide that Omnifone rides. "We try to focus on writing the value-added differentiator bits," he adds.
Even though the music streaming platform is built on AWS, Sant says Omnifone writes as much software to manage the platform as the platform itself. "But the most important thing for us is that we don't develop software that AWS is about to write," he adds.
So if Omnifone needs a component or some software management functionality, Sant says the company would build it, but develop it so that it could be replaced once AWS builds an equivalent service. "We would have a discussion with Amazon to make sure we understand what they are building."
The componentisation of software development
Software development is much more componentised nowadays. According to Sant, the big change in the software industry is that creating applications is now an integration game. He says: "Twenty years ago there may have been 70 or 80,000 implementations of something like a fast Fourier transform algorithm embedded in various systems. Today you don't need more than two or three. Nobody should write these things unless there is a very specific reason to do so."
Sant believes that in any software project the business needs to be very careful how it defines its intellectual property. "I would not let any of my developers write an email interface. You should write the least amount of code.
"The most successful developers will be those that leverage the most interesting APIs and can envisage the most interesting amalgamation of features into a cohesive single user experience. You should only write the software that differentiates you."
But integrating software components and leveraging external cloud-based services shifts the focus of software development, according to Sant. He says: "Instrumentation becomes a factor. You'd better understand the latency of the external components you use because it will affect your overhaul latency and your service levels."