A SURVEY ON CLOUD COMPUTING AND ITS VARIOUS SERVICES

Cloud computing is a hot topic all over the world nowadays, through which customers can access information and computer power via a web browser. As the adoption and deployment of cloud computing increase, it is critical to evaluate the performance of cloud environments. Currently, modeling and simulation technology has become a useful and powerful tool in cloud computing research community to deal with these issues. Cloud simulators are required for cloud system testing to decrease the complexity and separate quality concerns. Cloud computing means saving and accessing the data over the internet instead of local storage. In this paper, we have conducted a survey on the models of cloud environment, benefits and issues related to it


USES OF CLOUD COMPUTING
In the older days every company was to license their software through CDs DVDs and when it was to come on upgrading, they were to face lots of problems. When cloud computing comes as a service part like rental the cost of supplying and vendor system could be reduced, where the software comes to any organization directly. Cloud computing incorporates the infrastructure, platform, and software as services. These service providers rent data center hardware and software to deliver storage and computing services through the Internet. Internet users can receive services from a cloud as if they were employing a super computer which be using cloud computing. To storing data in the cloud instead of on their own devices and it making ubiquitous data access possible. They can run their applications on much more powerful cloud computing platforms with software deployed in the cloud which mitigating the users burden of full software installation and continual upgrade on their local devices.

VIRTUALIZATION
In the cloud computing, clouds are divided into three parts as: Public Clouds, Private Clouds and the Hybrid Clouds. Virtualization is very useful concept in context of cloud systems. Virtualization means something that is not real. [3] Virtualization is a software implementation of computer. It helps to execute different programs like a real machine. Virtualization is related to cloud computing, because it can be used by end users. The end users can use various services of the cloud. Virtualization can be classified in two different parts:

• Full virtualization • Partial virtualization
Full Virtualization : In case of full virtualization, the complete installation of one machine is done on another machine. It will result in a virtual machine which will have all the software that are presents in the actual server. The full virtualization is used for many purposes.
• Sharing a computer system among different users • It helps to Isolates users from each other and from the control program • Emulating hardware on another machine

Partial virtualization
In partial virtualization, the hardware allows multiple operating systems to run on single machine by efficient use of system resources such as memory and processor. In this case, the services are not fully available. These services are provided partially. It has the following advantages: • Disaster recovery: It helps in the disaster recovery.
• Migration: in the virtualization, hardware can be replaced easily, hence migration of different parts of a new machine is faster.
• Capacity management: In a virtualized environment, it is easier and faster to add more hard drive capacity and processing power.

FILE SYSTEM IN CLOUD COMPUTING
Now days, the growth of communication and the technologies has transformed the way we live and work. The cloud computing is an emerging technology. In the cloud computing storage area is used. For storing the information in storage area various files are required. To maintain these files file systems are used. These files systems include:

•
Hadoop Distributed File System: these file systems deploys in large scale distributed system. These file system includes facebook, google, yahoo and so on.These file systems use a name node to keep a list of all files in the cloud and their respective metadata. In this the name node has to manage all the files related operations, these files related operation includes open, copy, move, delete, update, etc. J a n u a r y 2 5 , 2 0 1 6  Network File System: It is a way to share files between different machines on a network. these files are located on the client local hard drive. One of the disadvantages of NFS is that it tries to make a remote file system that appears as a local file system.  Andrew File System: It is a distributed networked system, which uses a set of trusted servers to present a homogeneous, location transparent file name space to all the client workstations. AFS uses Kerberos for authentication and implements access control lists on directories for users and groups.
 Blue Sky File System: The blue sky film system uses the object data structures maintained in the file system. and their organization in a log-structured format. The Blue Sky file systems use to cleans the logs comprising file system.

TYPES OF CLOUD
Cloud computing is typically classified in two ways [9]: 1. Location of the cloud computing 2. Type of services offered

Location of the cloud
Cloud computing is typically classified in the following ways:

Public cloud:
In Public cloud the computing infrastructure is hosted by the cloud vendor at the vendor's premises. The customer has no visibility and control over where the computing infrastructure is hosted. The computing infrastructure is shared between any organizations.

Private cloud:
The computing infrastructure is dedicated to a particular organization and not shared with other organizations. Some experts consider that private clouds are not real examples of cloud computing. Private clouds are more expensive and more secure when compared to public clouds.
Private clouds are of two types: On-premise private clouds and externally hosted private clouds. Externally hosted private clouds are also exclusively used by one organization, but are hosted by a third party specializing in cloud infrastructure. Externally hosted private clouds are cheaper than On-premise private clouds.

Hybrid cloud:
Organizations may host critical applications on private clouds and applications with relatively less security concerns on the public cloud. The usage of both private and public clouds together is called hybrid cloud. A related term is Cloud Bursting. In Cloud bursting organization use their own computing infrastructure for normal usage, but access the cloud for high/peak load requirements. This ensures that a sudden increase in computing requirement is handled gracefully.

Community cloud
involves sharing of computing infrastructure in between organizations of the same community. For example all Government organizations within the state of California may share computing infrastructure on the cloud to manage data related to citizens residing in California.

Classification based upon service provided
Based upon the services offered, clouds are classified in the following ways: 1. Infrastructure as a service (IaaS) involves offering hardware related services using the principles of cloud computing. These could include some kind of storage services (database or disk storage) or virtual servers. Leading vendors that provide Infrastructure as a service are Amazon EC2, Amazon S3, Rackspace Cloud Servers and Flexiscale.

BENEFITS OF CLOUD COMPUTING
Growth of Cloud Computing is huge with respect to personal and business uses. Cloud users can access the online resources. There are some benefits of cloud computing :-

Scalability:
Scalability is the capability of a system to handle the growing amount of task in an elegant manner and its ability to enhance total throughput when resources are added. Resources can be hardware, servers and storage. The user can increase or decrease the resources according to their requirement without buying the resources.

Mobility:
Mobility means users can operate the applications from anywhere, anytime over the internet. Cloud computing supports the mobility.

Low Infrastructure Costs:
Cloud computing supports the pay-per-use model and helps an organization to pay for the resources they need, no need to pay for the resources that are available in the cloud.

Reduce capital costs:
We don't require spending money on hardware/software.

Enhance accessibility:
Data can be accessed anytime, anywhere through the internet. Thus, the cloud computing offers many benefits in the form of elasticity, availability, increased storage, reduce cost and expandability on-demand but there are some limitations in cloud computing that are: 1. Requires a constant Internet connection: Cloud computing is dependence on network connectivity. It is impossible if you cannot connect to the Internet.
2. Slow speed of Interment: Uploading and downloading of huge documents may take a long time.

ISSUES IN CLOUD COMPUTING
There are many issues in cloud computing:  Security: Security is the biggest issue of cloud. Cloud computing can be accessible anywhere using the internet so there is a need of security like authentication, privacy and integrity. The service provider for the cloud must make sure that only the legitimate users can view the data from cloud or exchange the data to cloud. There are the some problems are faced by the cloud computing, such as data loss, data theft, data location etc.
 Efficient load balancing: Cloud computing is an internet based computing in which the load balancing is the one of the challenging tasks. Various optimization techniques are needed to make a balanced system by allocating the workload to the nodes in a manner that no node is overloaded or underloaded.
 Trust Management: Trust management is the most challenging area in the emerging cloud computing. Many trust management issues such as identi_cation, integration, security need to be addressed.  There are some other challenges such as resource scheduling, privacy and data management.

LOAD BALANCING
Load balancing is one of the main issues related to cloud computing. The load can be a memory, CPU capacity, network or delay load. It is always required to share work load among the various nodes of the distributed system to improve the resource utilization and for better performance of the system. This can help to avoid the situation where nodes are either heavily loaded or under loaded in the network. Load balancing is the process of ensuring the evenly distribution of work load on the pool of system node or processor so that without disturbing, the running task is completed. The goals of load balancing [16] are to: • Improve the performance There are mainly two types of load balancing algorithms: STATIC ALGORITHM In static algorithm the traffic is divided evenly among the servers. This algorithm requires a prior knowledge of system resources, so that the decision of shifting of the load does not depend on the current state of system. Static algorithm is proper in the system which has low variation in load.

DYNAMIC ALGORITHM
In dynamic algorithm the lightest server in the whole networkor system is searched and preferred for balancing a load. For this real time communication with network is needed which can increase the traffic in the system. Here current state of the system is used to make decisions to manage the load.