Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud computing incorporates virtualization, on-demand deployment, Internet delivery of services, and open source software.
From one perspective, cloud computing is nothing new because it uses approaches, concepts, and best practices that have already been established. From another perspective, everything is new because cloud computing changes how we invent, develop, deploy, scale, update, maintain, and pay for applications and the infrastructure on which they run. ARCHITECTURE OF CLOUD COMPUTING
From a general perspective, when the architecture of the cloud is considered, it can be divided into front end and back end. They are connected with each other via a network and mostly internet is used for fulfilling the requirement. The front side is the interface for the user i.e. the client and the back end is the cloud section for the whole system which acts as the server. Front End
The front end of the cloud computing system comprises the client’s device (or it may be computer network) and some applications are needed for accessing the cloud computing system. Different cloud computing systems have different interfaces for the users. Front end is basically a technical term which refers to the interface though which a user can use some kind of services. Back End
Back end refers to the some physical peripherals. In cloud computing back end is cloud itself which may encompasses of various computer machines, data storage systems, servers. Group of these clouds make a whole cloud Csystem. Theoretically, any cloud computing system can include practically any type of computer machine program that can be imagined by a human being such as from video games to data processing, software development to entertainment. Usually, every application would have its individual dedicated server for services. Central Server
A central server is established which is used for administering the whole system. It is also used for monitoring client’s demand as well as traffic to ensure that everything of system runs without any problem. There are some set of rules, generally called as protocols which are followed by this server and it uses a very special type of software known termed as middleware. Middleware allow computers that are connected on network to make communication with each other. LAYERS OF ARCHITECTURE OF CLOUD COMPUTING
In the layers architecture of Cloud computing, cloud service providers into three categories: * Software as a service * Platform as a service * Infrastructure as a service * Software Kernel * Hardware as a Service
Software as a service- The cloud application layer is the most visible layer to the end users of cloud. Software as a service features a complete application offered as a service on demand. A single instance of the software runs on the cloud and services multiple end users or client organizations. Software as a Service is a multi-tenant platform. It uses common resources and a single instance of both the object code of an application as well as the underlying database to support multiple customers simultaneously.
SaaS is commonly referred to as the Application Service Provider (ASP) model, is heralded by many as the new wave in application software distribution. Examples of the key providers are SalesForce.com (SFDC), NetSuite, Oracle, IBM, and Microsoft etc. Benefits for users:-
1) Alleviates the burden of software maintenance and ongoing operation and support costs. 2) Exports the computational work from the user’s terminal to the data centres where the cloud applications are deployed. 3) They are able to get great performance with some of their CPU intensive and memory intensive workloads without any large investments. Benefits for providers:-
1) The model simplifies the work with respect to upgrading and testing code, while protecting their intellectual property. So no need to ask users for updates and installations. 2) Also using the principles of SOA (Service Oriented Architecture) cloud applications can be composed as a service from other services. Ex- a payroll app can use another accounting system’s SaaS to calculate something. Some problems associated with it:-
1) The security and availability of the cloud are two major issues 2) Coping with outages, user’s authentication and authorization, etc. Platform as a Service-It is the big idea to provide developers with a platform including all the systems and environments comprising the end-to-end life cycle of developing, testing, deploying and hosting of sophisticated web applications as a service delivered by a cloud based, a Platform-as-a-Service. The users of this layer are the cloud application developers, implementing their applications and deploying them on the cloud.
The providers of the cloud software environments supply the developers with a programming language level environment of well-defined API to facilitate the interaction between the environments and the cloud applications as well as to accelerate the deployment and support scalability needed by cloud applications. There are at least two perspectives on PaaS depending on the perspective of the producer or consumer of the services: • Someone producing PaaS might produce a platform by integrating an OS, middleware, application software, and even a development environment that is then provided to a customer as a service. • Someone using PaaS would see an encapsulated service that is presented to them through an API. The customer interacts with the platform through the API, and the platform does what is necessary to manage and scale it to provide a given level of service. Benefits to developers:-
1) Automatic scaling and load balancing, as well as integration with other services (e.g. authentication services, email services, and user interface) supplied by the PaaS provider. 2) Can integrate other services with applications making it a less complicated task, accelerating the deployment time and minimizing the logic faults. Infrastructure as a service (IaaS)
Infrastructure as a service delivers basic storage and compute capabilities as standardized services over the network. Servers, storage systems, switches, routers, and other systems are pooled and made available to handle workloads that range from application components to high-performance computing applications. . IaaS is the delivery of computer infrastructure as a service. Aside from the higher flexibility, a key benefit of IaaS is the usage-based payment scheme. This allows customers to pay as they grow. It can be broken down into three parts:- •Computational resources:-
VMs (Virtual Machines) are the most common form for providing computational resources to cloud users. OS Virtualization is the enabler technology for the cloud, allowing flexibility in configuring the settings while protecting the physical infrastructure of the provider’s data centre. •Storage: The second infrastructure resource is data storage which allows users to store their data at remote disks and access them anytime from any place.
This is known as DaaS (Data storage as a Service) and it facilitates cloud applications to scale beyond their limited servers. •Communication: Communication as a service emerged to support network security, dynamic provisioning of virtual overlays for traffic isolation or dedicated bandwidths, guaranteed message delay limits, communication encryption and network monitoring. Software kernel Layer
A software kernel layer is used to identify the systems software that can be used to construct, manage and schedule the virtual containers onto the hardware resources. The software kernel could be implemented as an OS Kernel, hypervisor, VM Monitor, Cluster middleware. Absence of virtualization in grid computing led to tight-coupling of jobs and hardware. Hardware as a Service (HaaS)
According to Nicholas Carr, “ the idea of buying IT hardware- or even an entire data centre- as a pay-as-you-go subscription service that scales up or down to meet your needs. But as a result of rapid advances in hardware virtualization, IT automation and usage metering and pricing, I think the concept of hardware-as-a-service may at least be ready for prime time”. It forms the backbone of the cloud. HaaS provider operates, manages and upgrades the hardware. This benefits the enterprise users because they do not need to build and manage data centres. Challenges faced are efficiency, ease and speed of provisioning. TYPES OF CLOUDS:-
Cloud can be of three types * Public * Private * Hybrid Public Cloud:- Public clouds are run by third parties, and applications from different customers are likely to be mixed together on the cloud’s servers, storage systems, and networks. If a public cloud is implemented with performance, security, and data locality in mind, the existence of other applications running in the cloud should be transparent to both cloud architects and end users. One of the benefits of public clouds is that they can be much larger than a company’s private cloud might be, offering the ability to scale up and down on demand, and shifting infrastructure risks from the enterprise to the cloud provider, if even just temporarily.
Private Cloud:- Private clouds are built for the exclusive use of one client, providing the utmost control over data, security, and quality of service. The company owns the infrastructure and has control over how applications are deployed on it. Private clouds may be deployed in an enterprise data-centre, and they also may be deployed at a co-location facility. Private clouds can be built and managed by a company’s own IT organization or by a cloud provider. This model gives companies a high level of control over the use of cloud resources while bringing in the expertise needed to establish and operate the environment.
Hybrid Cloud:- Hybrid clouds combine both public and private cloud models. They can help to provide on-demand, externally provisioned scale. The ability to augment a private cloud with the resources of a public cloud can be used to maintain service levels in the face of rapid workload fluctuations. This is most often seen with the use of storage clouds to support Web 2.0 applications. A hybrid cloud also can be used to handle planned workload spikes.
Sometimes called “surge computing,” a public cloud can be used to perform periodic tasks that can be deployed easily on a public cloud. Hybrid clouds introduce the complexity of determining how to distribute applications across both a public and private cloud. Among the issues that need to be considered is the relationship between data and processing resources. If the data is small, or the application is stateless, a hybrid cloud can be much more successful than if large amounts of data must be transferred into a public cloud for a small amount of processing.
CONCLUSION Instead of building your applications on fixed and rigid infrastructures, Cloud Architectures provide a new way to build applications on on-demand infrastructures.
REFERENCES * REVIEW: LAYERS ARHITECTURE OF CLOUD COMPUTING - VIKAS GOYAL (Lecturer in Department of Computer Science & Engineering Punjab Technical University Giani Zail Singh Campus, Bathinda) * Cloud Architectures, June 2008 - Jinesh Varia (Technology Evangelist, Amazon Web Services) * A taxonomy of cloud computing systems- Bhaskar Prasad Rimal, Ian Lumb * Corporate Research and Technologies , Munich, Germany - Dr. Gerald Kaefer * Introduction to Cloud Computing architecture White Paper - 1st Edition, June 2009