by mheydt
24.
January 2009 23:15
>
In the diagram that I previously posted I laid out a cloud architecture composed of 5 major components:
This section provides the means by which systems outside of the cloud (and sometimes systems within the cloud) can locate and communicate with systems in the cloud. This is typically done through one or more of the four means shown (although any network communication is technically possible):
- Queue based communications
The application outside the cloud posts a message into a message queue, where systems within the cloud look for messages, process them, and potentially send messages back to the client through another queue.
HTTP communications into the cloud can be broken down in to two primary forms of communications. First is the access of cloud applications through standard web applications presented through HTML. Another is through the use of tunneling other protocols over HTTP (although I consider REST and SOAP over HTTP its own category).
Basically these come down to accessing web services within the cloud. The historical means of doing this is over SOAP, but REST has become a popular alternative over the last few years do to its relative simplicity compared to SOAP.
The "Services Bus", otherwise referred to as the "Internet Service Bus", or ".NET Services", is a Microsoft technology that allows systems to register their "endpoints" in the cloud, whereby the cloud publicly exposes those endpoints, thereby allowing systems outside the cloud (or within) to locate other systems within (or outside the cloud) and establish connections with each other. This also provides another valuable service in that it will define tunnels through firewalls on each end.
This section of the cloud is basically dominated by raw CPU power, although that power can be subcategorized into functional sections. One of the primary tenants of the CPU in cloud computing is that it is "on-demand", being dynamically allocated only when needed. The on-demand nature has a direct ramification for cost savings in that you are typically only billed for the CPU time used, but there are also indirect benefits in ability to failover easily. The on-demand nature of CPU utilization is a direct result of the work over the years in computer and software virtualization, except that it is now extended to be able to on-demand allocate systems from libraries of machine images instead of just within your own enterprise.
All cloud services provide native services for storing data to your applications. This breaks into a few different types of storage, ranging from "blobs" (basically files, but with limitations compared to normal file systems), table data (structured data, but not as complex as RDBMS systems), structured storage systems (more akin to RDBMS system), and dynamic storage volumes which are comparable to disk drives on regular systems but able to be created on the fly and attached to any virtual system.
- Cloud Provided Services
All cloud providers will offer additional services to your systems in the cloud (and possibly to you from outside the cloud). This can be things along the lines of advanced data services, payment processing, search, web and generalize data cachin, workflow, and more complex application services such as CRM/ERP/MRP.
- Intra-Cloud Communications
[Explain why this is important] Cloud service providers will provide you with one or means of allowing your cloud based systems to communicate with each other. Communications between cloud based systems is typically accomplished via message queuing facilities, and both Amazon and Microsoft provide these services. Microsoft also provides its .NET Services facility (also know as an Internet Service Bus) that can also allow your systems to find and communicate with each other.
92d7e715-c47c-4587-9655-bd3c02ffd760|0|.0
Tags:
Cloud