When Amazon launched AppStream alongside its Desktop-as-a-Service platform WorkSpaces last year, it didn’t get much attention compared to the scene-stealing DaaS platform. However, a year later, with WorkSpaces slow to get its bits together, AppStream may have a better chance of mainstream success.
Experienced desktop people may remember AppStream as the application isolation, distribution, and license management company that was acquired by Symantec in 2008 and reborn as Symantec Workspace Streaming. Name aside, Amazon AppStream bears no relation with that AppStream. Just as Amazon WorkSpaces does desktops, not workspaces, AppStream doesn’t stream apps. Rather, it’s a presentation virtualization solution—Amazon’s answer to Microsoft Azure RemoteApp.
One of the reasons why Amazon AppStream didn’t get much attention when it was first introduced was that it wasn’t possible to use it out of the box and start delivering remote apps straight away. In its first iteration, AppStream was more platform than product. Unlike Citrix XenApp and other familiar presentation virtualization solutions that run apps unmodified, AppStream was designed as a client/server graphics platform for running custom developed apps. AppStream would do the rendering work in EC2 and pass the display data to an application-specific client via a proprietary remote display protocol. A powerful combination, but one requiring custom development work to take advantage of. Now, however, Amazon has updated AppStream to provide turnkey support for any Windows application capable of running on Windows Server 2008 R2, and that could make all the difference in world.
AppStream was envisaged as more than just a general purpose presentation virtualization solution. The co-operative nature of the platform offers develops new opportunities to deliver graphically intensive apps to any platform. As well as touting the usual benefits of presentation virtualization, Amazon is keep to show off the benefits of AppStream in the gaming space. Suggesting that it can be used to deliver instant-on playable demos without the need to down load gigabytes of data first. It also seen benefits in cross platform development. With AppStream a single core graphics system can seamless integrate with multiple client apps designed to take full advantage of a mobile device resources, making it an ideal platform for games, simulation software, and 3D graphics development. A good example of how this works is provided by Halldor Fannor CTO of Eve Online developer CCP and one of AppStream’s early beta developers. Here Fannor explains how CCP used AppStream to deliver the Eve Online character builder to mobile devices.
How It Works
AppStream is based on Windows Server 2008 R2 running on EC2 g2.2xlarge instances and is available in two Amazon regions, US East (N. Virginia) and Asia Pacific (Tokyo). Amazon promises more flexible platform support and more locations if customer demand warrants it.
The AppStream STX Protocol named for high quality STreaming eXperience, utilizes the H.264/AVC video format for encoding streamed video, and the open-source Opus audio format for encoding streamed audio with real-time adaption to account for both changes in content type and network characteristics sampling data and adjusting performance 70+ times per second to ensure optimum user experience is maintained. STX utilizes UPD to stream audio and video downstream to the client, with control and input delivered via TCP. Control and inputs are more than just touch and keyboard actions, AppStream can take advantage of client-side processing to access mobile device sensors that could include magnetometer and GPS for location, accelerometer and gyroscope for measuring movement and orientation. Making for a far richer immersive environment than possible with desktop clients.
Amazon currently supports AppStream on Android 2.3 (Gingerbread) or later – including Amazon’s own Fire OS, Apple iOS 7.0 or later, Chrome browser 37 or later or a Chromebook with the latest updates installed, Mac OS X Mountain Lion (10.8.5) or later, and Microsoft Windows 7 or later. Amazon offers full clients for all platforms except iOS where instead it requires that you compile the source code provided in the Amazon AppStream SDK to build your own client.
When used to enable purpose build applications like the Eve Online character builder, STX supports three developer controlled modes of video frame update, allowing the server-side app to push frame updates as new frames are generated, push to a set frame rate, or have the client application pull frames on demand, a useful technique to optimize performance when a client might be run against widely varying hardware specifications and network connections.
Linking client and server together is the AppStream Entitlement Service which acts as gatekeeper authenticating and authorizing users, then creating a client sessions and providing a unique connection URL which clients use to connect to the session. As befitting a pure cloud service, there’s no LDAP or Active Directory integration, but as platform rather than product, it’s left in the customer’s how they want to control access.
What Has Changed
Although promoted as a platform for new client/server application develop, it has always been possible to use AppStream as a conventional Windows application hosting platform, but not without a little work. Prior to last week’s update, applications had to be integrated with the AppStream SDK to redirect audio and video output to STX – an option for developers looking to fast track SaaS adoption, but hardly viable for an enterprise wanting to move off the shelf software to the cloud. Now though the AppStream team has beefed up STX making it a standard Windows video display driver accessible to all Windows applications without modification. This opens the door to hosting almost any Windows application on AppStream and that makes it more
Installing a Windows application on AppStream is now a simple three step process:
- Connect to an AppStream server desktop
- Install the app from your preferred cloud storage container
- Select the .exe used to run the application
And you are done.
The only gotcha is that application installation is done through an RDP connection to the server desktop which turns off access to GPUs, graphics cards, and sound cards. A small number of off the shelf apps will not install without access to a physical GPU or sound card putted them out of reach of AppStream for the moment. I installed SketchUp as my test app, a not too demanding 3D modeling app that is popular in K-12 education and one that I’m already familiar with.
From the outset I expected that any interactive testing was going to be marred by the AppStream’s limited availability. The nearest instance to me is located over 2,750 miles away, meaning I was never going to get the snappiest of connections. Even so AppStream performed more than acceptably. Amazon recommends at least 3 Mbps for streaming video at 720 pixels at 30 frames per second. When more bandwidth is available, Amazon AppStream allows the encoding rate to go as high as .2 bits per pixel, about 5.5 Mbps. When less bandwidth is available, the encoding rate is throttled down to as low as.02 bits per pixel, which at 720p/30fps is about 550 Kbps. My broadband connection delivers between 8 and 24 Mbps depending on time of day and Comcast’s whim. During testing I was getting about 12-16 Gbps which when using the windows client to access SketchUp delivered more than acceptable behavior using the Windows client. Acceptable but not perfect; working on a relatively simple 3D model was nothing like as smooth as working with the same model locally, panning and zooming frequently dropped frames. A shorter network path should improve frame rate, but until Amazon extends AppStream to more regions, users will have to accept visibly ‘less than local’ performance. The AppStream client for Chrome wasn’t anything like as good though, lagging badly at times and displaying rendering artifacts as it tried to catch up with rapid screen updates, something that never happened with the Windows client.
Where Amazon WorkSpaces is lacking in both imagination and innovation, AppStream has all the makings of a killer app. A flexible platform for current and next generation 3D graphics applications with a solid API, AppStream’s one real weakness is its price. All that processing power doesn’t come cheap. A single AppStream session today would cost you $0.83 per hr. Not exorbitant compared to a $0.65 for a raw g2.2xlarge instance especially considering it includes a Windows license, and an acceptable amount for the convenience it enables for occasional use. But run as a platform for delivering SaaS 24×7 it mounts up to over $600 a month, a world away from the $25 per month that Amazon WorkSpaces starts at. Cloud economics will drive cost down eventually, but a more aggressive pricing structure is essential if Amazon wants to encourage adoption.The current flat rate pricing of $0.83 per hr needs to come down to no more than $0.35/hr to make it attractive to volume users, a tall order given Amazon’s current pricing strategy.