• Hybrid Cloud Computing Pattern

    1. Abstract

      Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. The Hybrid Cloud Computing (HCC) capability pattern provides a practical, pragmatic guide for development of cloud computing capability focused on interoperability and design for affordability. This capability pattern seeks to balance the cost, speed, and agility afforded cloud computing consumers with the required security, privacy and confidentiality. The HCC seeks to use hybrid cloud capabilities to balance the cost, speed, and agility afforded cloud computing consumers with the required security, privacy and confidentiality. This cloud computing capability pattern can be used to make Government more agile and adaptive with a focus on collaboration, openness and transparency

    2. Description

      1. Problem Statement & Context

        1. Problem Statement

          In the past year, cloud computing has morphed from an obscure concept into the driving force behind Federal information technology. Although its merits are still hotly debated, this new approach promises speed, agility and low cost with greatly improved security, privacy and confidentiality. When unveiled last year, Federal CIO Vivek Kundra highlighted three key elements of this new initiative. The first major element was the Apps.gov site, a clearinghouse for business, social media, and productivity applications, as well as cloud IT services. According to Mr. Kundra, the second element of the effort will be budgeting. For fiscal year 2010, cloud computing pilot projects will be pushed hard followed in 2011 by the issuance of more definitive guidance to agencies throughout government. The final key element will include policy planning and architecture consisting of centralized certifications, target architectures and formal security, privacy, and procurement processes. While many still honestly debate the value of cloud computing, deployment of this grand vision will also depend on the realization of cloud interoperability (integration of cloud capabilities) and portability (the ability to move from one cloud service / provider to another one). In a world of many and varied cloud computing solutions, government users must be able to freely move from one cloud vendor to another. This is not only an important technical requirement, but is also critical to protecting federal procurement integrity. This pattern applies to various across Government domains: Joint Ground, Air, Maritime operations, Organization and Nations combinations, Civil and Military coordination.

        2. Context

          1. Definition

            Cloud Computing: Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. (This definition is from the latest draft of the NIST Working Definition of Cloud Computing published by the U.S. Government's National Institute of Standards and Technology1.)

            1. What is cloud computing?

              1. Definition

                Definition: Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

              2. Three Delivery models

                1. Software-as-a-Service

                  The consumer uses an application, but does not control the operating system, hardware or network infrastructure on which it's running.

                  1. Example

                    1. Salesforce.com

                2. Platform-as-a-Service

                  ii. Platform as a Service (PaaS): The consumer uses a hosting environment for their applications. The consumer controls the applications that run in the environment (and possibly has some control over the hosting environment), but does not control the operating system, hardware or network infrastructure on which they are running. The platform is typically an application framework.

                  1. Example

                    1. Google AppEngine

                    2. Force.com

                3. Infrastructure-as-a-Service

                  iii. Infrastructure as a Service (IaaS): The consumer uses "fundamental computing resources" such as processing power, storage, networking components or middleware. The consumer can control the operating system, storage, deployed applications and possibly networking components such as firewalls and load balancers, but not the cloud infrastructure beneath them.

                  1. Example

                    1. Amazon Web Service

                      Amazon played a key role in the development of cloud computing by modernizing their data centers after the dot-com bubble, which, like most computer networks, were using as little as 10% of their capacity at any one time just to leave room for occasional spikes. Having found that the new cloud architecture resulted in significant internal efficiency improvements whereby small, fast-moving "two-pizza teams" could add new features faster and easier, Amazon started providing access to their systems through Amazon Web Services on a utility computing basis in 2005.[22] This characterization of the genesis of Amazon Web Services has been characterized as an extreme over-simplification by a technical contributor to the Amazon Web Services project.[23]

                    2. Unisys

                    3. EMC Atmos

                    4. Loudcloud

                      Loudcloud, founded in 1999 by Marc Andreessen, was one of the first to attempt to commercialize cloud computing with an Infrastructure as a Service model.[20] By the turn of the 21st century, the term "cloud computing" began to appear more widely,[21] although most of the focus at that time was limited to SaaS, called "ASP's" or Application Service Providers, under the terminology of the day.

                  2. Services

                    1. Compute

                      1. Physical Machines

                      2. Virtual Machines

                      3. OS-level virtualization

                    2. Network

                    3. Storage

                4. Other as-a-service

                  1. Rational for adopting NIST definition

                  2. Consideration for other delivery models

                    1. DEsktop-as-a-service

                    2. Data-as-a-Service

                    3. Grid-as-a-service

                    4. Utility COmputing

              3. Four Deployment Models

                1. Public Cloud

                  i. Public Cloud: In simple terms, public cloud services are characterized as being available to clients from a third party service provider via the Internet. The term “public” does not always mean free, even though it can be free or fairly inexpensive to use. A public cloud does not mean that a user’s data is publically visible; public cloud vendors typically provide an access control mechanism for their users. Public clouds provide an elastic, cost effective means to deploy solutions.

                2. Private Cloud

                  ii. Private Cloud: A private cloud offers many of the benefits of a public cloud computing environment, such as being elastic and service based. The difference between a private cloud and a public cloud is that in a private cloud-based service, data and processes are managed within the organization without the restrictions of network bandwidth, security exposures and legal requirements that using public cloud services might entail. In addition, private cloud services offer the provider and the user greater control of the cloud infrastructure, improving security and resiliency because user access and the networks used are restricted and designated.

                3. Community Cloud

                  iii. Community Cloud: A community cloud is controlled and used by a group of organizations that have shared interests, such as specific security requirements or a common mission. The members of the community share access to the data and applications in the cloud.

                4. Hybrid Cloud

                  iv. Hybrid Cloud: A hybrid cloud is a combination of a public and private cloud that interoperates. In this model users typically outsource nonbusiness- critical information and processing to the public cloud, while keeping business-critical services and data in their control.

              4. Five essential characteristics

                1. Rapid Elasticity

                  i. Rapid Elasticity: Elasticity is defined as the ability to scale resources both up and down as needed. To the consumer, the cloud appears to be infinite, and the consumer can purchase as much or as little computing power as they need. This is one of the essential characteristics of cloud computing in the NIST definition.

                2. Measured Service

                  ii. Measured Service: In a measured service, aspects of the cloud service are controlled and monitored by the cloud provider. This is crucial for billing, access control, resource optimization, capacity planning and other tasks.

                3. On-Demand Self-Service

                  iii. On-Demand Self-Service: The on-demand and self-service aspects of cloud computing mean that a consumer can use cloud services as needed without any human interaction with the cloud provider.

                4. Ubiquitous Network Access

                  iv. Ubiquitous Network Access: Ubiquitous network access means that the cloud provider’s capabilities are available over the network and can be accessed through standard mechanisms by both thick and thin clients.

                5. Resource Pooling

                  v. Resource Pooling: Resource pooling allows a cloud provider to serve its consumers via a multi-tenant model. Physical and virtual resources are assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).

              5. Two Domains

                1. Enterprise

                  i. Enterprise – "replacement for static reconfuration", usually physical organization leveraging the Internet or intranet for global connectivity with centralized governance and management (need better difiniton than static)

                2. Tactical/DEployable/Adhoc (Need new name)

                  ii. Tactical – dynamic, virtual organization typically short-lived. Leverages wireless networking technology to leverage internetworking technologies to form private or public, interoperable systems in order to accomplish a time or goal specified activity.

            2. Cloud computing is not.

              1. Grid Computing

                a. Grid computing — "a form of distributed computing, whereby a 'super and virtual computer' is composed of a cluster of networked, loosely coupled computers acting in concert to perform very large tasks"

              2. Utility Computing

                b. Utility computing — the "packaging of computing resources, such as computation and storage, as a metered service similar to a traditional public utility, such as electricity"

              3. Autonomic Computing

                c. Autonomic computing — "computer systems capable of self-management"

          2. Government Cloud Computing Examples

            1. United States

              Federal Chief Information Officers Council Data.gov & IT Dashboard Defense Information Systems Agency (DISA) Rapid Access Computing Environment (RACE) US Department of Energy (DOE) Magellan General Services Administration (GSA) Apps.gov Department of the Interior National Business Center (NBC) Cloud Computing NASA Nebula National Institute of Standards and Technology (NIST)

            2. European Union

              Resources and Services Virtualization without Barriers Project (RESERVOIR)

            3. Canada

              Canada Cloud Computing Cloud Computing and the Canadian Environment

            4. United Kingdom

              G-Cloud

            5. Japan

              The Digital Japan Creation Project (ICT Hatoyama Plan) The Kasumigaseki Cloud

          3. Architectural TEnants

            1. Maintain security and control of personal identifiable information and data on premise (I.e., from cyber attack, data compromise, and personal identity theft). 2. Obtain agility and cost benefits from the use public cloud capabilities 3. Develop cloud bursting capability to right sized private cloud 4. Extend architectural capabilities to mobile and handheld devices

      2. Pre-Conditions

        There should be an agreed upon enterprise security, privacy and confidentiality policy, with a complete understanding of data location, access rights and security methods. There should be means of communication (with sufficient bandwidth and secured as appropriate) between systems willing to share. Right to share: legal issues and other possible obstacles to information sharing must be solved for getting the full benefit of the pattern. Will to share: organisational, cultural and other human issues may create obstacles to information sharing and should be solved for getting the full benefit of the pattern Policies & Contracts, including Service Level Agreements (SLAs) MUST be referenced.

      3. Participants

        1. Taxonomy

          1. Service Consumer

            The service consumer is the end user or enterprise that actually uses the service, whether it is Software, Platform or Infrastructure as a Service. Depending on the type of service and their role, the consumer works with different user interfaces and programming interfaces. Some user interfaces look like any other application; the consumer does not need to know about cloud computing as they use the application. Other user interfaces provide administrative functions such as starting and stopping virtual machines or managing cloud storage. Consumers writing application code use different programming interfaces depending on the application they are writing. Consumers work with SLAs and contracts as well. Typically these are negotiated via human intervention between the consumer and the provider. The expectations of the consumer and the reputation of the provider are a key part of those negotiations.

          2. Service Provider

            The service provider delivers the service to the consumer. The actual task of the provider varies depending on the type of service: • For Software as a Service, the provider installs, manages and maintains the software. The provider does not necessarily own the physical infrastructure in which the software is running. Regardless, the consumer does not have access to the infrastructure; they can access only the application. • For Platform as a Service, the provider manages the cloud infrastructure for the platform, typically a framework for a particular type of application. The consumer’s application cannot access the infrastructure underneath the platform. • For Infrastructure as a Service, the provider maintains the storage, database, message queue or other middleware, or the hosting environment for virtual machines. The consumer uses that service as if it were a disk drive, database, message queue, or machine, but they cannot access the infrastructure that hosts it. In the service provider diagram, the lowest layer of the stack is the firmware and hardware on which everything else is based. Above that is the software kernel, either the operating system or virtual machine manager that hosts the infrastructure beneath the cloud. The virtualized resources and images include the basic cloud computing services such as processing power, storage and middleware. The virtual images controlled by the VM manager include both the images themselves and the metadata required to manage them. Crucial to the service provider’s operations is the management layer. At a low level, management requires metering to determine who uses the services and to what extent, provisioning to determine how resources are allocated to consumers, and monitoring to track the status of the system and its resources. At a higher level, management involves billing to recover costs, capacity planning to ensure that consumer demands will be met, SLA management to ensure that the terms of service agreed to by the provider and consumer are adhered to, and reporting for administrators. Security applies to all aspects of the service provider’s operations. (The many levels of security requirements are beyond the scope of this paper.) Open standards apply to the provider’s operations as well. A well-rounded set of standards simplify operations within the provider and interoperability with other providers.

          3. Service Developer

            The service developer creates, publishes and monitors the cloud service. These are typically "line-of-business" applications that are delivered directly to end users via the SaaS model. Applications written at the IaaS and PaaS levels will subsequently be used by SaaS developers and cloud providers. Development environments for service creation vary. If developers are creating a SaaS application, they are most likely writing code for an environment hosted by a cloud provider. In this case, publishing the service is deploying it to the cloud provider’s infrastructure. During service creation, analytics involve remote debugging to test the service before it is published to consumers. Once the service is published, analytics allow developers to monitor the performance of their service and make changes as necessary.

      4. Structure

        1. Critical Elements

          • Development of robust security, privacy and confidentiality • Acquisition of the the speed, lower cost and agility capabilities • Extension of enterprise capabilities to end user hand held devices

          1. HCC On-Premise Environment

            The enterprise on-premise environment is the foundation of the HCC pattern. Integration and utilization of the on-premise environment is critical as it is generally the source of enterprise secure data. It provides Government agencies a known secure enterprise environment for development of enterprise data and applications, and by using it as part of the cloud computing capability it reduces the concern for lack of control, security, privacy and confidentiality of data when developing cloud solutions

          2. HCC Public and Private Clouds

            Public and private clouds offer speed of acquisition and use, utility based pricing and more agility especially when integrated with the enterprise on-premise environment. Public cloud providers offer infinitely elastic automatic scale and virtual private cloud capabilities that lower cost and seek to manage security risk. Private clouds offer right sized cloud bursting capabilities for applications that extend beyond traditional short lived public cloud needs or for applications that need to run when bandwidth or survivability issues exist. In order to make use of cloud services part of an agency enterprise solution, interoperability issues, cloud integration, and portability issues need to be resolved. The HCC pattern with it integration of on-premise enterprise environments with public and private cloud capabilities balances benefits and risks associated with cloud computing adoption.

          3. HCC Mobile and Hand Held Devices

            This design pattern provides for the extension of enterprise capabilities to multiple mobile and hand held devices.

      5. Use Case Scnarios

        1. Enterprise

          1. End User to Cloud

            Applications running on the cloud and accessed by end users

            1. Cloud-based collaborative environment

          2. Enterprise to CLoud to End User

            Applications running in the public cloud and accessed by employees and customers

          3. Enterprise to Cloud

            Cloud applications integrated with internal IT capabilities

            1. Cloud Bursting

          4. Enterprise to Cloud to Enterprise

            Cloud applications running in the public cloud and interoperating with partner applications (supply chain)

            1. Virtually binding shipboard & Land vehicle IT infrastrcutures

          5. Private Cloud

            A cloud hosted by an organization inside that organization’s firewall.

          6. Community Cloud

            Subset of Hybrid CLoud. Intranet instead of internet

          7. Changing Cloud Vendors

            An organization using cloud services decides to switch cloud providers or work with additional providers.

          8. Hybrid Cloud

            Multiple clouds work together, coordinated by a cloud broker that federates data, applications, user identity, security and other details.

        2. Tactical/Deployable (Additional Requirements)

          1. Limited/Intermittent Connectivity

          2. Network Connection Authentication

          3. Redundant Compute/Storage Processes

          4. Autonomic Capabilities

      6. Post Conditions

        The HCC pattern offers the ability to provide increased adoption of cloud computing. It provides increased interoperability and portability of cloud based solutions and supports nascent cloud computing standards.

    3. Implementation Guidance

      1. Requirements

        1. Security Requirements

          1. Regulations

            Regulations are not technical issues, but they must be addressed. Laws and regulations will determine security requirements that take priority over functional requirements.

          2. Security Controls

            Although a given consumer might need all of these security controls, consumers should be wary of any cloud provider that makes security-related claims and reassurances without an infrastructure capable of delivering all of them.

            1. Asset Management

              It must be possible to manage all of the hardware, network and software assets (physical or virtual) that make up the cloud infrastructure. This includes being able to account for any physical- or network-based access of an asset for audit and compliance purposes.

            2. Cryptography: Key and Certificate Managemnt

              Any secure system needs an infrastructure for employing and managing cryptographic keys and certificates. This includes employing standards-based cryptographic functions and services to support information security at rest and in motion.

            3. Data/Storage Security

              It must be possible to store data in an encrypted format. In addition, some consumers will need their data to be stored separately from other consumers' data.

            4. Endpoint Security

              Consumers must be able to secure the endpoints to their cloud resources. This includes the ability to restrict endpoints by network protocol and device type.

            5. Event Auditing and Reporting

              Consumers must be able to access data about events that happen in the cloud, especially system failures and security breaches. Access to events includes the ability to learn about past events and reporting of new events as they occur. Cloud providers cause significant damage to their reputations when they fail to report events in a timely manner.

            6. Identity, Roles, Access Control and Attributes

              It must be possible to define the identity, roles, entitlements and any other attributes of individuals and services in a consistent, machine-readable way in order to effectively implement access control and enforce security policy against cloud-based resources.

            7. Network Security

              It must be possible to secure network traffic at the switch, router and packet level. The IP stack itself should be secure as well.

            8. Security Policies

              It must be possible to define policies, resolve, and enforce security policies in support of access control, resource allocation and any other decisions in a consistent, machinereadable way. The method for defining policies should be robust enough that SLAs and licenses can be enforced automatically.

            9. Service Automation

              There must be an automated way to manage and analyze security control flows and processes in support of security compliance audits. This also includes reporting any events that violate any security policies or customer licensing agreements.

            10. Workload and Service Management

              It must be possible to configure, deploy and monitor services in accordance with defined security policies and customer licensing agreements.

          3. Security Federation Patterns

            To implement these security controls, several federation patterns are needed. Cloud providers should deliver these patterns through existing security standards.

            1. Trust

              The ability for two parties to define a trust relationship with an authentication authority. That authentication authority is capable of exchanging credentials (typically X.509 certificates), and then using those credentials to secure messages and create signed security tokens (typically SAML). Federated trust is the foundation upon which all the other secure federation patterns are based.

            2. Identity Management

              The ability to define an identity provider that accepts a user’s credentials (a user ID and password, a certificate, etc.) and returns a signed security token that identifies that user. Service providers that trust the identity provider can use that token to grant appropriate access to the user, even though the service provider has no knowledge of the user.

            3. Access Management

              The ability to write policies (typically in XACML) that examine security tokens to manage access to cloud resources. Access to resources can be controlled by more than one factor. For example, access to a resource could be limited to users in a particular role, but only across certain protocols and only at certain times of the day.

            4. Single Sign-on / Sign-Off

              The ability to federate logins based on credentials from a trusted authority. Given an authenticated user with a particular role, federated single sign-on allows a user to login to one application and access other applications that trust the same authority. Federated single sign-off is part of this pattern as well; in many situations it will be vital that a user logging out of one application is logged out of all the others. The Single Sign-On pattern is enabled by the Identity Management pattern.

            5. Audit and Compliance

              The ability to collect audit and compliance data spread across multiple domains, including hybrid clouds. Federated audits are necessary to ensure and document compliance with SLAs and regulatory requirements.

            6. Configuration Management

              The ability to federate configuration data for services, applications and virtual machines. This data can include access policies and licensing information across multiple domains.

        2. Developer Requirements

          1. Caching

            A programming toolkit that supports caching for cloud resources would boost the performance of cloud applications. Developers need an API to flush the cache, and might need an API to specifically put an object or resource into the cache.

          2. Centralized Logging

            Logging is a common requirement for all developers, regardless of their role or the type of application they are writing. APIs should support writing logs, examining entries, creating logs and opening and closing log files.

          3. Database

            Developers need a way to access cloud databases. Cloud databases vary widely in their design (some are schema-driven and relational, many are neither), so developers writing cloud applications will choose a cloud database provider based on the needs of each application. The database API must support the basic CRUD operations.

          4. Identity Management

            Developers need a way to manage identities. In the simplest case, this requires a way to authenticate a given user's credentials. In cases where an application works with multiple data sources and applications, a developer needs a way to federate that user's identities. A federated identity management system can produce credentials to allow a given user to access a particular service even if the service and user have no knowledge of each other. APIs for identity management should cache and delete credentials as appropriate.

          5. Messaging-Point-to-Point

            Developers need an API to post messages to a queue and to consume those messages. An API must also allow the developer to peek the message (examine the message’s contents without consuming it).

          6. Messaging-Pub-Sub

            Developers need an API to work with topics in a message queuing system. The API should allow developers to post messages to a topic and retrieve messages from a topic.

          7. Raw Compute / Job Processing

            Developers need an API to work with large processing jobs such as Hadoop-style data mining. The API should allow developers to start, stop, monitor and pause processing jobs.

          8. Session Management

            The ability to manage user sessions is crucial, particularly in a cloud environment. The infrastructure of a cloud is redundant and resilient in the face of machine failures, so sessions must be maintained even when a particular cloud node goes down. The session API must make it easy to access or manipulate the current state of the user session.

          9. Service Discovery

            Developers need a way to discover which cloud services are available. Cloud services should be searchable by type of service, with the API providing additional function appropriate to each service type.

          10. SLAs

            Developers using service discovery need an automated way to determine the policies of the services their code discovers. With such an API, developers can write applications that interrogate cloud services and select the one that best meets the application’s SLA criteria.

          11. Storage

            Developers need a way to access cloud storage services. The API must provide the ability to store and retrieve both data and metadata.

        3. Operational Requirements

          1. End User to Cloud

            1. Identity

              The cloud service must authenticate the end user.

            2. Open Client

              Access to the cloud service should not require a particular platform or technology.

            3. Security

            4. SLA

              Although service level agreements for end users will usually be much simpler than those for enterprises, cloud vendors must be clear about what guarantees of service they provide.

          2. Enterprise to Cloud to End User

            1. Indentity

              The cloud service must authenticate the end user.

            2. Open CLient

              Access to the cloud service should not require a particular platform or technology.

            3. Federated Identity

              In addition to basic the identity needed by an end user, an enterprise user is likely to have an identity with the enterprise. The ideal is that the enterprise user manages a single ID, with an infrastructure federating other identities that might be required by cloud services.

            4. Location Awareness

              Depending on the kind of data the enterprise is managing on the user's behalf, there might be legal restrictions on the location of the physical server where the data is stored. Although this violates the cloud computing ideal that the user should not have to know details of the physical infrastructure, this requirement is essential. Many applications cannot be moved to the cloud until cloud vendors provide an API for determining the location of the physical hardware that delivers the cloud service.

            5. Metering and Monitoring

              All cloud services must be metered and monitored for cost control, chargebacks and provisioning.

            6. Management and Governance

              Public cloud providers make it very easy to open an account and begin using cloud services; that ease of use creates the risk that individuals in an enterprise will use cloud services on their own initiative. Management of VMs and of cloud services such as storage, databases and message queues is needed to track what services are used. Governance is crucial to ensure that policies and government regulations are followed wherever cloud computing is used. Other governance requirements will be industry- and geography-specific.

            7. Security

              Any use case involving an enterprise will have more sophisticated security requirements than one involving a single end user. Similarly, the more advanced enterprise use cases to follow will have equally more advanced security requirements.

            8. Common File Format for VMs

              A VM created for one cloud vendor’s platform should be portable to another vendor’s platform. Any solution to this requirement must account for differences in the ways cloud vendors attach storage to virtual machines.

            9. Common APIs for Cloud Storage and Middleware

              The enterprise use cases require common APIs for access to cloud storage services, cloud databases, and other cloud middleware services such as message queues. Writing custom code that works only for a particular vendor’s cloud service locks the enterprise into that vendor’s system and eliminates some of the financial benefits and flexibility that cloud computing provides.

            10. Data and Application Federation

              Enterprise applications need to combine data from multiple cloud-based sources, and they need to coordinate the activities of applications running in different clouds.

            11. SLAs and Benchmarks

              In addition to the basic SLAs required by end users, enterprises who sign contracts based on SLAs will need a standard way of benchmarking performance. There must be an unambiguous way of defining what a cloud provider will deliver, and there must be an unambiguous way of measuring what was actually delivered.

            12. Lifecycle Management

              Enterprises must be able to manage the lifecycle of applications and documents. This requirement includes versioning of applications and the retention and destruction of data. Discovery is a major issue for many organizations. There are substantial legal liabilities if certain data is no longer available. In addition to data retention, in some cases an enterprise will want to make sure data is destroyed at some point.

          3. Enterprise to Cloud

            1. Federated Identity

              In addition to basic the identity needed by an end user, an enterprise user is likely to have an identity with the enterprise. The ideal is that the enterprise user manages a single ID, with an infrastructure federating other identities that might be required by cloud services.

            2. Open CLient

              Access to the cloud service should not require a particular platform or technology.

            3. Location Awareness

              Depending on the kind of data the enterprise is managing on the user's behalf, there might be legal restrictions on the location of the physical server where the data is stored. Although this violates the cloud computing ideal that the user should not have to know details of the physical infrastructure, this requirement is essential. Many applications cannot be moved to the cloud until cloud vendors provide an API for determining the location of the physical hardware that delivers the cloud service.

            4. Indentity

              The cloud service must authenticate the end user.

            5. Metering and Monitoring

              All cloud services must be metered and monitored for cost control, chargebacks and provisioning.

            6. Management and Governance

              Public cloud providers make it very easy to open an account and begin using cloud services; that ease of use creates the risk that individuals in an enterprise will use cloud services on their own initiative. Management of VMs and of cloud services such as storage, databases and message queues is needed to track what services are used. Governance is crucial to ensure that policies and government regulations are followed wherever cloud computing is used. Other governance requirements will be industry- and geography-specific.

            7. Security

              Any use case involving an enterprise will have more sophisticated security requirements than one involving a single end user. Similarly, the more advanced enterprise use cases to follow will have equally more advanced security requirements.

            8. Common File Format for VMs

              A VM created for one cloud vendor’s platform should be portable to another vendor’s platform. Any solution to this requirement must account for differences in the ways cloud vendors attach storage to virtual machines.

            9. Common APIs for Cloud Storage and Middleware

              The enterprise use cases require common APIs for access to cloud storage services, cloud databases, and other cloud middleware services such as message queues. Writing custom code that works only for a particular vendor’s cloud service locks the enterprise into that vendor’s system and eliminates some of the financial benefits and flexibility that cloud computing provides.

            10. Data and Application Federation

              Enterprise applications need to combine data from multiple cloud-based sources, and they need to coordinate the activities of applications running in different clouds.

            11. SLAs and Benchmarks

              In addition to the basic SLAs required by end users, enterprises who sign contracts based on SLAs will need a standard way of benchmarking performance. There must be an unambiguous way of defining what a cloud provider will deliver, and there must be an unambiguous way of measuring what was actually delivered.

            12. Lifecycle Management

              Enterprises must be able to manage the lifecycle of applications and documents. This requirement includes versioning of applications and the retention and destruction of data. Discovery is a major issue for many organizations. There are substantial legal liabilities if certain data is no longer available. In addition to data retention, in some cases an enterprise will want to make sure data is destroyed at some point.

            13. Deployment

              It should be simple to build a VM image and deploy it to the cloud as necessary. When that VM image is built, it should be possible to move that image from one cloud provider to another, compensating for the different mechanisms vendors have for attaching storage to VMs. Deployment of applications to the cloud should be straightforward as well.

            14. Industry-specific standards and protocols

              Many cloud computing solutions between enterprises will use existing standards such as RosettaNet or OAGIS. The applicable standards will vary from one application to the next and from one industry to the next.

          4. Enterprise to Cloud to Enterprise

            1. Federated Identity

              In addition to basic the identity needed by an end user, an enterprise user is likely to have an identity with the enterprise. The ideal is that the enterprise user manages a single ID, with an infrastructure federating other identities that might be required by cloud services.

            2. Open CLient

              Access to the cloud service should not require a particular platform or technology.

            3. Location Awareness

              Depending on the kind of data the enterprise is managing on the user's behalf, there might be legal restrictions on the location of the physical server where the data is stored. Although this violates the cloud computing ideal that the user should not have to know details of the physical infrastructure, this requirement is essential. Many applications cannot be moved to the cloud until cloud vendors provide an API for determining the location of the physical hardware that delivers the cloud service.

            4. Indentity

              The cloud service must authenticate the end user.

            5. Metering and Monitoring

              All cloud services must be metered and monitored for cost control, chargebacks and provisioning.

            6. Management and Governance

              Public cloud providers make it very easy to open an account and begin using cloud services; that ease of use creates the risk that individuals in an enterprise will use cloud services on their own initiative. Management of VMs and of cloud services such as storage, databases and message queues is needed to track what services are used. Governance is crucial to ensure that policies and government regulations are followed wherever cloud computing is used. Other governance requirements will be industry- and geography-specific.

            7. Security

              Any use case involving an enterprise will have more sophisticated security requirements than one involving a single end user. Similarly, the more advanced enterprise use cases to follow will have equally more advanced security requirements.

            8. Common File Format for VMs

              A VM created for one cloud vendor’s platform should be portable to another vendor’s platform. Any solution to this requirement must account for differences in the ways cloud vendors attach storage to virtual machines.

            9. Common APIs for Cloud Storage and Middleware

              The enterprise use cases require common APIs for access to cloud storage services, cloud databases, and other cloud middleware services such as message queues. Writing custom code that works only for a particular vendor’s cloud service locks the enterprise into that vendor’s system and eliminates some of the financial benefits and flexibility that cloud computing provides.

            10. Data and Application Federation

              Enterprise applications need to combine data from multiple cloud-based sources, and they need to coordinate the activities of applications running in different clouds.

            11. SLAs and Benchmarks

              In addition to the basic SLAs required by end users, enterprises who sign contracts based on SLAs will need a standard way of benchmarking performance. There must be an unambiguous way of defining what a cloud provider will deliver, and there must be an unambiguous way of measuring what was actually delivered.

            12. Lifecycle Management

              Enterprises must be able to manage the lifecycle of applications and documents. This requirement includes versioning of applications and the retention and destruction of data. Discovery is a major issue for many organizations. There are substantial legal liabilities if certain data is no longer available. In addition to data retention, in some cases an enterprise will want to make sure data is destroyed at some point.

            13. Deployment

              It should be simple to build a VM image and deploy it to the cloud as necessary. When that VM image is built, it should be possible to move that image from one cloud provider to another, compensating for the different mechanisms vendors have for attaching storage to VMs. Deployment of applications to the cloud should be straightforward as well.

            14. Industry-specific standards and protocols

              Many cloud computing solutions between enterprises will use existing standards such as RosettaNet or OAGIS. The applicable standards will vary from one application to the next and from one industry to the next.

            15. Transaction Concurrency

              For applications and data shared by different enterprises, transactions and concurrency are vital. If two enterprises are using the same cloud-hosted application, VM, middleware or storage, it's important that any changes made by either enterprise are done reliably.

            16. Interoperability

              Because more than one enterprise is involved, interoperability between the enterprises is essential.

          5. Private Cloud

            1. Open Client

            2. Metering & Monitoring

            3. Management & Governance

            4. Security

            5. Deployment

            6. Interoperability

            7. Common Vm Format

            8. SLAs

          6. Changing Cloud Vendors

            1. Open Client

            2. Location Awareness

            3. Security

            4. SLAs

            5. Common VM file format

            6. Common CLoud Storage API

            7. Common Cloud Middleware API

              This includes all of the operations supported by today’s cloud services, including cloud databases, cloud message queues and other middleware. APIs for connecting to, creating and dropping databases and tables. Cloud database vendors have enforced certain restrictions to make their products more elastic and to limit the possibility of queries against large data sets taking significant resources to process. For example, some cloud databases don't allow joins across tables, and some don't support a true database schema. Those restrictions are a major challenge to moving between cloud database vendors, especially for applications built on a true relational model. Other middleware services such as message queues are more similar, so finding common ground among them should be simpler.

            8. SaaS Vendor

              1. Industry-specific standards

            9. Changing Middleware VEndors

              1. Industry-specific standards

              2. Common Cloud Middleware APIs

            10. Changing Cloud Storage VEndors

              1. Common CLoud Storage API

            11. Changing VM host

              1. Common VM Format

          7. Hybrid Cloud

            1. Federated Identity

              In addition to basic the identity needed by an end user, an enterprise user is likely to have an identity with the enterprise. The ideal is that the enterprise user manages a single ID, with an infrastructure federating other identities that might be required by cloud services.

            2. Open CLient

              Access to the cloud service should not require a particular platform or technology.

            3. Location Awareness

              Depending on the kind of data the enterprise is managing on the user's behalf, there might be legal restrictions on the location of the physical server where the data is stored. Although this violates the cloud computing ideal that the user should not have to know details of the physical infrastructure, this requirement is essential. Many applications cannot be moved to the cloud until cloud vendors provide an API for determining the location of the physical hardware that delivers the cloud service.

            4. Indentity

              The cloud service must authenticate the end user.

            5. Metering and Monitoring

              All cloud services must be metered and monitored for cost control, chargebacks and provisioning.

            6. Management and Governance

              Public cloud providers make it very easy to open an account and begin using cloud services; that ease of use creates the risk that individuals in an enterprise will use cloud services on their own initiative. Management of VMs and of cloud services such as storage, databases and message queues is needed to track what services are used. Governance is crucial to ensure that policies and government regulations are followed wherever cloud computing is used. Other governance requirements will be industry- and geography-specific.

            7. Security

              Any use case involving an enterprise will have more sophisticated security requirements than one involving a single end user. Similarly, the more advanced enterprise use cases to follow will have equally more advanced security requirements.

            8. Common File Format for VMs

              A VM created for one cloud vendor’s platform should be portable to another vendor’s platform. Any solution to this requirement must account for differences in the ways cloud vendors attach storage to virtual machines.

            9. Common APIs for Cloud Storage and Middleware

              The enterprise use cases require common APIs for access to cloud storage services, cloud databases, and other cloud middleware services such as message queues. Writing custom code that works only for a particular vendor’s cloud service locks the enterprise into that vendor’s system and eliminates some of the financial benefits and flexibility that cloud computing provides.

            10. Data and Application Federation

              Enterprise applications need to combine data from multiple cloud-based sources, and they need to coordinate the activities of applications running in different clouds.

            11. SLAs and Benchmarks

              In addition to the basic SLAs required by end users, enterprises who sign contracts based on SLAs will need a standard way of benchmarking performance. There must be an unambiguous way of defining what a cloud provider will deliver, and there must be an unambiguous way of measuring what was actually delivered.

            12. Lifecycle Management

              Enterprises must be able to manage the lifecycle of applications and documents. This requirement includes versioning of applications and the retention and destruction of data. Discovery is a major issue for many organizations. There are substantial legal liabilities if certain data is no longer available. In addition to data retention, in some cases an enterprise will want to make sure data is destroyed at some point.

            13. Deployment

              It should be simple to build a VM image and deploy it to the cloud as necessary. When that VM image is built, it should be possible to move that image from one cloud provider to another, compensating for the different mechanisms vendors have for attaching storage to VMs. Deployment of applications to the cloud should be straightforward as well.

            14. Industry-specific standards and protocols

              Many cloud computing solutions between enterprises will use existing standards such as RosettaNet or OAGIS. The applicable standards will vary from one application to the next and from one industry to the next.

            15. Interoperability

              Because more than one enterprise is involved, interoperability between the enterprises is essential.

      2. Standards

        1. Taxonomy

          1. Across Cloud Services

            As cloud computing becomes more common, applications will likely use different types of cloud services. An application might use a cloud storage service, a cloud message queue, and manage (start/stop/monitor) virtual machines running in the cloud. Standards to define how these different services work together should provide value.

          2. Within Cloud Services

            As cloud computing becomes more common, applications will likely use different types of cloud services. An application might use a cloud storage service, a cloud message queue, and manage (start/stop/monitor) virtual machines running in the cloud. Standards to define how these different services work together should provide value.

          3. Between the Cloud and Enterprise

            Even as cloud computing emerges, enterprise architectures such as Java EE are not going away. Standards that define how an enterprise application communicates with resources such as a cloud database or a cloud message queue would enable those applications to use cloud services with little or no changes. Figuring out how to integrate cloud computing with existing architectures and development paradigms will be a major challenge for this group.

          4. Within an Enterprise

            Standards within an enterprise will be determined by requirements such as interoperability, auditability, security and management, and will build upon the standards that apply between enterprises and the cloud. The enterprise will interact with some combination of private, public and hybrid clouds.

        2. SOA

        3. Cloud Computing

        4. Enterprise Security

        5. Mobile handheld application development

        6. Virtualization

        7. API

          1. Levels

            1. The Wire

              At this level, the developer writes directly to the wire format of the request. If the service is REST-based, the developer creates the appropriate HTTP headers, creates the payload for the request, and opens an HTTP connection to the service. The REST service returns data with an accompanying HTTP response code. Because of the straightforward nature of many REST services, it is possible to be relatively efficient while writing code at this level. If the service is SOAP-based, the developer creates the SOAP envelope, adds the appropriate SOAP headers, and fills the body of the SOAP envelope with the data payload. The SOAP service responds with a SOAP envelope that contains the results of the request. Working with SOAP services requires parsing the XML content of the envelopes; for that reason, most SOAP services are invoked with a higher-level API.

            2. Language-specific Toolkits

              Developers at this level use a languagespecific toolkit to work with SOAP or REST requests. Although developers are still focused on the format and structure of the data going across the wire, many of the details (handling response codes and calculating signatures, for example) are handled by the toolkit.

            3. Service-specific Toolkit

              The developer uses a higher-level toolkit to work with a particular service. Working at this level, the developer is able to focus on business objects and business processes. A developer can be far more productive when focusing on the data and processes that matter to the organization instead of focusing on the wire protocol.

            4. Service-neutral Toolkit

              This is the highest level of API. A developer working at this level uses a common interface to multiple cloud computing providers. As with Level 3, the developer focuses on business objects and business processes. Unlike Level 3, a developer working at Level 4 does not have to worry about which cloud service they are working with. An application written with a service-neutral toolkit should be able to use a different cloud vendor (see Changing Cloud Vendors on page 27) with minimal changes to the code, if any.

          2. Categories

            1. Ordinary PRogramming

              The usual application programming interfaces in C#, PHP, Java, etc. There is nothing cloud-specific in this category.

            2. Deployment

              Programming interfaces to deploy applications to the cloud. In addition to any cloud-specific packaging technologies, this includes traditional packaging mechanisms such as .Net assemblies and EAR/WAR files.

            3. Cloud Services

              Programming interfaces that work with cloud services. As discussed in the previous section, cloud service APIs can be either service-specific or service-neutral. These APIs are divided into subcategories for cloud storage services, cloud databases, cloud message queues, and other cloud services. A developer writing code using cloud services APIs is aware that they are using the cloud.

            4. Image and Infrastructure Management

              Programming interfaces to manage virtual machine images and infrastructure details. APIs for images support uploading, deploying starting, stopping, restarting, and deleting images. Infrastructure management APIs control details such as firewalls, node management, network management and load balancing.

            5. Internal Interfaces

              Programming interfaces for the internal interfaces between the different parts of a cloud infrastructure. These are the APIs you would use if you wanted to change vendors for the storage layer in your cloud architecture.

        8. Security Controls

          1. Cryptography: Key and Certificate Managemnt

            KMIP, the OASIS Key Management Interoperability Protocol (http://www.oasis-open.org/committees/kmip/)

          2. Data/Storage Security

            It must be possible to store data in an encrypted format. In addition, some consumers will need their data to be stored separately from other consumers' data.

          3. Identity, Roles, Access Control and Attributes

            SAML, the OASIS Security Assertion Markup Language (http://saml.xml.org/) X.509 Certificates, part of the ITU Public Key and Attribute Certificate Frameworks Recommendations (http://www.itu.int/rec/T-REC-X.509)

          4. Security Policies

            XACML, the OASIS eXtensible Access Control Markup Language (http://www.oasis-open.org/committees/xacml/)

          5. Workload and Service Management

            SPML, the OASIS Service Provisioning Markup Language (http://www.oasis-open.org/committees/provision/)

      3. Interoperability

        http://code.google.com/p/cloud-interop/

        1. Storage

          1. ThriftStore

          2. PySector

          3. SectorJNI

        2. Compute

          1. Sector File System for Hadoop

          2. PySphere

      4. Additional Guidance

        1. NIF Guidance

        2. Specialized Frameworks Guidance

          1. Application capability

          2. Community of Interest capability

          3. Integration capability

          4. Communications capability

          5. Information capability

          6. Information assurance capability

          7. System and network control capability

        3. Expert advice

          1. Lessons Learned

            1. SOA is foundational

            2. Match cloud deployment & delivery model

            3. Standards are nacent & evolving

            4. Mobile devices are critical application entry point

            5. Appropriate cloud service identification required for sucessful business model

            6. Cloud Computing not appropriate for all applications

            7. Pay attention to business and culture in security model

            8. Standard enterprise architecture, security and implementation still required

          2. Constraints

            1. Real-time access to data and cloud services

            2. Real-time dynamic brokers

            3. Certification and accreditqation

            4. Federated cloud architectures

            5. Legal & Cultural issures

        4. Related Patterns

          1. Published

            1. Legacy Services Capability Pattern

            2. Disconnected, Intermittent, Limited (DIL) Communications Management Pattern

            3. Design Phase Service Integration

            4. All Hazards Alert and Warning

            5. Secure Formatted Information Exchange Gateway

            6. Core Network Access

            7. Space, Air, Ground, Maritime Mobile Networks

            8. Information Dissemination and Shared Database

          2. Proposed/Required/Under Discussion

      5. Known Uses

      6. Potential Capability

      7. References

        • Federal Cloud Computing Initiative wiki: http://federalcloudcomputing.wik.is/ • Software as a Service, Using Cloud Computing to Achieve Business Agility : 2009-05-01, ISBN: 0595382479, Greer, Melvin B • NCOIC Cloud Computing Working Group: https://www.ncoic.org/home/ Cloud Computing Use Cases A white paper produced by the Cloud Computing Use Case Discussion Group Version 3.0 2 February 2010

    4. Verification

      1. Terms

      2. Approaches

        1. A certificate under the hand of a responsible officer of the certifying organization that claims verification for all requirements (as a whole) 2. A certificate under the hand of a responsible officer of the certifying organization that it has verification with each requirement 3. Objective Evidence that confirms that the certifying organization has validated verification with each requirement. This may be a freeform report or preferably one in the approved NCOIC format 4. A test specification describing how verification will be tested for each specified behaviors 5. A full and approved Verification & Validation Program involving tracing of requirements from inception to delivery through, design, manufacture and testing 6. An approved test – an exchange with a Majjic participant with an official report from the participant confirming the success of the experiment. – an already certified building block with an official report from the participant confirming the success of the experiment. – former and next Majjic experiments participation with an official Majjic/NATO or nation report confirming the success of the experiment.

      3. Meeting Requirements

        The requirements fall into three categories 1. Those requiring the presence of a function. 2. Those requiring conformance to a standard called out within this pattern. 3. Those requiring conformance to a measurable behaviour specified within this pattern. In the case of 2) and 3) there will be provided either in the standard or within this pattern • A definition of an externally observable metric or indicator for the behaviour. • An unambiguous specification of what the range of values of the metric or indicator must be to be considered conformant. Conformance can only be claimed if each and every requirement imposed or selected above in Paragraph _____ has been addressed, either by examination or inspection. It is noted that conformance evidenced at a higher level of the steps specified in Paragraph 3.2 will create more confidence in customers than that at a lower level. NCOIC reserve the right to demand that the level of conformance be declared publicly, whenever conformance is so declared.

      4. Building Block Conformance Requirements

    1. Topic

    2. Floating Topic

  • All Comments ( 1 )
    strategicorganizer said at 2010-08-10 18:52:44
    Thank you so much for sharing this X Mind Hybrid Cloud Computing Pattern. Excellent! Lori Henely

    Hybrid Cloud Computing Pattern

    Added: 2010-03-03 12:36:02

    From: kvjacksn (Joined 2010-02-14 20:10:07)

    318 views |110 downloads

    Hybrid Cloud Computing Pattern

    More From: kvjacksn

    Cloud Computing 101
    Cloud Computing 101
    2010-08-20 14:32:36|99 views
    Cloud Computing Training
    Cloud Computing Training
    2010-07-15 23:07:20|767 views
    CC SCOPE Model
    CC SCOPE Model
    2010-04-08 22:01:33|90 views
    Hybrid Cloud Computing Pattern
    Hybrid Cloud Computing Pattern
    2010-03-03 12:36:02|318 views