Data Pathways for a Real-Time Cloud

RealTimeCloudIconDataPathway1What are some of the possible ways that data can flow through a real-time cloud system?  In his book, Cloud Economics, Joe Weinman suggests a triangular relationship between the three key players in the cloud game: user, enterprise, and cloud.  He classifies the “user” as the consumer of the data, as well as the producer, or both.  He then goes on to show how in a hybrid cloud architecture, there are six possible relationships between the key players.

DataPathway2This is a helpful way to look at things, but I would take it one step further for a real-time hybrid cloud.  Since in a real-time system the data producer is usually a device, instrument, or machine, and the data consumer is often a person, it might be helpful to look at the architecture as a diamond, instead of a triangle.  To Weinman’s three players, we could add a fourth: data source.

The resulting four-cornered diamond shape is helpful for illustrating the possible data paths through the cloud system.  For example, the pre-cloud data path is from the data source through the enterprise to the user.  We might then expect that implementing a cloud solution would switch the path to go from the data source through the cloud to the user.

DataPathway3
DataPathway4Those would seem to be the two options, in an either/or world.  But when we consider the possibilities of a hybrid cloud, more paths become possible, and in many cases more useful.  For example, most industrial users keep tight control on their systems, and would not think of exposing their data sources directly to the cloud.  However, if the system architecture incorporates the core principles of real-time cloud design, then one path of selected data for qualified users could be from the data source to the enterprise, and from there to the cloud and the user.

DataPathway5In that same scenario, it could be that some users get data directly from the enterprise itself part of the time, and from the cloud at other times.  For example, an operator at a plant may view a SCADA system on a control panel, but when walking around the plant, or when on call during the weekend, could receive notifications and a critical subset of the data on a table or smart phone, via the cloud.  So the data from the source would go to the enterprise, and then directly to the user, or via the cloud to the user, depending on the needs.

DataPathway6In some circumstances, the enterprise may be a secondary recipient of the data.  For example, if the data source is another company that is supplying its data over the cloud.  Or in the case where the system design favors putting data from sensors or other field devices on the cloud first.  In these cases, both the users and the enterprise would interact with the data via the cloud.

These are a few of the possible data paths for a real-time hybrid cloud system.  At any given time an application may use these or other paths, depending on the needs of the users and the limitations and requirements of the system.  This inherent flexibility of the architecture makes a hybrid approach an attactive option for many real-time cloud applications.

Hybrid Clouds for Real-Time Systems

In the past few years, as cloud computing has become more accepted, it has also become more sophisticated.  The number of options is growing for someone shopping for a cloud system.  Two important categories are public cloud  and private cloud.  Now it seems that combining the two into a hybrid cloud can provide the scalability and lower costs of the public cloud, while not giving up the internal control and security for in-house systems offered by a private cloud.

This combination of public and private clouds could appeal to users of real-time data, particularly those in industries who need to keep a close eye on mission-critical systems.  There may be parts of those systems that need to be shared with a wide audience of users, while at the same time protecting the core proprietary data and applications.  Some companies might want to experiment first with a private cloud, and once they have experience working in a cloud environment, put some data onto a public cloud.

In any case, one of the challenges to implementing a hybrid cloud is integration.  How do you ensure a seamless connection and interoperability between in-house, private cloud, and public cloud systems?  On the contractual side, you’ll want to ensure that service level agreements (SLAs) between vendors are compatible.  And on the technical side, you’ll need to be sure that the real-time data flow is secure, fast, and uninterrupted.

If your system meets the nine core requirements for real-time cloud systems, then it should be relatively straightforward to implement a hybrid of public and private clouds.  A publish/subscribe data delivery model pushing data to the cloud through closed firewalls ensures that the data source is protected.  And it should be possible to mirror data between a private cloud and a public cloud, if necessary.  Mirroring allows for real-time synchronization of data in the system.  For data protocols that don’t network, the system will need the ability to tunnel the data between closed firewalls, and transfer it across the network over TCP.Hybrid cloud, one possible scenarioIn our opinion, a control system engineer who is looking at cloud systems to provide remote access to the plant data should be looking at the hybrid solution ahead of any other.  For example, the system shown above provides several advantages over a public cloud or a remotely hosted private cloud system:

  1. The plant system can run normally in the event of a wide-area network outage.  Remote access will be cut off, obviously, but the plant system will continue to run in isolation, unaffected by the network failure.
  2. People inside the plant will have access to the data at LAN speeds and latencies.  Their data access will not have to make a round trip from the plant to the public cloud server and back again.
  3. It is possible (even recommended) to give read/write access to the private cloud server from within the plant, but not allow write access to the public cloud server users, or indeed to the public cloud server itself.  This way if the public cloud server is compromised it cannot be used to compromise the plant.
  4. This arrangement allows the plant to isolate itself quickly from the public cloud server if necessary by terminating a single connection.
  5. This also allows the plant to publish only a partial data set to the public cloud.  Users within the plant need access to the complete data set, but remote users may only need access to a less-sensitive subset of the data.
  6. It can be implemented incrementally.  The private cloud server can be added to the existing plant system without disrupting it, and private users can migrate at their own pace to it.  Once the private cloud server has been validated, it can be connected to the public cloud server, again without any disruption to the plant system.

Is There a Hybrid Cloud in Your Future?

According to a recent entry in IBM Cloudchat, the idea of a hybrid cloud is “poised to take flight” this year.  Last month we had the opportunity to join a Twitter discussion with IBM Distinguished Engineer and CTO Cloud Standards Christopher Ferris and IBM VP Scott Hebner, along with a number of other experts in the field of cloud computing to look at the potential for hybrid cloud systems.  Among other things, it seems that the hybrid approach may lend itself well to real-time cloud systems.

Definition
We started off by defining what “hybrid cloud” means.  Chris Ferris reminded us of the NIST definition: “in which two or more cloud types are discrete but networked together such that a burst of activity beyond the capabilities of one cloud is shifted for processing to another.”  In other words, a hybrid cloud is a linked combination of two or more types of cloud systems, such as public, private, or community.  Most of our discussion focused specifically on hybrids of public and private cloud systems.Hybrid cloud, one possible scenarioParticipants were quick to expand on this basic definition.  There was some agreement that a hybrid cloud should provide “seamless integrated management and usage of different cloud services and in-house IT.”  This brings up two important ideas that may be implied but are not clearly spelled out in the NIST definition.  First is the necessity for a well-integrated way to coordinate between the two or more types of cloud in the hybrid.  Second, there is a practical need to consider effective coupling with in-house systems.  This is particularly true for many real-time systems.

Benefits and Risks
The benefits and risks of hybrid systems were summed up in this comment by Marcus Erber: The “benefit is to get the best of each world. Risk is the complexity of the environment.”  Some of the specific benefits mentioned by other participants included:

  • Cloud bursting, which is the ability to handle sudden, heavy computing loads.
  • Scaling resources, such as processing power or storage capacity, possibly in a more planned and controlled manner.
  • Maintaining internal control & security on selected systems or data, which is often significant for industrial and mission-critical applications.
  • Accessing public cloud resources from within your firewall, which is similar to the requirement for real-time cloud systems to reverse the client/server relationship.

One overall comment was that a hybrid cloud provides the benefits of scalability and lower costs associated with the public cloud, while allowing companies to keep mission critical applications managed in-house (in a private cloud).

The risks were felt to be similar to those of the public cloud in a general sense, with the added challenge of integration between the two systems.  Some of the specific risks and challenges highlighted were:

  • Difficulty of achieving interoperability between cloud systems
  • A need for maturity of cloud APIs
  • Harder to achieve service levels specified in SLAs (Service Level Agreements)
  • Matching SLAs between private and public cloud providers
  • Avoiding vendor lock-in

As with other aspects of cloud computing, the general feeling among participants was that the benefits outweigh the potential risks, and the challenges can be met.  Even if we take in all the optimism with a grain of salt, there is some reason to expect to see a hybrid cloud in your future.

What would a hybrid cloud look like for a real-time system?  This is worth looking at in more detail, in our next blog.

The Private Cloud Option

What comes to mind when you hear the phrase “cloud computing”?  Despite all the benefits, do you get a vague feeling that somehow you’re going to be handing over control of your system or your data to someone else?  That’s not surprising.  The common understanding of a cloud system is called a “public cloud,” where anyone can sign up and start uploading programs and data alongside anyone else.  Of course, there are security safeguards in place, but you share the cloud infrastructure and hardware with others.

There are other options for cloud computing.  One of these is a private cloud.  The most recent draft copy of “Cloud Computing Synopis and Recommendations” from NIST (The National Institute of Standards and Technology of the US Dept. of Commerce) defines a private cloud like this: “The cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on premise or off premise.”

This opens new possibilities.  Suddenly cloud computing is not something “out there.”  It can be managed on-site by your own IT staff, using your own hardware.  Or you can outsource the operation and still have exclusive use of the cloud computing resources.  Either of these kinds of private clouds (on-site or off-site) can be used to support real-time systems.  Each has its own inherent advantages and drawbacks.An on-site private cloud deployed at a single location does not rely on outside networking, and is easier to secure.  But the upfront costs are higher, especially if you build and maintain it yourself.  Also, there are fewer resources available for “cloud bursting,” or handling sudden, heavy computing loads when you are using an on-site cloud.  So you lose some of the key advantages of a cloud system.An off-site private cloud, on the other hand, would be less expensive to implement up front, and would be more flexible in providing additional resources on short notice.  But it would run partially, at least, on external networks and more effort would be needed to implement security.

In a way, we can view on-site and off-site private clouds as sort of stepping stones towards a public cloud.   As you move up the steps, your costs go down and flexibility increases.  But to gain those benefits, you need to depend more on external networks or the Internet, and to keep a close eye on external security.

One approach to trying out cloud computing for a real-time system could be through implementing a private cloud.  This would give an opportunity to gradually gain valuable experience in cloud computing.  For example, you might want to experiment first with an on-site system, and once the kinks are worked out, move to an off-site private cloud.  Then sometime down the road, you could move to a public cloud.

Or, there’s another possibility–a hybrid cloud.  We’ll talk about that next week.