Introduction
Cloud computing is an emerging trend in computing. In this computing model, users can access their computing resources via the internet on demand. The underlying principle is that users of computing resources only need to use the application rather than have the application installed on their personal computers. Cloud computing emphasizes on simplicity in a manner that the user does not have to understand the underlying complexity during the delivery of application services over the internet (Blokdijk & Ivanka, 2009).
The development of the internet is one of the key driving factors behind the improvement of the cloud-computing model, since internet forms the platform under which the cloud-computing model relies on. An important concept associated with cloud computing is the concept of abstraction, whereby developers of cloud applications and the end users have a simplified view of the cloud service and ignores the underlying complexity behind the implementation of cloud computing architecture. This essay provides an overview of the cloud-computing model by outlining the various cloud computing concepts and their relevance in the present computing platform, alternatives to cloud computing, and possible future trends in cloud computing.
Basics of cloud computing
Cloud computing uses the internet as a platform for service delivery and storage of online applications. When a user/client attempts to access the internet/ cloud, they do not have to necessarily log on to a web server, they instead log on to the web service that is in charge of handling all their requests, and execution of script commands if available (Blokdijk & Ivanka, 2009). A simple instance of cloud computing is the mail service, whereby a user does not need to have a mail application to access his mails, all the user needs is a web application to facilitate the whole process. Applications that can access the internet such as web browsers form an integral part of the cloud-computing concept (Marks & Lozano, 2009).
Clouding computing is a computing concept whereby the end user does not need to have the knowledge of the application and the online storage services. Users only need to use the service when they want to, without having to understand the underlying complexity involved in the delivery of the service and or application. An important aspect of cloud computing is scalability, which means that resources are made available to the users depending on their requirements. In addition, cloud computing emphasizes on the idea of virtualization whereby the consumption and delivery of resources and applications base on internet protocols. The internet facilitates ease of access to web-based applications, as a result, fostering the development of cloud computing (Ahson, 2009).
According to the National Institute of Standards and Technology, the cloud computing strategy to computing provides a framework that enables convenient and facilitates access to online resources such as storage services, applications, and networks using an on-demand strategy (Gillam, 2010).
One of the most outstanding characteristic of cloud computing is that all the computing process occurs over the internet, referred to as “the cloud” in this context. The application and their respective data are not specified to the user, and access to them is not static, implying that users only need to have an internet connection to access the software and the data in the cloud. Cloud computing typically integrates elements of other computing methodologies such as grid computing, utility computing, service-oriented computing, and autonomic computing (Gillam, 2010).
Cloud computing architecture
The framework of cloud computing involves multiple computers over the internet communication using via Application Programming Interfaces (API), examples of API that cloud computing uses are the web services and the three-tier architecture. These components of cloud computing element facilitate the delivery of services and applications over the internet when a user demands to use. In addition, cloud computing advocates for universality of the cloud applications. As a result, there is ease in controlling complexity, making the system more manageable in comparison with monolithic application architecture.
The two common elements that make the cloud computing architecture are the front end and the back end. The back end of the cloud-computing model represents the data, software, and services available in the cloud; implying that the back end comprises on the servers and online storage devices. On the other hand, the front end represents the elements that the user can access. This includes the user’s network and the applications that make it possible for the client to access the internet/ cloud.
Many of the cloud computing IT architecture comprises of data, applications, and services that are delivered through cloud computing data centers, which serve as access points for the clients of the system. The provision of resources and services usually differ depending on the computing needs of the users (Gillam, 2010).
Significant characteristics of the cloud-computing model
One of the most outstanding characteristics associated with cloud computing is scalability. Scalability implies that the provision of services under the cloud-computing model depends on the user’s computing requirements. Moreover, cloud computing fosters the concept of self-service that bases on a real-time strategy, whereby users do have to adjust their peak loads on a constant basis. This means that users do not face the burden of management issues (Ahson, 2009).
The second important aspect of cloud computing is that it is independent of hardware and location. Access to cloud applications and data do not require any data and is not limited to specific geographic location. Provided the user can access the internet and the required web applications, one can access the software and data stored in the cloud. The cloud-computing infrastructure is mainly off-site, meaning that users can access cloud services irrespective of their location and hardware (Ciampa, 2008).
Cloud computing is a cost effective computing approach since it eliminates the costs associated with hardware requirements and software licenses. This is because the cloud-computing model comes as a third party and does not require the purchase of expensive software for use at one time. In addition, billing bases on utility of the resources by the user. In addition, its implementation on the end user does not require expertise and immense IT skills.
The concept of Multi-tenancy in cloud computing facilitates resource sharing among a large number of users therefore facilitating centralization, proper utilization resulting to efficiency and users do not have to engineer their requirements since the platform uses a self-service approach. This strategy in computing plays a significant role in lowering costs, making cloud computing an important technological advent in the business environment. In addition, users can constantly re-provision their infrastructure resources to meet their user requirements. Maintaining cloud-computing application is easy because they do not reside on client computers (Ahson, 2009).
Cloud computing layers
The cloud-computing model comprises of the client, application, infrastructure, platform, and server. A client in the cloud-computing model describes the computer hardware and software used in the delivery of cloud applications and services to the user. Some of the hardware used in the client side include system software, web based applications and browsers, computers and other devices that the user depends on to access cloud data and services (Ahson, 2009).
Software as Service (SaaS)
Cloud applications and data are stored in remote servers, which are centralized; which in turn eliminates operational costs associated with the maintaining on-site servers, licensing costs and costs associated with the hardware that is required for the running of on-site servers. The pricing of software requirements depends on the amount of online storage space and the network resources that the cloud application uses. Some of the companies that provide on-demand cloud applications are Net suite, Google, Concur Technologies, Taleo, and Salesforce.com.
The Software as Service (SaaS), which are sometimes referred to as the Cloud application services are used deliver applications via the internet (Blokdijk & Ivanka, 2009). This eliminates the requirement associated with the purchasing of off-the –shelf applications thereby eliminating procedures such as installation and running the applications on onsite workstations or servers. This implies that the client is saved from maintenance and updating of cloud applications offered to him.
The delivery of cloud applications bases on a one-to-many approach, meaning that the cloud-computing platform uses a single instance to provide cloud services to many users in the cloud. Another important aspect of cloud applications is that their access is network based, and the user can access the software remotely using the on-demand basis (Ciampa, 2008).
Platform as a Service (PaaS)
The platform as a Service delivers the computing platform to the client basing on the resource and application requirements of the client. The cloud platform ensures that the functionality of cloud applications and data matches the computing requirements of the user. Therefore, the Platform as a Service provides a framework through which clients can access the cloud applications and data without the need of complex hardware acquisition and software installation. Active cloud platforms aid the access of the applications by the clients using a central server that has access to the internet. For instance, Google makes use of the Apps Engine, Microsoft uses the Windows Azure while Net Suite uses the Suite flex, and Rock Space makes use of Cloud servers and cloud files (Stallings, 2010).
Infrastructure as a Service (IaaS)
The IaaS forms a fundamental segment of the cloud-computing architecture. It is a virtualization of the cloud-computing platform. It eliminates the need purchase on-site servers and their respective application software. Instead, the client acquires the above resources on an outsourcing basis, because he uses the software on a lease basis without having to install the software on his machine. The cloud-computing infrastructure uses the concept of utility computing in its implementation and depends on the data and software requirements of the end user. IaaS is an advancement of the concept of virtual servers, and deploys the three-tier data center having four-tier attributes, assembled from a group of interconnected computer systems representing the cloud (Reese, 2009).
Cloud computing models
There are deployment models for cloud computing. The most common deployment models are public, private, community, and hybrid cloud. The following section provides an overview of the cloud deployment models.
Public cloud
In the public cloud model, there is sharing of resources on a self-service basis using platforms such as web applications from a third-party cloud computing services provider. The billing method used in this approach base on utility computing (Marks & Lozano, 2009).
Community cloud
Several organizations having similar computing requirements can come up together to form a community cloud aimed at the realization of their computing requirements. Community cloud has an added advantage of improved privacy, compliance of policy and security compared to public clouds. However, it is more expensive compared to public cloud. A typical example of public cloud is the Gov Cloud owned by Google.
Private cloud
Private cloud entails the implementation of cloud computing on private networks, meaning that organizations can host their services virtually on their own without the need of a third-party cloud computing services provider. Despite its effectiveness in sharing costs associated with hardware, failure recovery strategies, and scalability depending on demand, there is criticism on private cloud computing because clients have the responsibility of managing the cloud on their own, and because they still have to acquire the hardware by themselves (Gillam, 2010).
Hybrid Cloud
A hybrid cloud integrates both private and public clouds, with the aim of archiving and backing up data. This facilitates the duplication of data at the local level to the cloud. Hybrid cloud computing is the underlying concept that facilitates hybrid web hosting, which employs both cloud hosting and the conventional dedicated web server hosting. In this context, part of the hosting takes place in the physical server hardware, virtual cloud servers can also host cloud data and services. An integration of two or more clouds from multiple service providers results to a combined cloud. This facilitates the transition from private to public clouds without having to adhere to policy compliance (Ciampa, 2008).
Issues in cloud computing
Given that Cloud-computing is in its initial development phases, its development and system analysis has to address various issues such as reliability, privacy, compliance, legal, security, and issues related to interoperability.
One of the significant issues resulting to criticism of cloud computing is privacy issues. This is because users served by the cloud have no control over the cloud applications and services they receive from companies that offer cloud-computing services. In addition, there are privacy issues concerning the confidentiality of cloud storage services and data that cloud services and applications use (Ciampa, 2008).
The second significant issue in the development of cloud computing is security. Security is an important aspect that any computing infrastructure must put into consideration. Security issues in cloud computing is one of the key factors that is impeding the adoption of cloud computing by many business organizations. The management of security-based services in the cloud computing architecture is a significant issue that its developers must put into consideration. Therefore, it is the responsibility of providers of cloud-computing services to deploy effective security services during the provision of cloud services and cloud storage services.
Adding to security issues, business organizations are casting doubts on the performance levels and availability of the applications and services provided by cloud computing. The financial performance of companies offering cloud-computing services plays a significant role in ensuring availability of cloud applications. The Cloud Security Alliance (CSA) is in charge of ensuring security in cloud computing services (Blokdijk & Ivanka, 2009).
Just like other computing models, the subject of interoperability is not an exception in cloud computing. Interoperability serves to ensure that cloud computing functions properly irrespective of the platform of implementation. Most cloud applications are unique in their implementation, making them interoperable across various platforms. Despite some of cloud applications using the open source development strategy, there are still interoperability issues in the development of cloud applications and services. The Open Cloud Consortium (OOC) is in charge of ensuring that cloud application developers use standardized computing practices (Ahson, 2009).
Conclusion
It is arguably evident that cloud computing is new computing paradigm that is proving productive in the current business environment and other computer applications. This implies that cloud-computing developers must put into consideration the emerging computing needs and trends such as the development of Web Apps. A typical example of web apps used in the cloud is the Google Apps and Office Web Apps.
A particular trend of cloud computing is the incorporation of the concept in mobile devices computing. With the increasing dominance of the mobile Apps usage, cloud computing will be integrated in the mobile telephony computing. Amazon, IBM, and Google are the key players behind the development of enterprise cloud computing. This implies that large vendors will integrate to develop more effective cloud applications platforms (Gillam, 2010).
References
Ahson, S. (2009). Cloud Computing and Software Services: Theory and Techniques. Boca Raton: Taylor & Francis.
Blokdijk, G., & Ivanka, M. (2009). Cloud Computing – The Complete Cornerstone Guide to Cloud Computing Best Practices: Concepts, Terms, and Techniques for Successfully Planning, Implementing and Managing Enterprise It Cloud Computing Technology. Moscow: Emereo Pty Ltd.
Ciampa, M. (2008). Security+ Guide to Network Security Fundamentals. New York: Cengage Learning.
Gillam, L. (2010). Cloud Computing: Principles, Systems and Applications. London: Springer.
Marks, E., & Lozano, B. (2009). Executive’s Guide to Cloud Computing. New Jersey: John Wiley and Sons.
Reese, G. (2009). Cloud application architectures. California: O’Reilly Media, Inc.
Stallings, W. (2010). Cryptography and Network Security: Principles and Practice. New York: Prentice Hall.