Amazon's data flow PaaS: AppStream and Kinesis
Learn why AppStream and Kinesis are different kinds of data flow services.
The future of the cloud is likely to be based on adding hosted services, accessible through RESTful, Web-friendly application programming interfaces, to provide special enhancements to solve enterprise and developer problems. Amazon's caching, Database Management Software as a Service and virtual desktop services are all examples of this trend, which allows developers to deploy machine images that are more than simple Infrastructure as a Service (IaaS) but instead are integrated with special cloud-based features.
AppStream and Kinesis are two more such services, and these two are aimed at making the cloud into something totally different -- something that can support enormous data streams and challenging graphical user interface presentation applications. Separately, AppStream and Kinesis are significant, but together they could be compelling. Combined with the other Amazon Web Services (AWS) evolutions, they could be game changing.
Data generated online isn't the only form of big data, but it's a form that has special significance because the sources are distributed and the volume is potentially enormous because of the sheer number of sources. In many applications, developers are forced to create massive aggregation networks to collect data and elastic processing frameworks to process it while adjusting to variations in the data volumes, and to make that whole structure low-delay and high-availability at the same time. That's a tall order, given that any given company may have only one data-flow-intensive application.
What Amazon is doing with Kinesis is creating a Web service that can marshal elastic resources to deal with distributed or single-stream high-volume data flows. The Twitter example is often given, but it may diminish the utility of Kinesis in the eyes of the corporate user. Nearly any financial trading application; much large-scale transaction processing; and in particular, machine-to-machine and Internet of Things traffic fit this data flow model.
Kinesis lets developers define any number of source points and then associate them with processes hosted in an elastic way in Amazon's cloud. The linkage between source points and host processes is a stream, and a stream can be defined to include any number of source points and associate with any number of processes. Normally the streams would replicate across Amazon's availability zones for high reliability. The result is an architecture for developing data-flow-critical applications that would likely be totally impractical on anything but a public cloud platform. Kinesis thus takes buyers and Amazon out of the move-to-the-cloud model and into a model that builds for the cloud.
Obviously Kinesis isn't a light-hearted financial commitment for buyers, but is designed for applications that demand exceptional data handling performance and high elasticity. Compared with private dedicated infrastructure, Kinesis could be a bargain, especially when the data volumes are highly variable. There are even applications using Kinesis as the framework for delivering back-end transactions from a Web store or set of Web applications to transaction processing systems. As Kinesis evolves, it's likely to be available in simpler forms with lower cost and even wider applications. One of the powerful truths about the public cloud is that it can make very efficient use of resources even when individual application and user commitments are small. When Amazon is ready, Kinesis could be a mass market tool.
Amazon's second extension, AppStream, appears to be a productization of the content-rendering Amazon uses for its Kindle interfaces. One of the challenges of nearly all gaming applications and many video production and even graphic simulation and display applications is that they rely on a high-performance graphics-processing unit for execution. This kind of technology isn't found on most business laptops, much less on tablets or smartphones. AppStream creates a proxy in the cloud between the application and the device, and this proxy renders the graphics as a graphics processing unit (GPU) would, and translates the result into a simple display stream that can be handled by nearly any modern computer, tablet or smartphone.
The obvious virtue of AppStream is its ability to allow graphics-intensive applications to be run from devices without the special GPU tools. This can be critical to gaming, of course, but this example may again trivialize the concept in the minds of the enterprise, which may be in fact the biggest customer. In healthcare, the financial industry, industrial engineering and design, and other applications that involve graphic rendering of data or graphic depiction of circuits or structures, AppStream can open the world of tablets and smartphones to graphic applications.
A second benefit of AppStream is that it's possible to deliver the data to a client browser or app that runs on multiple platforms without changing the underlying application. While Amazon's material isn't making the connection obvious, it seems likely that AppStream could be combined with the Amazon WorkSpaces virtual desktop for corporate use, and even be used in conjunction with both Workspaces and Kinesis to visualize large and complex data flows. The value of this combination in industries like healthcare and financial trading should be obvious.
That, perhaps, is the real story with Kinesis and AppStream. Amazon is working hard to build a community of software services deployed in the cloud and available to users and developers to build their own applications. This is making Amazon into more than a cloud; it's creating a distributed software operating system that developers can write for. Over time, this will not only encourage more Amazon partners in their network, it will make Amazon a unique platform for cloud-based applications, not just another IaaS player. That certainly appears to be Amazon's long-term plan.