Describe the hardware, software and network architectural design of the infrastructure used to build cloud computing infrastructures.
Cloud computing is a computing model that depends on sharing computing resources as opposed to having local servers handling applications. Cloud computing involves delivering services that have been hosted over the internet. Such services can be classified into three main categories:
- Platform-as-a-Service (PaaS)
- Software-as-a-Service (SaaS)
- Infrastructure-as-a-Service (IaaS)
The following is the architectural design of a cloud computing infrastructure. It involves software and hardware designed by a particular cloud architect. Cloud computing involves a large number of cloud components communicating with each other over various application programming interfaces (APIs), usually as web services. The cloud computing architectural design extends to the client, from which point web browsers and/or software applications access the cloud application. This could be from a phone or computer as shown in the diagram.The cloud’s storage architecture is usually loosely coupled. This allows the data nodes to scale well, each autonomously delivering data to users or applications.The public cloud computing environment could be Google App Engine, Amazon EC2 or Microsoft Azure.
Through cloud computing, the application is made available remotely to various users, i.e. laptops, tablets, desktops and phones.
Compare and contrast scalability, disaster recovery, benefits and opportunities when using cloud-based computing environments versus non-cloud-based computing environments
Benefits of cloud-computing
Reduce Infrastructure Costs: Transferring resources into the cloud delivers a huge bottom-line reduction in a company’s capital expenditure. The amount of capital the company spends on computing hardware is tremendously reduced. Moreover, the company doesn’t need to power, manage or maintain physical servers’ on-premises. These cost savings can be a huge relief to a company’s budget, especially in difficult economic conditions.
However, a none-cloud-based system requires a large number of expensive infrastructures.
Server Consolidation:
Cloud computing enables server consolidation through virtualization. A single server could be used in a situation that would have required more servers. The benefits of server consolidation include less hardware to manage and a reduced risk of service interruption as a result of hardware failure.
Moreover, server consolidation also helps reduce the electricity bill, a frequently overlooked cost. Decreasing the number of actual CPUs in the datacenter can greatly reduce the electricity bill.
Cloud computing also enables easy transfer of virtual workloads across various physical resources. This offsets the risk associated with consolidating services
Redundancy and Reliability:
In order to stay competitive, companies have to ensure that their technology systems meet the needs of their clients. However, these complex systems will encounter instability at some point. Such instability could be due to hardware failures, network connection drops or the datacenter going down in severe weather conditions, and is very common with non-cloud-based systems.
Cloud computing, through virtualization gives companies a high level of flexibility to enable them to quickly respond to these demands. Critical systems are autonomously contained within their virtualized environment, so that they can easily be replicated to numerous physical locations or migrated to new hardware any time. This gives companies an increased reliability by eliminating failure points. It also improves their disaster recovery planning efforts.
Disaster Recovery:
Disaster recovery is a huge component for IT, as system crashes can create colossal economic losses. Through virtualization, a virtual image of a machine can be instantly re-imaged on another well functioning server if a machine failure occurs.
Reducing Complexity: Cloud computing tremendously reduces the number of physical servers you have to manage every day, and also facilitates the management of the remaining servers. Companies can easily support operational insight into the status of their servers by centralizing their servers.
In non-cloud based environments, the number of physical servers is numerous, thus server management and troubleshooting is very difficult.
Scalability:
This is the ability to service a large number of users simultaneously. This means that at a full capacity, the system can handle that many users without failure to any individual user or without crashing as a whole due to resource exhaustion.
Cloud computing allows companies to comfortably upscale or downscale their IT requirements as and when required. For instance, most public cloud service providers will allow you to accommodate increased business needs or changes by increasing your resources. This supports business growth without expensive changes to the existing IT systems.
Characteristics of scalable services include:
- An increase in the resources results in a proportionally large increase in performance
- Scalable services are resilient, and have disaster and error recovery capabilities
- Scalable services are usually capable of handling heterogeneity
- Scalable services become more cost effective as they grow in size and complexity
- Scalable services are operationally effective and efficient
Analyze hardware virtualizations (virtual machines, virtual desktops and virtual networks) as used by most cloud computing environments
Network Virtualization:
This is the process of combining software and hardware network resources and network usage into one software-based administrative entity called a virtual network. Network virtualization includes platform virtualization and resource virtualization.
Network virtualization can either be internal or external. External network virtualization combines several networks or portions of networks into a virtual unit, while internal network virtualization provides network-like capabilities to the software containers on a specific system.
Network virtualization is one of the main building blocks of multi-tenant cloud hosting. Network virtualization technology compliments server hypervisors by allowing seamless workload mobility regardless of the underlying protocol choices and network addressing.
Desktop virtualization:
This is a virtualization technology used to abstract a computer’s desktop environment from the actual physical computer. Desktop virtualization is considered a form of client-server computing model since the "virtualized" desktop is contained on a centralized and/or remote server and not the actual physical machine being virtualized.
The virtual desktop environments are normally served to users on a network. A user on the network interacts with the virtual desktop in the same way he/she uses a physical desktop. Desktop virtualization lets users log in remotely to their desktops from any given location.One popular technique of desktop virtualization is the Virtual Desktop Infrastructure (VDI). Virtual Desktop Infrastructure uses the server computing model, and the desktop virtualization is enabled through software and hardware. Virtual Desktop Infrastructure hosts the actual desktop environment in a virtual machine (VM) that runs on a centralized and/or remote server.
Machine virtualization:
This is the partitioning of a physical machine into smaller virtual machines to maximize the server/machine resources. The resources of the server are abstracted from the users, and software is used to divide the physical machine into multiple virtual environments, called virtual machines.
There are 3 main categories of virtual machine architectures:
Hypervisor Architecture
The hypervisor is also called the Virtual Machine Monitor (VMM), and supports hardware-level virtualization on devices like the disk, network interfaces, memory and CPU. The hypervisor software sits directly between the OS and the physical hardware
Host-Based Virtualization
This is where a virtualization layer is installed on top of the host OS. The host OS is still responsible for managing the hardware. The guest OS is installed and run on the virtualization layer. Dedicated applications are run on the virtual machines while some other applications run directly on the host OS.
Para-Virtualization
A para-virtualized virtual machine provides particular APIs that require substantial OS modifications in user applications.
Determine if you would prefer a virtualized environment to a none-virtualized environment for a midsized organization. Explain why or why not
Yes, I would prefer a virtualized environment to a none-virtualized environment for a mid-sized organization.
A virtualized environment helps reduce IT expenses while boosting both agility and efficiency and agility. This holds true for large, small and midsized businesses. A good example of a virtualized environment is VMware, which lets users perform the following:
- Speed and simplify IT maintenance and the deployment of new applications
- Run multiple OS (operating systems) and applications on a particular computer
- Save tremendously on overall IT costs
- Consolidate hardware to achieve a higher productivity from fewer servers
Compare the cloud computing cost models used by Microsoft Azure and Amazon EC2
Microsoft Windows Azure cloud and Amazon's EC2 (Elastic Compute) Cloud handle two very different cloud computing technology problems.
Microsoft Windows Azure cloud environment is a platform-as-a-service, and gives developers the mechanisms and tools they need to create and deploy web applications, while Amazon EC2 is majorly an infrastructure-as-a-service cloud environment that offers on-demand access to virtual machine instances that are completely customizable.
Amazon EC2 Pricing:
For Amazon Web Services (AWS), the clients only pay for what they use. No minimum fee is charged. Clients can also estimate their monthly bill using a special tool called AWS Simple Monthly Calculator. However, the prices listed by the calculator are based on the region where the instance is running.
As part of Amazon Web Services’ Free Usage Tier, new clients can get started on Amazon EC2 for free. On sign-up, new clients receive the following services every month for one year:
- 30 GB Amazon EBS Standard volume storage, with 2 million IOs and 1 GB snapshot storage
- 750 hours of EC2 running RHEL or Linux/UNIX Micro instance usage
- 750 hours of EC2 running Microsoft Windows Server Micro instance usage
- 1 GB Regional Data Transfer
- 750 hours of Elastic Load Balancing with 15 GB data processing
- 15 GB of bandwidth out aggregated across all AWS services
Microsoft Windows Azure Pricing:
Microsoft Windows Azure charges for Virtual Machines by the minute. Prices are given as hourly rates and billed based on the total number of minutes when the client’s Virtual Machines runs for a partial hour. The prices also include Windows Server licensing costs.
For standard instances with shared virtual cores and RAM (Random Access Memory) of 768MB, the price is $0.02 per hour.
Choose the cloud computing cost model that you would use for a public cloud solution and support your selection
My selection: Amazon EC2
This is because in Amazon EC2 I would literally only pay for what I use, as opposed to Microsoft Azure, where I would be charged based on the time my Virtual Machines run for.
If I have a small project that won’t consume numerous resources, I would only get to pay for exactly what the application consumes, regardless of how long my Virtual Machines run for.
Moreover, with Amazon EC2, I would be entitled to free usage for a period of one year.
References
Tilley, S. R., Parveen, T., & IGI Global. (2013). Software testing in the cloud: Perspectives on an emerging discipline. Hershey, Pa: IGI Global (701 E. Chocolate Avenue, Hershey, Pennsylvania, 17033, USA
Jamsa, K. (2013). Cloud computing: SaaS, PaaS, IaaS, virtualization, business models, mobile, security and more. Burlington, MA: Jones & Bartlett Learning.
Hwang, K., Fox, G. C., & Dongarra, J. J. (2012). Distributed and cloud computing: From parallel processing to the Internet of things. Amsterdam: Morgan Kaufmann.
.