What is cloud computing? Cloud computing has become the new buzz word driven largely by marketing and service offerings from big corporate players like Google, IBM and Amazon. Cloud computing is the next stage in evolution of the Internet. Cloud computing provides the means through which everything €” from computing power to computing infrastructure, applications, business processes to personal collaboration €” can be delivered to you as a service wherever and whenever you need.
A brief history of client-server applications
Those of you who have been in the trenches of IT for one decade or two, would remember that the first type of client-server application that was popular is the mainframe and terminal application. At that time, storage and CPU was very expensive and the mainframe pooled both types of resources and served them to thin-client terminals. With the advent of the PC revolution, which brought mass storage and cheap CPUs to the average corporate desktop, the file server gained in popularity as way to enable document sharing and archiving. True to its name, the file server served up storage resources to clients in the enterprise, while the CPU cycles needed to do productive work with those resources were all produced and consumed within the confines of the PC client.
In the early 1990s, the budding Internet finally had enough computers attached to it that academics began thinking seriously about how to connect those machines together to create massive, shared pools of storage and compute power that would be much larger than what any one institution could afford to build. This is when the idea of “the grid” began to take shape.
The term “grid” is misinterpreted as a synonym for “cloud” as they both are made up with the addition of lots of computers connected. However they are two different things:
Grid computing requires the use of software that can divide and farm out pieces of a program as one large system image to several thousand computers. One concern about grid is that if one piece of the software on a node fails, other pieces of the software on other nodes may fail. This is alleviated if that component has a failover component on another node, but problems can still arise if components rely on other pieces of software to accomplish one or more grid computing tasks. Large system images and associated hardware to operate and maintain them can contribute to large capital and operating expenses.
Cloud computing evolves from grid computing and provides on-demand resource provisioning. Grid computing may or may not be in the cloud depending on what type of users are using it. If the users are systems administrators and integrators, they care how things are maintained in the cloud. They upgrade, install, and virtualize servers and applications. If the users are consumers, they do not care how things are run in the system.
The difference between grid computing and cloud computing is hard to grasp because they are not always mutually exclusive. In fact, they are both used to economize computing by maximising existing resources.
However, the difference between the two lies in the way the tasks are computed in each respective environment. In a computational grid, one large job is divided into many small portions and executed on multiple machines. This characteristic is fundamental to a grid; not so in a cloud.
The computing cloud is intended to allow the user to avail of various services without investing in the underlying architecture.
Cloud services include the delivery of software, infrastructure, and storage over the Internet (either as separate components or a complete platform) based on user demand.
Advantages of cloud computing:
The most effective transition to a cloud computing approach enables organizations to yield the following benefits:
On demand service provisioning: by using Self-service provisioning customers can easily get cloud services without going through a lengthy process. The customer simply requests an amount of computing, storage, software, process, or other resources from the service provider.
Elasticity: that is simple to add more stuff. Cloud computing provides the ability to scale up and down when additional users are added and when the application requirements change.
Cost reduction: As a matter of fact, companies are often challenged to increase the functionality of IT while minimizing capital expenditures. By purchasing just the right amount of IT resources on demand the organization can avoid purchasing unnecessary equipment.
Application programming interfaces (APIs): accessibility to software that enables machines to interact with cloud software in the same way the user interface facilitates interaction between humans and computers. Cloud Computing systems typically use REST based APIs.
What is the landscape of cloud computing ?
there are mainly three forms of cloud computing:
Public Cloud: IT resources offered as a service and shared across multiple organizations, managed by an external service provider
Private Cloud: IT resources dedicated to a single organization and offered on demand
Hybrid Cloud: a mix of private and public clouds managed as a single entity to extend capacity across clouds as needed
Which areas of the IT can you leverage with cloud computing ? basically three areas, which are known as the cloud models :
Infrastructure as a Service (IaaS) is the delivery of computer hardware (servers,networking technology, storage, and data center space) as a service. It may also include the delivery of operating systems and virtualization technology to manage the resources. Benefits: makes the acquisition of hardware easier. Makes instant provisioning of hardware resources in a cheap way.
The Platform as a Service layer (Paas) offers development environments that IT organizations can use to create cloud-ready business applications. A PaaS is ultimately a contract between an hosted environment and user-provided extensions.
The Software as a Service (Iaas) layer offers purpose-built business applications In practical terms, this is the piece of cloud you are likely to build.
You might wonder if it’s possible that some services can be both defined as Platform and as Software: the answer is,of course yes! Take for example Facebook. We might define Facebook both as Platform where various services can be delivered and also as business applications (Facebook Api) which are developed by the end user.
IT security is a very complicated area of cloud computing. From one point of view, security could improve due to centralization of data,increased security-focused resources. On the other hand concerns can persist about loss of control over certain sensitive data, and the lack of security for stored kernels. In other words you will be trusting your security to the cloud provider. If that provider hasn€™t done a good job securing its own environment, you could be in trouble. Measuring the quality of a provider€™s approach to security is difficult because many cloud providers don€™t expose their infrastructure to customers.
Neil MacDonald, vice president at Gartner, explains that security must be an integral, but separately configurable part of the private cloud fabric, designed as a set of on-demand, elastic and programmable services. To achieve this, cloud security must display six different attributes:
1. On-Demand Elastic Services
Security needs to be delivered as a service rather than as a set of products siloed within physical appliances. Like other cloud services, it needs to be delivered €˜on demand€™ to protect data and projects when and where protection is needed.
2. Programmable Infrastructure
The security services that are applied across the cloud must be open to being programmed. With programmable security infrastructure, the services should be accessible using RESTful APIs that are programming language and framework independent.
3. Logical Security Policies
As security services are deployed in virtualized data centers and then private clouds, security policies need to be cut away from physical infrastructure and related to logical rather than physical attributes. By removing static security policies (associated with static attributes) the security assessments will be delivered quicker as well.
4. Adaptive Trust Zones
By creating trust zones or logical groups of workloads a better and more efficient security can be delivered.This is in contrast to a security infrastructure where policies are applied on a VM-machine by VM-machine basis.
5. Configurable Security Policy Management
You should be able to configure security levels as your applications move from on-premise to private clouds. Software controls need to be maintained when they are virtualized, the separation of duties assigned to the software should also be maintained.
6. €˜Federatable€™ Policies
Though there are no established standards at the moment, it would be required that as private clouds will be applied incrementally, security polices would be applicable not only to private clouds, but also to the remaining infrastructure, both virtualized and physical, and would be intelligently able to cooperate.
That was an introduction to cloud computing, depicting just the basic concepts. In the next tutorial we will see what are the JBoss’ solutions as far as it concerns cloud computing. Stay tuned!