Behind nearly every cloud provider's basic infrastructure as a service or platform as a service, there's a set...
of platform services that virtually extend application middleware, adding features that are not only highly effective in exploiting the cloud, but also some that may be available no other way. Apps built on these features can be incredibly powerful. To exploit them fully, developers need to understand the feature categories and different cloud computing tools that make up platform services, understand how these services influence application design and deployment, and compare the benefits against the direct and indirect costs before you leap.
Every cloud provider seems to have their own slant on platform services, which only makes it harder to know whether such services offer any benefit over the traditional data-center-middleware model. To get a handle on value, start by collecting the platform services of all your credible cloud providers into a list by the following categories.
Database tools are normally offered as extensions of the basic cloud storage services, and the most popular of these are the relational database services and backup services. The cost and delay associated with crossing the data center to cloud boundary can be high. As a solution, a database tool is worth considering as an alternative to having cloud application components access your own hosted database services.
Workflow tools provide a cloud-hosted form of service or message bus services, designed to deliver transactions within a set of cloud components. Many applications use service busses to connect applications, but hosting a message bus in the cloud and making it expand and contract as components scale can be complex. Workflow tools simplify the process. Some providers, like Amazon, offer an elastic load-balancing tool to steer work from a large community of users to a variable number of front-end instances, a push notification tool, and even email and message services hosted in the cloud. For highly scalable apps, this can be a critical feature.
Device services are offered by some cloud providers as part of a mobile application support strategy, or to support the creation of internet of things applications. These suites almost always include device management, user identity management and application testing facilities. They're critical for building applications that connect with a large, variable community of devices, particularly if those devices are distributed over a large geography.
Security services usually include basic virtual private networks, encryption and key management services. Other providers expand the suite to include identity management for application and data access control, firewall hosting and even cloud validation of application security. Highly componentized applications built in the cloud can easily fall prey to having too much security information stored in a machine image where it could be hacked, and these services are essential in creating data-center-like security in a cloud environment.
Development, monitoring and management tools are a bridge between traditional application development and operations practices and practices designed for the cloud. Some cloud providers will offer extensive support for application deployment, operations and lifecycle management. In many cases, these tools will work even for data center applications, but their inherent scalability and their special capabilities in cloud deployment and management make them especially useful for organizations with a major commitment to either public or hybrid cloud.
Application services are essentially horizontal tools that can be used in many different types of applications to provide a cloud-distributable form of features often built into new apps. Search, mail and message, and even document development and distribution tools are available as platform services from some providers. If a company plans to shift worker productivity support to the cloud, these cloud computing tools may be essential in making the transition painless and efficient.
When you have your list of classified cloud computing tools, look at each of the categories and identify the middleware that you would use if you were building your target applications for the data center rather than the cloud. Note the set of tools you've identified with each of the categories, and then explore how the cloud platform services differ from those in-house tools. It's these differences you'll have to accommodate in your application design.
As you assess these differences, you'll want to pay special attention to any that relate to the two basic properties of cloud hosting -- location independence and scalability of resources. Platform services that help you optimize these two properties of the cloud will make your applications better to the extent that the additional cost of the service will be money well spent.
Assessing the costs and benefit of platform services is a critical step, especially if your application plans are going to get backing from the CFO. The classification process recommended earlier is a great place to start an analysis. It allows you to establish the benefit of the platform service by comparing its features to those of the traditional in-data-center alternative, and also note the cost of the service for each of the cloud providers that offer it. This chart will also let you know if the feature you're considering is one available from only a few, or perhaps only one, provider.
Lock-in, or the creation of nonportable cloud applications, is the biggest hidden cost of platform services. If you can't get a variety of implementation options for a service, you may be committing to a single provider and losing any pricing leverage down the line. At worst, you may find that your provider has failed or pulled back on service options, leaving you to scramble for alternatives.
That's the key point in building apps around cloud computing tools. You will always be more dependent on the provider if you use these tools, and you'll need to reflect that dependency in your process of provider selection and the way you manage the relationship. If you can get that right, the platform services will build you better apps.
Connecting devices to cloud services
Working with multi-cloud providers
Developing cloud application with PaaS