Meet eJukebox and find out how they're using Azure to scale their startup

Guest post by Marc Kean, Founder eJukebox, www.ejukebox.com.au

 

eJukebox is just like a normal jukebox, but is today’s technology fully controlled from a smartphone. The main eJukebox player is the size of a 7” tablet or smaller. There are no cables, it is completely wireless, can be setup within minutes and is completely solid state which makes it 100% reliable. No more heavy lifting, no more limited music options or not knowing when your song is going to be  played etc, eJukebox has every single song that commercial radio stations have from every decade. We are on the same record company music distribution list than that of radio stations and receive new music at the same time your  favourite radio station does. It is controlled by a mobile based website where you can search or browse for your favourite song within seconds, see all pending requests in order, see the last 9 songs played and view popular lists of songs e.g. the current Aria Top 50 Singles Chart. eJukebox is designed for both permanent venue placement (pubs/clubs) or ad-hoc hire and plays throughout the entire venue. eJukebox comes with an app so that the person in charge of eJukebox has ultimate remote control and can change the volume, delete requests, change the default playlist style, instantly play particular songs, stop the music and change tracks etc – all from the palm of their hand.

 

Azure has given eJukebox the ability to scale on-demand within minutes when we need another server setup, we can quickly do this using PowerShell or using the portal. We can set the servers up for building our different weekly based playlists, then we can shut them down when we are finished with them. Azure suits us perfectly. As we have weekly playlists for our music systems, we have about 5 separate default playlists at this stage, we have 5 servers hosted in Azure each configured to spit out a week long playlist of songs, a different playlist for each server. We power these 5 servers up on a Sunday, 5 minutes later we can log into them, then within minutes we can generate our playlists, wait for a quick sync to the cloud, then power them back down again. From power up to power down, it’s about 1 hour tops. Considering there is 168 hours in a week, we are only billed for 1 hour of usage. At the same time, we know that the VHD file of these virtual machines are located on geo-redundant blob storage, they are safe and secure and always ready for us when we need them.

 

eJukebox uses some cloud based music players. This has always been a challenge for us, the nature of cloud based music players, we can’t run a music player across two virtual machines in an Availability Set. Azure would shut-down virtual machines approx. once every 6 weeks while they patched the underlining host, this is referred to as the update domain. When the virtual machine was shut down, this would cause an outage of the eJukebox music player and we didn’t  know what time of the day it would be and could be at our busiest time. However recently with Azure’s new way of host patching, they patch different layers of the host OS, without requiring a full reboot of the host, only a re-cycle of the layer being patched. For example, if the network OS layer was being patched, only the network layer of the host OS would be re-cycled, without the need to restart the entire host OS. This means that the virtual machines sitting on top of the host OS are not restarted and only experience a slight ‘blip’. We have some virtual machines running in Azure that have been running for up-to 10 weeks now, whereas before they would be restarted about every 6 weeks. Now we only have to worry about a fault domain, one domain is better than two domains what there was before.

 

Azure cloud hosting of a single virtual machine is now in a better league than hosting our own virtual server. Sure there could be an underlining hardware fault of a virtual machine host at the mercy of a fault domain, but there’s the fault domain anywhere you have a virtual machine hosted. With Azure, it’s a much better place for fault domains, as they are setup 24/7 monitoring for any type of fault resolution and are backed with generators and massive data pipes for reliable network connectivity.