Cloud computing fundamentals
Cloud computing is a comprehensive solution that delivers IT as a service. It is an Internet-based computing solution where shared resources are provided like electricity distributed on the electrical grid. Computers in the cloud are configured to work together and the various applications use the collective computing power as if they are running on a single system.
The flexibility of cloud computing is a function of the allocation of resources on demand. This facilitates the use of the system's cumulative resources, negating the need to assign specific hardware to a task. Before cloud computing, websites and server-based applications were executed on a specific system. With the advent of cloud computing, resources are used as an aggregated virtual computer. This amalgamated configuration provides an environment where applications execute independently without regard for any particular configuration.
There are valid and significant business and IT reasons for the cloud computing paradigm shift. The fundamentals of outsourcing as a solution apply.
- Reduced cost: Cloud computing can reduce both capital expense (CapEx) and operating expense (OpEx) costs because resources are only acquired when needed and are only paid for when used.
- Refined usage of personnel: Using cloud computing frees valuable personnel allowing them to focus on delivering value rather than maintaining hardware and software.
- Robust scalability: Cloud computing allows for immediate scaling, either up or down, at any time without long-term commitment.
The cloud computing model is comprised of a front end and a back end. These two elements are connected through a network, in most cases the Internet. The front end is the vehicle by which the user interacts with the system; the back end is the cloud itself. The front end is composed of a client computer, or the computer network of an enterprise, and the applications used to access the cloud. The back end provides the applications, computers, servers, and data storage that creates the cloud of services.
The cloud concept is built on layers, each providing a distinct level of functionality. This stratification of the cloud's components has provided a means for the layers of cloud computing to becoming a commodity just like electricity, telephone service, or natural gas. The commodity that cloud computing sells is computing power at a lower cost and expense to the user. Cloud computing is poised to become the next mega-utility service.
The virtual machine monitor (VMM) provides the means for simultaneous use of cloud facilities (see Figure 1). VMM is a program on a host system that lets one computer support multiple, identical execution environments. From the user's point of view, the system is a self-contained computer which is isolated from other users. In reality, every user is being served by the same machine. A virtual machine is one operating system (OS) that is being managed by an underlying control program allowing it to appear to be multiple operating systems. In cloud computing, VMM allows users to monitor and thus manage aspects of the process such as data access, data storage, encryption, addressing, topology, and workload movement.
These are the layers the cloud provides:
The infrastructure layer is the foundation of the cloud. It consists of the physical assets — servers, network devices, storage disks, etc. Infrastructure as a Service (IaaS) has providers such as the IBM® Cloud. Using IaaS you don’t actually control the underlying infrastructure, but you do have control of the operating systems, storage, deployment applications, and, to a limited degree, control over select networking components.
Print On Demand (POD) services are an example of organizations that can benefit from IaaS. The POD model is based on the selling of customizable products. PODs allow individuals to open shops and sell designs on products. Shopkeepers can upload as many or as few designs as they can create. Many upload thousands. With cloud storage capabilities, a POD can provide unlimited storage space.
The middle layer is the platform. It provides the application infrastructure. Platform as a Service (PaaS) provides access to operating systems and associated services. It provides a way to deploy applications to the cloud using programming languages and tools supported by the provider. You do not have to manage or control the underlying infrastructure, but you do have control over the deployed applications and, to some degree over application hosting environment configurations.
PaaS has providers such as Amazon's Elastic Compute Cloud (EC2). The small entrepreneur software house is an ideal enterprise for PaaS. With the elaborated platform, world-class products can be created without the overhead of in-house production.
- The top layer is the application layer, the layer most visualize as the cloud. Applications run here and are provided on demand to users. Software as a Service (SaaS) has providers such as Google Pack. Google Pack includes Internet accessible applications, tools such as Calendar, Gmail, Google Talk, Docs, and many more.
Figure 2 shows these layers.
There are three types of cloud formations: private (on premise), public, and hybrid.
- Public clouds are available to the general public or a large industry group and are owned and provisioned by an organization selling cloud services. A public cloud is what is thought of as the cloud in the usual sense; that is, resources dynamically provisioned over the Internet using web applications from an off-site third-party provider that supplies shared resources and bills on a utility computing basis.
- Private clouds exist within your company's firewall and are managed by your organization. They are cloud services you create and control within your enterprise. Private clouds offer many of the same benefits as the public clouds — the major distinction being that your organization is in charge of setting up and maintaining the cloud.
- Hybrid clouds are a combination of the public and the private cloud using services that are in both the public and private space. Management responsibilities are divided between the public cloud provider and the business itself. Using a hybrid cloud, organizations can determine the objectives and requirements of the services to be created and obtain them based on the most suitable alternative.
Let us consider the probability that management and administration will require greater automation, requiring a change in the tasks of personnel responsible for scripting due to the growth in code production. You see, IT may be consolidating, with a need for less hardware and software implementation, but it is also creating new formations. The shift in IT is toward the knowledge worker. In the new paradigm, the technical human assets will have greater responsibilities for enhancing and upgrading general business processes.
The growing use of mobile devices, the popularity of social networking, and other aspects of the evolution of commercial IT processes and systems, will guarantee work for the developer community; however, some of the traditional roles of development personnel will be shifted away from the enterprise's developers due to the systemic and systematic processes of the cloud configuration model.
A recent survey by IBM, New developerWorks survey shows dominance of cloud computing and mobile application development (see Resources) demonstrated that the demand for mobile technology will grow exponentially. This development, along with the rapid acceptance of cloud computing across the globe, will necessitate a radical increase of developers with an understanding of this area. To meet the growing needs of mobile connectivity, more developers will be required who understand how cloud computing works.
Cloud computing provides an almost unlimited capacity, eliminating scalability concerns. Cloud computing gives developers access to software and hardware assets that most small and mid-sized enterprises could not afford. Developers, using Internet-driven cloud computing and the assets that are a consequence of this configuration, will have access to resources that most could have only dreamed of in the recent past.
Administrators are the guardians and legislators of an IT system. They are responsible for the control of user access to the network. This means sitting on top of the creation of user passwords and the formulation of rules and procedures for such fundamental functionality as general access to the system assets. The advent of cloud computing will necessitate adjustments to this process since the administrator in such an environment is no longer merely concerned about internal matters, but also the external relationship of his enterprise and the cloud computing concern, as well as the actions of other tenants in a public cloud.
This alters the role of the firewall constructs put in place by the administration and the nature of the general security procedures of the enterprise. It does not negate the need for the guardian of the system. With cloud computing comes even greater responsibility, not less. Under cloud computing, the administrator must not only ensure data and systems internal to the organization, they must also monitor and manage the cloud to ensure the safety of their system and data everywhere.
The function of the architecture is the effective modeling of the given system's functionality in the real IT world. The basic responsibility of the architect is development of the architectural framework of the agency's cloud computing model. The architecture of cloud computing is essentially comprised of the abstraction of the three layer constructs, IaaS, PaaS, and SaaS, in such a way that the particular enterprise deploying the cloud computing approach meets its stated goals and objectives. The abstraction of the functionality of the layers is developed so the decision-makers and the foot soldiers can use the abstraction to plan, execute, and evaluate the efficacy of the IT system's procedures and processes.
The role of the architect in the age of cloud computing is to conceive and model a functional interaction of the cloud's layers. The architect must use the abstraction as a means to ensure that IT is playing its proper role in the attainment of organizational objectives.
The main concerns voiced by those moving to the cloud are security and privacy. The companies supplying cloud computing services know this and understand that without reliable security, their businesses will collapse. So security and privacy are high priorities for all cloud computing entities.
Governance is the primary responsibility of the owner of a private cloud and the shared responsibility of the service provider and service consumer in the public cloud. However, given elements such as transnational terrorism, denial of service, viruses, worms and the like — which do or could have aspects beyond the control of either the private cloud owner or public cloud service provider and service consumer — there is a need for some kind of broader collaboration, particularly on the global, regional, and national levels. Of course, this collaboration has to be instituted in a manner that will not dilute or otherwise harm the control of the owner of the process or subscribers in the case of the public cloud.
If you are going to adopt the cloud framework, bandwidth and the potential bandwidth bottleneck must be evaluated in your strategy. In the CIO.com article: The Skinny Straw: Cloud Computing's Bottleneck and How to Address It, the following statement is made:
Virtualization implementers found that the key bottleneck to virtual machine density is memory capacity; now there's a whole new slew of servers coming out with much larger memory footprints, removing memory as a system bottleneck. Cloud computing negates that bottleneck by removing the issue of machine density from the equation—sorting that out becomes the responsibility of the cloud provider, freeing the cloud user from worrying about it.
For cloud computing, bandwidth to and from the cloud provider is a bottleneck.
So what is the best current solution for the bandwidth issue? In today's market the best answer is the blade server. A blade server is a server that has been optimized to minimize the use of physical space and energy. One of the huge advantages of the blade server for cloud computing use is bandwidth speed improvement. For example, the IBM BladeCenter is designed to accelerate the high-performance computing workloads both quickly and efficiently. Just as the memory issue had to be overcome to effectively alleviate the bottleneck of virtual high machine density, the bottleneck of cloud computing bandwidth must also be overcome, so look to the capabilities of your provider to determine if the bandwidth bottleneck will be a major performance issue.
Because a sizable proportion of the cost in IT operations comes from administrative and management functions, the implicit automation of some of these functions will per se cut costs in a cloud computing environment. Automation can reduce the error factor and the cost of the redundancy of manual repetition significantly.
There are other contributors to financial problems such as the cost of maintaining physical facilities, electrical power usage, cooling systems, and of course administration and management factors. As you can see, bandwidth is not alone, by any means.
Consider these possible risks:
- Adverse impact of mishandling of data.
- Unwarranted service charges.
- Financial or legal problems of vendor.
- Vendor operational problems or shutdowns.
- Data recovery and confidentiality problems.
- General security concerns.
- Systems attacks by external forces.
With the use of systems in the cloud, there is the ever present risk of data security, connectivity, and malicious actions interfering with the computing processes. However, with a carefully thought out plan and methodology of selecting the service provider, and an astute perspective on general risk management, most companies can safely leverage this technology.
In this revolutionary new era, cloud computing can provide organizations with the means and methods needed to ensure financial stability and high quality service. Of course, there must be global cooperation if the cloud computing process is to attain optimal security and general operational standards.