ABC of Cloud Computing
Cloud computing promises to increase the velocity with which applications are deployed, increases innovation and lower costs, all while increasing business agility. Sun takes an inclusive view of cloud computing that allows it to support every facet including the server storage, network and virtualization technology that drives cloud computing environments to the software that runs in virtual appliances that can be used to assemble applications in minimal time. This white paper discusses how cloud computing transforms the way we design, build, and deliver applications and the architectural considerations that enterprises must make when adopting and using cloud computing technology.
Cloud computing can be the ability to rent a server or a thousand servers and run a geophysical modeling application on the most powerful systems available anywhere. It can be the ability to rent a virtual server, load software on it, turn it on and off at will, or clone it ten times to meet a sudden work load demand. It can be storing and securing immense amounts of data that is accessible only by authorized applications and users. It can be supported by a cloud provider that sets up a platform that includes the OS, Apache, VS, and a MySQL database, Perl, Python and PHP with the ability to scale automatically in response to changing workloads. Cloud computing can be the ability to use applications on the internet that store and protect data while providing a service – any thing including email, sales force automation and tax preparation. It can be using a storage cloud to hold application, business and personal data. And it can be the ability to use a handful of web services to integrate photos, maps and GPS information to create a mash up in customer when browsers.
Nature of Cloud Computing:
Cloud computing builds on established trends for driving the cost out of the delivery of services while increasing the speed and ability with which services are deployed. It shortens the time from sketching out application architecture to actual deployment. 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.
Virtual machines have become the prevalent abstraction and unit of deployment – because they are the least common denominator interface between service providers and developers. Using virtual machines as deployment objects is sufficient for 80 percent of usage, and it helps to satisfy the need to rapidly deploy and scale applications.
Virtual appliances virtual machines that include software that is partially or fully configured to perform a specific task such as a web or database server, further enhances the ability to create and deploy applications rapidly. The combination of virtual machines and appliances as standard deployment objects is one of the key features of cloud computing.
The biggest challenge in cloud computing may be the fact that there is no standard or single architectural method. In fact there are few definitions of the cloud computing concepts that are fully accepted. Therefore its best to view cloud architectures as a set of approaches each with its own examples and capabilities.
A cloud computing system is a set of IT resources designed to be allocated ad hoc to run applications rather than be assigned a static set of applications as is the case in client/server computing. In a cloud computing environment a user requests information from an application. The cloud computing environment must then broker resources to run that application.
One of the most distinguishing characteristics of cloud computing architecture is its close dependency on the hardware components. An online application is just a simple application that could be launched in different servers byut when the application is considered with cloud computing, it will require massive data centers that will ensure the processes are done as expected and timely.
Data centers for cloud computing architecture are not your run-of-the mill data processing centers. It’s composed of different servers with optimal storage capacity and processing speed. They work together to ensure that the application will be operating as expected. The area is usually in a highly controlled environment where it would be constantly monitored through various applications and manually checked for actual physical problems.
Cloud computing is new, its potential is exciting and its applications are limitless. By guaranteeing that cloud resources link effectively with virtual desktop capabilities, enterprises can get the most out of cloud services that are available from third parties. They can also efficiently redirect computing centers into a cloud model for maximum performance and cost effectiveness.
The simplest model of cloud computing can be created using a pool of servers that have been virtualized using an application tool like the web services directory, UDDI or a network tool used for.
On-demand Pay-By-Use Model:
The on-demand self-service pay-by-use nature of cloud computing is also an extension of established trends. From an enterprise perspective the on demand nature of cloud computing helps to support the performance and capacity aspects of service level objectives. The self-service nature of cloud computing allows organizations to create elastic environments that expand and contract based on the workload and target performance parameters. And the pay-by-use nature of cloud computing may take the form of equipment leases that guarantee a minimum level of service from a cloud provider.
Virtualization is a key feature of this model. IT organizations have understood for years that virtualization allows them to quickly and easily create copies of existing environments – sometimes involving multiple virtual machines – to support test, development and staging activities. The cost of these environments is minimal because they can coexist on the same servers as production environments because they use few resources.
New applications can be developed and deployed in new virtual machines on existing servers, opened up for use on the internet, and scaled if the application is successful in the marketplace. This lightweight deployment model has already led to a “Darwinist” approach to business development where beta versions of software are made public and the market decides which applications deserve to be scaled and developed further or quietly retired.
Cloud computing extends this trend through automation. Instead of negotiating with an IT organization for resources on which to deploy an application, a compute cloud is a self-service proposition where a credit card can purchase compute cycles and a web interface or API is used to create virtual machines and establish network relationships between them. Instead of requiring a long term contract for services with an IT organization or service provider, cloud work on pay-by-use or by-by-the–sip model where an application may exist to run a job for a few minutes or hours or it may exist to provide services to customers on a long term basis. Compute clouds are build as if applications are temporary and billing is based on resources consumption- CPU hours used, volumes of data moved, or gigabytes of data stored.
The ability to use and pay for only the resources used shifts the risk of how much infrastructures to purchase from the organization developing the application to the cloud provider. It also shifts the responsibility for architectural decisions from application architects to developers. This shift can increase risk, risk that must be managed by enterprises that have processes in place for a reason and of system, network and storage architects that needs to factor in to cloud computing designs.