Several aspects of selecting a cloud architecture Levels of cloud architecture Issues in providing compute services Issues in providing storage services Considerations for network services Cloud operations management Service layers and adapting IT operations to infrastructures
Levels of Cloud ArchitectureCloud architectures can be thought of in terms oflayers of services in which each layer depends onservices provided by the next lower layer.As with other layered models of abstraction insoftware engineering, layers in a cloud control thepotential complexity of cloud design by following afew basic principles: Let us have a look on it…
Services are provided as logical abstractions that hideimplementation details.When a program needs to allocate additional storage,for example, it makes a call to a storage servicerequesting a particular amount of space.There is no need to delve into details about directorystructures, files systems, or disk configurations.
Services are isolated to appropriate layers in thearchitecture.An application programming interface (API) for storageallocation may make calls to additional services that arenot available outside of the storage system.For example, when allocating new storage, an APIprocedure might call an isolated procedure to add theallocated disk blocks to a list of blocks that are replicatedto storage devices for backup and performance reasons.
Services are provided at a functional level appropriateto the users or services that consume the services.The higher up the stack of services we go, thebroader and more business oriented the services.Although lower‐level services might operate onstorage blocks, upper level services might initiatebusiness process workflows.
Three coarse‐grained levels of services in a cloudarchitecture:Virtualization of resourcesServices layerServer management processes
Virtualization of ResourcesThe ability to hide implementation details withoutadversely affecting services is essential to providingcloud computing.Virtualization is especially important for efficientlyusing computing and storage infrastructure.
Logical Units of Computing ResourcesBy decoupling how we allocate computing resourcesfrom the underlying hardware that provides thoseresources, we gain flexibility in managing how weconsume compute services and manage them.
Hardware IndependenceAnother advantage of virtualization for cloud serviceproviders is hardware independence.Cloud consumers can allocate the level of computingresources they need without having to worry aboutwhether a particular physical server is a 2, 4, or 8 coreserver.
Services LayerThe services layer is another common characteristicof cloud architectures. At this level, we work with notjust virtualized hardware but also operating system(OS) and application services.
For business users of cloud services, the services layercan provide additional benefits.
OSs of course are included in the virtual machine images,but other services might be independent of virtualmachine instances.Persistent storage services, such as block storage andrelational database services, might be available as servicesavailable to all virtual machine instances running in thecloud.Higher‐level services, such as application servers, portals,and workflow engines, might be embedded within virtualmachine instances along with other software stackcomponents.
At the highest levels, business applications such asCRMs and ERPs may be provided as Web applicationsthat run in the cloud.At this level, service consumers are completelydivorced from implementation details and are solelyconcerned with business‐related functionality.
Service Management Processes A third major aspect of cloud architectures are the service management processes that support the delivery of services. These include: Virtual machine image management Image deployment Job scheduling Usage accounting Management reporting
Failover and RedundancyClouds are inherently redundant. If a physical serverfails for any reason, it can be removed from the poolof available resources. Virtual machine images are deployed to otherphysical servers until the failure is corrected. This typeof failover and redundancy is at the server level, notthe application level.
If a physical server were to fail while an applicationwere running on it, recovery would depend on theapplication.For example, if the application provided statelessWeb services, it could be restarted on another virtualmachine instance on another physical server and startresponding to service requests again.
In cases where the application writes stateinformation to persistent storage and checks for priorexecution information each time the applicationstarts, the application could also recover fairlyrobustly on another virtual machine.
Cloud service consumers can use reports detailing forNumber of virtual servers allocated to a job and the timethe servers ranPeak and average utilization rates of serversAmount of data stored persistentlyAmount of data transferred across the networkCharges for compute, storage, and network servicesDetailed utilization information will help business processowners optimize their applications.
Providing computing services in a private or hybridcloud requires a combination of hardware,virtualization management and deployment systems,a server configuration that supports failover andredundancy, as well as robust management reporting.
Providing Storage ServicesIf a business moves forward with providing privatecloud computing services, it will have to providestorage services as well. This would require additionalsupport services:Storage virtualizationBackup or other redundant storageDisaster recovery
Storage VirtualizationStorage virtualization, like server virtualization,abstracts the services provided by hardware.Consumers of these services can allocate resourceswithout concern for implementation details.
One of the advantages of virtualized storage is theability to provide large amounts of storage through asingle logical device—the storage cloud. Behind thescenes, of course, we have multiple disk arrayspossibly located in different facilities.This setup creates an opportunity to replicate dataacross multiple storage arrays to improve reliabilityand performance.
Reliability is preserved because multiple copies of data areavailable.If a storage device should fail, there is no need to restorefrom backup tape; the data is immediately available fromanother device.Replication can be done asynchronously so that I/Ooperations return as soon as data is written to the primarystorage device. A background replication process can addnew or changed blocks to a queue of blocks that will becopied to devices.
Backups and Cloud StorageBackup services are generally specified in terms ofrecovery point objectives (RPOs) and recovery timeobjectives (RTOs).An RPO defines points of time in history that can berestored; examples include previous day at midnight,previous end of week, or in the case of highly volatiledatabases, a previous time in the same day.RTOs define the maximum period of time between requestof a restore operation and the time the restore operationcompletes.
Management Reporting for Storage Virtualization Businesses that deploy shared disk arrays will probably have a storage reporting system in place that provides much of the needed functionality: Reporting on storage used by project, department, or other billable unit Cost of storage by type, such as primary storage versus archival storage Trending reports on growth in storage use
Network Services for Cloud ComputingNetworking can be the most resource constrainedpart of cloud infrastructure.Public cloud providers are necessarily dependent onpublic Internet providers for connectivity betweentheir data centers and their customers.
The key issues we must consider when evaluatingdifferent cloud architecture options are:CapacityRedundancyManagement reporting
CapacityNetwork capacity limits the amount of data that canmove between data centers and between cloudservice consumers and the cloud. This directly affectsa number of services within the cloud.
Redundancy in the NetworkBoth computing and storage services in the cloud useredundancy to mitigate the risk of failures.When servers fail, they are removed from the pool ofavailable resources.When storage devices fail, data is retrieved fromanother device with a redundant copy of the data.Network services require similar redundancy to avoida single point of failure.
Management ReportingCloud service users will be interested in network usereporting as a means to control costs and to monitortrends in network usage.