New networking technologies that boost performance and reliability are changing the way networks are monitored and managed. Most notable of these emergent technologies is Cloud Computing; which is increasingly gaining popularity as an alternative to other networking options. Because of the highly dynamic nature of the information technology age, most organizations have realized that it is becoming costly to service and maintain computer hardware. Cloud Computing eliminates these needs through provision and accessibility of virtual systems. With Cloud Computing, clients can be able to host websites and store data for a lesser amount. This paper discusses the merits and demerits of Cloud Computing with special focus on Amazon Web Services; which provides Cloud Computing services through its EC2platform.
In general terms, Cloud Computing can be defined as the delivery of hosted services over the Internet. The hardware and software made available to clients is what is referred to as the Cloud (see figure 1 below). A client is allowed to use hardware and systems over the Internet for a fee payable in accordance with the total time one is logged in, the amount of data used or the type of application software used. There are two kinds of Clouds: the public Cloud and the private Cloud. As the name suggests, the public Cloud is made available to all members of the public. On the other hand, access of the private Cloud is restricted to business organizations or other institutions.
The idea of computer networking was first introduced in the 1960s by J. Licklider. He is credited with the development of Advanced Research Projects Agency Network (ARPANET) in 1969. The main idea behind the creation of ARPANET was to come up with a system through which people across the world would be interconnected and can access data from any site. Since then, various developments that led to the present day Cloud Computing took place. Perhaps the most significant of this is the Internet; which started offering significant data transmission rates in the 1990s.
Salesforce.com pioneered the world of Cloud Computing in 1999. The company started by offering business applications on a simple website. Amazon then followed suit with the advent of Amazon Web Services (AWS) in 2002. Amazon’s Cloud services were mainly storage human intelligence services provided through the Amazon Mechanical Turk. Amazon continued making bold steps and in 2006 they launched the Elastic Compute Cloud, popularly abbreviated as EC2. The EC2 Cloud service gives clients the opportunity to rent hardware on which they can install and run software.
Factors for the Development of Cloud Computing
The recent development of Web 2.0 has enhanced the development of Cloud Computing by increasing bandwidth and security. This saw the launch of more web-based services from technology giants like Microsoft and Google. For instance, Google launched Google Apps; which allows the use of web-based applications on the basis of Software as a service. Another important factor that has enabled Cloud Computing to flourish is the virtualization of software. Software developers have created programs that can enable software to be run without the need to be installed on a machine’s operating system. The standardization of software so that in can be used internationally is yet another factor that has contributed to the fast growth witnessed in Cloud Computing (Foster et al., 2006)
The fast pace at which business and scientific applications are being developed continuously poses various challenges to respective IT departments. For instance, this growth is characterized by demand for more storage space, capability, reliability and faster response times. Therefore, this means that companies have to employ a team of experts who will be tasked with the responsibility of developing, installing, testing, configuring, and running various applications. Such requirements are very complicated and expensive in the sense that a huge amount of software and hardware are required to run them. Another challenge is posed in the form of security threats (Mather, Kumaraswamy, and Latif, 2009). This implies that the team will also be tasked with securing the system, monitoring and updating it regularly. All this translates to monumental costs that can easily be subverted by with the advent of Cloud Computing. Another advantage rears itself in the form of increased capacity now that Cloud Computing will take care of the abovementioned challenges (Assuncao and Buyya, 2009).
Another major factor for the development of Cloud Computing is the need for backup; especially where critical services are involved. For instance, medical and banking services would be dealt a major blow if there was to be a breakdown in their systems. To avoid this, such institutions need an alternative that can be resorted to incase of such an event. A cheaper alternative to installing backup systems is provided with the development of Cloud Computing. These institutions can load applications on Cloud computers to be used as need arises. The applications on the Cloud system can be used as hot sites; which means that when a breakdown occurs, services will not be interrupted as an immediate switch to the Cloud system can be made as IT experts try to resolve the problem(s) at the institution’s on-site systems.
Other than breaking down, systems can slow down due to overload. Consequently, this can lead to a delay in the delivery of service. To avoid this, there was need to have an alternative way of dealing with the extra work causing the workload. Development of Cloud Computing has helped deal with such situations in the sense that companies can increase capacity by renting hardware or running applications on Cloud platforms at a lesser cost when compared to setting up new systems (Antonopoulos and Gillam, 2010).
Another reason that motivated the development of Cloud Computing is the need for providing services on mobile locations. Most businesses and other sectors that largely depend on networking to run operations are increasing capacity by allowing employees to work from various locations. Employees need access to information and applications so as to conduct their tasks from remote areas. Since Cloud Computing can work with various systems without requiring any special adaptations, software applications for end user devices like Blackberries and smart phones have been created. This has enabled employees to access systems from other locations like their homes.
Cloud Computing services are divided into three main categories:
- Platform as a service (PaaS).
- Software as a service (SaaS).
- Infrastructure as a service (IaaS).
Software as a Service (SaaS)
Currently, this is the most popular form of Cloud Computing. In Software as a service, the provider hosts software on the cloud. Clients can then use this software via interactive tools such as user-interfaces such as that of email services. Examples of companies that offer services on this platform include: Yahoo email, Google apps, among others. Instances of the above services can be accessed from numerous locations. Application Service Providers were the first clients to embrace SaaS. Most of these companies gained popularity in the late 90s and have continued to dominate the world of Cloud Computing to date. The main advantage of SaaS is that various venders can rent the Cloud service and host applications that can be accessed by multiple customers without compromising security. In general terms, any service provided over the internet and that can be accessed virtually from any location is what is referred to as SaaS. Most of these services are provided to the customer free of charge but he or she may be charged for extra services such as additional storage (Foster et al., 2006).
Platform as a Service (PaaS)
In Platform as a service, the provider hosts software development tools. This gives clients the incentive of having the infrastructure upon which to develop or host software. The difference between SaaS and PaaS is that whereas the former provides applications for customers (end users), the latter provides a platform for developers to host their software. The PaaS provider gives avails infrastructure such as hardware, operating systems, security and others that they need to successfully host their applications. The developer is often required by the Cloud service provider to conform to specific standards meant to ensure privacy and security. Some of the popular operators on the PaaS platform are Google App Engine and Engine Yard.
Infrastructure as a Service (IaaS)
In Infrastructure as a Service (IaaS), clients are given “virtual servers with unique IP addresses and blocks of storage on demand” (Kulkarni, Sutar and Gambhir, 2012, p.1). The service is also called Utility Computing because the client pays for the amount of service they use. Currently Amazon AWS is the largest IaaS provider. While SaaS provide software and PaaS offers developers the platform to develop software, IaaS provides the required resources such as: processors, storage, networking and security. This concept is illustrated in figure 2 below. Generally, IaaS provides users with allows the client to choose from a variety of operating systems, Central Processing Units, the power and number of the processors. Other than Amazon, some of the notable IaaS providers include: Joyent, GoGrid and FlexiScale. IaaS is especially beneficial to Small Business Enterprises that may not be able to have enough capital to purchase infrastructure needed to run the business (Center for Economic and Business Research, 2010).
Players in the Industry
Cloud computing is one of the fastest growing technological fields. Because of the high start up cost involved in setting up the infrastructure to offer cloud computing, it is not surprising to see that the industry is dominated by technological giants. According to Etro (2013) the following are the main players in the industry.
Apple offers its services through AAPL. In its iCloud, a client can wirelessly sync various Apple products such as iPad, iPhone, iPod, and AppleTV. This means that the client can update content on any device without having to connect it to a computer.
Google offers its Cloud services on Google Drive. This is an efficient and interactive platform where users can be able to share files, especially documents.
Other big names in the Cloud Computing sector include: Microsoft, HP (Hewlett Packard), IBM and Amazon; whose service is discussed in detail below.
Standards in Cloud Computing
There are many players in the Cloud Computing industry and each has its own standards. Given that it is a recent development, efforts are currently underway to develop and enforce standards that will apply universally (Fogarty, 2011). Specifications are now being developed by the Institute of Electrical and Electronics Engineers (IEEE). The standards being developed will address migration, management and interoperability in Cloud Computing (Fogarty, 2011).
Amazon Web Services (AWS) provides organizations and individuals with an option to run or host web services and use hardware resources over the Internet. The clients are able to do this courtesy of AWS’ Elastic Computer Cloud (referred to as Amazon EC2) as the web service. The clients can request for any number of virtual machines on which they can load their software and run them. The term “elastic” means that clients can start and terminate sessions on the Cloud platform at whatever time they wish. Amazon EC2’s web service allows clients to acquire resources and tailor them to meet their need without interference (Kulkarni, Sutar and Gambhir, 2012). Amazon’s state-of-the-art Cloud Computing environment gives clients the assurance they need to run their applications. One of the features that give Amazon EC2 an edge over rivals is the little time required to acquire resources and run them. Besides, it also gives the client the convenience of scaling resources to match with demand.
The choice for Cloud Computing as a topic for this discussion is motivated by the fact that it is among the most significant emerging technologies of this decade. Cloud Computing has impacted the world of networking in unforeseen ways and keeps on improving each day. In the following sections, the various reasons for development of Cloud Computing are discussed. This is followed by an overview of competing technologies. The paper also provides an explanation of how Cloud Computing is addressing the requirements of the networking community. The last part of the paper looks into the future of Cloud Computing and the probability of its further evolution.
AmazonEC2’s Infrastructure as a Service
Amazon EC2 provides an environment for clients to run virtualized systems. According to Kulkarni, Sutar and Gambhir (2012, the first step, a virtual machine is built for the IaaS environment. Once the machine has been built to specific standards, it is then uploaded to the Amazon EC2 cloud. The third step involves configuration after which the system is deployed in the environment. The virtual machine deployed in the environment can be started automatically and will find the necessary resources to use.
The different types of systems deployed in the environment are what make up the Cloud. Clients wishing to use Amazon’s EC2 infrastructure can choose to deploy their own software (as long it is licensed) or can have custom built software from Amazon EC2. It should be noted that once a system is deployed, whether custom-built or not, it is the client’s responsibility to monitor it so as to ascertain if it is working properly.
The following are the general steps involved in using Amazon EC2 infrastructure to host web services (Kulkarni, Sutar and Gambhir, 2012).
- The client chooses a pre-configured template image that can be deployed immediately. Alternatively, they can create an Amazon Machine Image (AMI), which will contain all requirements for hosting their services.
- The client then configures security settings as well as network access to their Amazon EC2 sessions.
- The client then chooses the type of instance and operating system they wish to use.
- The client then decides whether they want to run services in multiple locations.
- Lastly, the client pays for the resources they utilize. This can be in the formed of hours logged or the amount of data used.
Competition amongst or with Cloud Computing technology will most likely bring about changes in the industry (Etro, 2013). Competition is likely to come from internet service providers who are setting their own kinds of networked systems. Cloud Computing has also found itself competing with hand held devices such as iPads and other powerful handheld devices. Even though these devices may rely on the internet in some way, they have the capability of hosting a number of powerful apps. The devices are given an edge given that there are thousands of apps developed to help users perform various tasks.
Nevertheless, it should be noted that the cloud computing is operating at a level where competition is relatively minimal. Older network systems are almost being phased out in favor of Cloud Computing. This leaves Cloud Computing providers to compete amongst each other. Looking on the positive side of it, this kind of competition is positive since it ensures that players avoiding excessive concentration (Etro, 2013).
How Cloud Computing Meets Networking Requirements
The robust nature of Cloud Computing has taken networking to a whole new level of capabilities; some of which were inconceivable a few years prior to its inception. However, to win the full approval of IT experts, then it must be able to bring about substantial benefits. So far, it can be said that this technology is able to meet a good number of such requirements. This is evidenced by the move by giant IT companies such as Microsoft and Google to host some of their services on the Cloud.
Previously, networking has been characterized by infrastructure that lacks the flexibility of cloud computing. For instance, users did not have the mandate to dictate the amount of resource they require at any given time. This is also compounded by the fact that variables make it quite difficult to accurately predict how demand for resources is going to fluctuate. Therefore, this means that once hardware is deployed, it might be difficult to scale it to current requirements. As a consequence, this leads to inefficient use of resources (Foster et al., 2006). With Cloud Computing, this problem is eliminated since the client only requests for what they need.
Another networking requirement that Cloud Computing has been able to meet is allowing individuals to coordinate tasks from farther distances when compared to other forms of networking. Other than distance, the vast capacity provided by Cloud servers ensures that a large number of tasks can be undertaken simultaneously (Assuncao and Buyya, 2009). This implies that, in relation to other forms of networking where resources might be limited, more tasks can be completed within a shorter time.
Another front of flexibility provided by Cloud Computing is in the form of configuring applications to suit the requirements of the client. This is unlike the traditional systems which were made for a specific task and therefore could not be made to carry out other tasks outside its scope. Consequently, it is possible to find enterprises using older technology having different systems for different tasks. For instance, Kulkarni, Sutar and Gambhir (2012) report that Amazon Web Services give the client an opportunity to choose a template image designed beforehand to start using immediately. Should the client not find any template designed to their requirements, they can create an Amazon Machine Image (AMI) containing various data which will dictate configuration settings to be used. The client then sets security and network access requirements for their EC2 instance. The client also has other options such as: choosing the operating system they want, when to start or terminate their session, and choosing the number of locations to run applications.
Given that Cloud Computing is still in its infancy, there are a number of challenges the technology is facing. Currently the major concern is on security and privacy(Mather, Kumaraswamy, and Latif, 2009). This can be effectively dealt with if stakeholders will agree on minimum standards that will assure clients of security and privacy of any data submitted to the Clouds.
Another challenge is that the market is currently dominated by few players. This restricts clients’ ability to switch to other providers in the event that they are dissatisfied by one service provider. Another concern is that the providers have absolute power when it comes to determining the amount to charge for use of their resources. An increase in the number of service providers will not only bring down the current charges but will also make the process more transparent.
The concept of interoperability also needs to be considered by Cloud service providers. This is because a large number of individuals and enterprises are still using traditional applications, some of which are not compatible with the servers. To ensure a seamless adoption of applications available on Cloud platforms, the service providers should at least come up with a way of converting legacy applications and data formats to contemporary formats without data loss. Therefore, this implies that the growth of Cloud Computing will be majorly dictated by service providers’ ability to offer integration capabilities for diverse applications.
There is also need for service providers to increase the number of applications available to clients. The current resources available to clients (memory and software applications) limit clients in some way. This implies that there are clients who are not able to use Cloud services because their requirements can not be met by the current options despite there being the option of making configurations.
Advantages of Cloud Computing
Cloud Computing has had an edge over other networking technologies because of the new developments it has brought about. Some of the advantages include:
- Clients incur no little or no cost in acquiring hardware because cloud computing eliminates the need to purchase infrastructure since these are available at a cheaper cost.
- There is efficient utilization of resources in the sense that clients request only for those resources they require to carry out a particular task. This is unlike the case where millions of dollars would be spent to set up a system only to run out of capacity (Assuncao and Buyya, 2009).
- Tied to the fact above is the costing based on usage; clients only pay for what they use. This is unlike other services where there may be a fixed cost payable in regular intervals irrespective of usage of resources.
- Cloud Computing lowers risks associated with startups. When one starts a service, it may either take off successfully or fail. In the case of success, Cloud Computing provides the client with the easy option of requesting for more resources at a lower cost than what would have been incurred to overhaul or upgrade one’s capacity to meet new demands. In the case of failure, the client does not lose much as compared to the amount they would have lost had they invested in setting up their own system.
- Since, with Cloud Computing, the client does not need to employ IT staff who will be responsible for monitoring and maintaining the system, the client can direct the extra capacity afforded to other wanting departments of the enterprise.
- Other than financial gains, Cloud Computing also impacts the environment positively by increasing energy efficiency. Energy savings are made because most Cloud Computing data centers are located in colder regions where the amount of energy required for cooling down hardware is substantively lower when compared to warmer regions (Antonopoulos and Gillam, 2010). Energy savings are also made because only required resources are run at an instance (Carraro and Siniscalco, 1993).
Disadvantages of Cloud Computing
Despite the numerous advantages Cloud Computing gives users, it also has negative effects. These include:
- Security is one area that needs urgent attention. Most users are not comfortable with the idea of sharing confidential information such as bank account or social security numbers with another party. Despite the assurance from Cloud Computing providers, there still exists reasonable fear given the number of individuals who have access to Cloud servers. Other than security, privacy is another concern (Mather, Kumaraswamy, and Latif, 2009). Most people will want to keep private information to themselves for a variety of reasons. With the high number of individuals resorting to Cloud Services, there is doubt whether information is adequately kept from other users’ access.
- Another disadvantage is that the client has no control over issues such as maintenance. This implies that the client has to assume that prerequisite for the proper running of their application has been taken care of. In terms of costing, the client does not have the power to monitor how their charges are calculated.
- Even though Cloud Computing is considered cheaper than hosting one’s own system, the cost is still high given that the technology has not really taken off. As with any new enterprise in its infancy, the initial stakeholders have to incur high costs and will have to put up with emerging issues.
- Another major disadvantage is that clients who host their entire enterprises on the cloud are wholly dependent on the reliability of the internet connection they are using. Should a disconnection occur, then their operations will halt until the connection is restored.
- Lack of compatibility with other hardware and/or software is a major stumbling block to the full adoption of cloud computing by some enterprises. For instance, the client may not have the choice of using their printer or other peripherals. In the same vein, the client may not be able to upload files in any format other than the one supported by the Cloud service provider.
Future of Cloud Computing
The fact that Cloud Computing has dynamically taken off in its infancy shows that there is great potential for the technology. However, this will only be possible if the current challenges are adequately addressed. According to Etro (2013) the following are some of the issues that have to be addressed to ensure adoption and smooth progression to new heights.
- Expansion of the broadband capacity, especially in countries where this capacity is lower, as in Italy and other Mediterranean countries;
- International agreements in favor of unrestricted flow of data across borders (since data centers are located in different countries with different privacy laws, data portability remains a key issue for the diffusion of cloud computing);
- Agreements between EU authorities and industry leaders on a minimum set of technological standards and process standards to be respected in the provision of cloud computing services to guarantee data security and privacy and promote a healthy diffusion of the new technology;
- Introduction of fiscal incentives for the adoption of cloud computing and a specific promotion in particular dynamic sectors (for instance, governments could finance, up to a limit, the variable costs of computing for all the domestic and foreign firms that decide to adopt a cloud computing solution).
Evolution of cloud computing is very given the rate at which new developments are being made in the technological front. Currently, the adoption of Cloud Computing – especially by business enterprises – has been for the sole purpose of data storage and backup services. Other clients who are running applications, such as web-hosting, have not fully embraced the technology. Most of them are tepidly using the technology with the sole aim of testing if it can really match up to expectations. The slow adoption of the technology can partly be attributed to the fact that most of the applications being hosted on Cloud computers were designed much earlier before the technology had been introduced (Antonopoulos and Gillam, 2010). This implies that performance may not be up to standard given that the operating environment is essentially different from the one they were designed to operate in.
Given the above facts, it is reasonable to believe that vendors and cloud service providers will introduce evolutionary applications that will further increase the capability of the currents systems. Future Cloud Computing is likely to manifest by the ability to handle a wide range of tasks and at a faster speed than
Current technological innovations have led to a revolution of computer networking. Prior to the advent of Cloud Computing, interconnectivity was costly and limited to specified locations. Cloud Computing has since changed that as access to software applications and even hardware can be made from virtually any location, as long as one has an Internet connection. Infrastructures as a service refer to the mode of Cloud Computing where a client is provided with resources such as processors, storage, networking and security so as to host their applications. The client is allowed to choose from a variety of operating systems, Central Processing Units, and amount of storage space. Amazon is one of the front runners in provision of IaaS through its EC2 platform. The EC2 has further enhanced the Cloud Computing experience by bringing new fronts, most notable of which is the concept of elasticity. Elasticity is achieved in the sense that the client is able to configure settings to suit his or her requirements. Elasticity is further enhanced where the client is able to determine not only the amount of resources they require but also the time and location (s) where their services can be run or accessed.
Unfortunately, Cloud Computing is not entirely flawless. Its weaknesses chiefly lie in security, privacy, and integration with older software. Clients who handle sensitive private information, such as financial institutions and medical service providers, are wary of fully embracing Cloud Computing because of the sensitive nature of data in their repositories. In regard to integration, most software in the market today is probably older than the Cloud Computing technology itself. This therefore means that compatibility issues are a serous challenge. Nevertheless, the challenges can be managed if key players can collaborate to come up with standards to ensure security is stepped up and more software is supported by Cloud Servers. Since the technology is still in its infancy, the future looks bright in terms of further development.