According to a recent Information Week survey public cloud adoption in the enterprise has stalled slightly since 2011. In 2008, only 16% of survey respondents were using some sort of public cloud service. That went up to 21% in 2009, then to 22% in 2010 and jumped to 31% in 2011. It only raised to 33% this year. Many companies remain interested in the cloud – 40% say they have plans – but at least for this year the move is somewhat slow.
Meanwhile, I keep hearing about the private cloud as a baby step towards public and hybrid clouds. Even Salesforce.com is softening its anti-private cloud stance with its Database.com Data Residency Option.
Today Amazon Web Services announced a new service called Simple Work Flow that will complement its AWS Storage Gateway in addressing the need to run distributed applications in both on-premise and public cloud infrastructure. Simple Work Flow is an orchestration tool for automating business processes and workflows, both on AWS and on-premise. Here’s an example from AWS’ Jeff Barr that seems like it could be applicable to a company that wants to keep most of its servers in-house but wants to upload images to Amazon S3:
- Accept uploaded file.
- Store file in Amazon S3.
- Validate file format and size.
- Use Amazon Mechanical Turk to classify the image.
- If the image is unacceptable, send an error message using Amazon SES and terminate the workflow.
- If the image is acceptable, check the user’s balance in the accounting system.
- Launch an EC2 instance.
- Wait for the EC2 instance to be ready, and then configure it (keys, packages, and so forth).
- Convert the image to PNG format and generate a series of image thumbnails.
- Upload the PNG image and the thumbnails to Amazon S3.
- Adjust the user’s balance in the accounting system.
- Create an entry in the appropriate database table.
- Send a status message to the user, again using Amazon SES.
Here’s an illustration from AWS on how Simple Workflow works:
Barr’s post has more details about how the system works. And AWS CTO Werner Vogels goes further into detail about what’s going on under the hood:
As part of the AWS SDK, the AWS Flow Framework helps developers create Amazon SWF based application quickly and easily. The Java version of the SDK includes really cool integration at the language level, making it easy for developers to automatically transform java code into tasks, create the right dependencies, and manage the execution of the workflow. This brings the power that some languages with built-in distribution and concurrency like Erlang offer to Java.
Cloud management company Rightscale is already using Simple Workflow. The big idea here is to help developers architect cloud applications the way companies like Netflix do. Although Vogels doesn’t specifically mention Netflix, I couldn’t help but think of that company’s architecture and some of its idiosyncratic processes when I read this bit of Vogels’ post:
A growing number of applications are relying on asynchronous and distributed processing, with scalability of the application as the primary motivation. By designing autonomous distributed components, developers get the flexibility to deploy and scale out parts of the application independently as load increases. The asynchronous and distributed model has the benefits of loose coupling and selective scalability, but it also creates new challenges. Application developers must coordinate multiple distributed components to get the desired results. They must deal with the increased latency and unreliability inherent in remote communication. Components may take extended periods of time to complete tasks, requests may fail and errors originating from remote systems must be handled. Today, to accomplish this, developers are forced to write complicated infrastructure that typically involves message queues and databases along with complex logic to synchronize them. All this ‘plumbing’ is extraneous to business logic and makes the application code unnecessarily complicated and hard to maintain.
This is a big step forward for AWS’ enterprise readiness, but Amazon needs to do more to address the matter of application portability. At the moment Simple Workflow reeks of vendor lock-in to me.