Cloud Minor1
Cloud Minor1
I don’t care where my servers are, who manages them, where my documents are stored, or where my applications are
hosted. I just want them always available and access them from any device connected through Internet. And I am willing
to pay for this service for as a long as I need it.
Vision:
Cloud computing refers to both the applications delivered as services over the Internet and the hardware and system
software in the datacenters that provide those services.
Cloud computing is a model for enabling ubiquitous, 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.
A fundamentalcharacteristicofcloudcomputingisthecapabilitytodeliver,ondemand,avariety of
ITservicesthatarequitediversefromeachother.Thisvarietycreatesdifferentperceptionsof
whatcloudcomputingisamongusers.Despitethislackofuniformity,itispossibletoclassify cloud computing services
offerings into three major categories: Infrastructure-as-a-Service(IaaS), Platform-as-a-Service(PaaS), and
Software-as-a-Service(SaaS).
Each of these cloud service models offers distinct advantages and is suited to different
use cases and requirements. Organizations often choose a combination of these models
based on their specific needs and priorities, leveraging the flexibility and scalability of
cloud computing to drive innovation and efficiency in their operations.
• No up-front commitments
• On-demand access
• Nice pricing
• Energy efficiency
distributed systems:
A distributed system is a collection of independent computers that appears to its users as a single coherent system.
Distributed systems often exhibit other properties such as heterogeneity, openness, scalability, transparency,
concurrency, continuous availability, and independent failures. To some extent these also characterize clouds,
especially in the context of scalability, concurrency, and continuous availability.
+ Mainframes:
These were the first examples of large computational facilities leveraging multiple processing units. Mainframes
were powerful, highly reliable computers specialized for large data movement and massive input/output (I/O)
operations. They were mostly used by large organizations for bulk data processing tasks such as online
transactions, enterprise resource planning, and other operations involving the processing of significant amounts of
data.
+ Clusters:
Built by commodity machines, they were cheaper than mainframes and made high-performance computing
available to a large number of groups, including universities and small research labs. Cluster technology
contributed considerably to the evolution of tools and frameworks for distributed computing.
+ grid :
Grid computing [8] appeared in the early 1990s as an evolution of cluster computing. In an analogy to the power
grid, grid computing proposed a new approach to access large computational power, huge storage facilities, and a
variety of services. Users can “consume” resources in the same way as they use other utilities such as power, gas,
and water. Grids initially developed as aggregations of geographically dispersed clusters by means of Internet
connections. These clusters belonged to different organizations, and arrangements were made among them to
share the computational power
Cloud computing is often considered the successor of grid computing. In reality, it embodies aspects of all these
three major technologies. Computing clouds are deployed in large datacenters hosted by a single organization that
provides services to others. Clouds are characterized by the fact of having virtually infinite capacity, being tolerant
to failures, and being always on, as in the case of mainframes. In many cases, the computing nodes that form the
infrastructure of computing clouds are commodity machines, as in the case of clusters. The services made available
by a cloud vendor are consumed on a pay-per-use basis, and clouds fully implement the utility vision intro- duced
by grid computing.
Virtualization:
It involves using specialized software to create a virtual or software-created
version of a computing resource rather than the actual version of the same
resource. With the help of Virtualization, multiple operating systems and
applications can run on the same machine and its same hardware at the same
time, increasing the utilization and flexibility of hardware.
In other words, one of the main cost-effective, hardware-reducing, and energy-
saving techniques used by cloud providers is Virtualization. Virtualization allows
sharing of a single physical instance of a resource or an application among
multiple customers and organizations at one time. It do
Benefits of Virtualization
More flexible and efficient allocation of resources.
Enhance development productivity.
It lowers the cost of IT infrastructure.
Remote access and rapid scalability.
High availability and disaster recovery.
Pay peruse of the IT infrastructure on demand.
Enables running multiple operating systems.
Drawback of Virtualization
High Initial Investment: Clouds have a very high initial investment, but it is
also true that it will help in reducing the cost of companies.
Learning New Infrastructure: As the companies shifted from Servers to
Cloud, it requires highly skilled staff who have skills to work with the cloud
easily, and for this, you have to hire new staff or provide training to current
staff.
Risk of Data: Hosting data on third-party resources can lead to putting the
data at risk, it has the chance of getting attacked by any hacker or cracker
very easily.
Characteristics of Virtualization
Increased Security: The ability to control the execution of a guest program
in a completely transparent manner opens new possibilities for delivering a
secure, controlled execution environment. All the operations of the guest
programs are generally performed against the virtual machine, which then
translates and applies them to the host programs.
Managed Execution: In particular, sharing, aggregation, emulation, and
isolation are the most relevant features.
Sharing: Virtualization allows the creation of a separate computing
environment within the same host.
Aggregation: It is possible to share physical resources among several
guests, but virtualization also allows aggregation, which is the opposite
process.
Web2.0:
The Web is the primary interface through which cloud computing delivers its services. At present, the Web
encompasses a set of technologies and services that facilitate interactive information sharing, collaboration, user-
centered design, and application composition. This evolution has transformed the Web into a rich platform for
application development and is known as Web 2.0.
Web 2.0 brings interactivity and flexibility into Webpages, providing enhanced user experience by gaining Web-
based access to all the functions that are normally found in desktop applications.
From a social perspective, Web 2.0 applications definitely contributed to making people more accustomed to the
use of the Internet in their everyday lives and opened the path to the acceptance of cloud computing as a
paradigm, whereby even the IT infrastructure is offered through a Web interface.
A service is an abstraction representing a self-describing and platform-agnostic component that can perform any
function—anything from a simple function to a complex business process. Virtually any piece of code that
performs a task can be turned into a service and expose its functionalities through a network- accessible
protocol. A service is supposed to be loosely coupled, reusable, programming language independent, and
location transparent.
Loose coupling allows services to serve different scenarios more easily and makes them reusable. Independence
from a specific platform increases services accessibility. Thus, a wider range of clients, which can look up services
in global registries and consume them in a location-transparent manner, can be served.
Service-oriented computing introduces and diffuses two important concepts, which are also fun- damental to cloud
computing: quality of service(QoS) and Software-as-a-Service(SaaS):-
Quality of service (QoS) identifies a set of functional and nonfunctional attributes that can be used to evaluate the
behavior of a service from different perspectives. These could be performance metrics such as response time, or
security attributes, transactional integrity, reliability, scalability, and availability.
The concept of Software-as-a-Service introduces a new delivery model for applications. The term has been
inherited from the world of application service providers (ASPs), which deliver software services-based solutions
across the wide area network from a central datacenter and make them available on a subscription or rental basis.
The ASP is responsible for maintaining the infrastructure and making available the application, and the client is
freed from maintenance costs and difficult upgrades
One of the most popular expressions of service orientation is represented by Web Services. These introduce the
concepts of SOC into the World Wide Web, by making it consumable by applications and not only humans. Web
services are software components that expose functionalities accessible using a method invocation pattern that
goes over the HyperText Transfer Protocol (HTTP). The development of systems in terms of distributed services
that can be composed together is the major contribution given by SOC to the realization of cloud computing. Web
services technolo- gies have provided the right tools to make such composition straightforward and easily
integrated with the mainstream World Wide Web (WWW) environment.
Another class of applications that can potentially gain considerable advantage by leveraging cloud computing is
represented by resource-intensive applications. These can be either data- intensive or compute-intensive
applications. Forexample, scientific applications can require huge computing capacity to perform large-scale
experiments once in a while,so it is not feasible to buy the infrastructure supporting them. In this case, cloud
computing can be the solution. Resource-intensiveapplications are not interactive and they are mostly charac-
terized by batch processing.
Cloud computing provides a solution for on-demand and dynamic scaling across the entire stack of computing. This
is achieved by
(a) providing methods for renting compute power, storage, and networking;
(b) offering runtime environments designed for scalability and dynamic sizing; and
(c) providing application services that mimic the behavior of desktop applications but that are completely hosted
and managed on the provider side.
Infrastructure and system development
Distributed computing is a foundational model for cloud computing because cloud systems are distributed
systems. Besides administrative tasks mostly connected to the accessibility of resources in the cloud, the extreme
dynamism of cloud systems—where new nodes and services are provisioned on demand—constitutes the major
challenge for engineers and developers
1. Foundational Technologies:
Distributed computing, virtualization, service orientation, and Web 2.0 form the
core technologies enabling the provisioning of cloud services globally.
2. Distributed Computing:
Cloud systems are distributed systems, requiring consideration of administrative
tasks related to resource accessibility.
The extreme dynamism of cloud systems, with on-demand provisioning of nodes
and services, poses a major challenge for engineers and developers, primarily
addressed at the middleware layer.
3. Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS):
IaaS solutions provide capabilities for adding and removing resources, leaving
deployment decisions to users.
PaaS solutions embed control algorithms and rules into their core offering,
facilitating resource provisioning and management.
4. Integration:
Integration between cloud resources and existing system deployments is a
significant concern, requiring seamless interaction.
5. Web 2.0 Technologies:
Web 2.0 technologies serve as the interface for delivering, managing, and
provisioning cloud computing services.
Service orientation defines the architecture of cloud computing systems,
summarized as XaaS (Everything-as-a-Service).
6. Virtualization:
Virtualization is a fundamental element of cloud computing infrastructure, posing
challenges in managing virtual environments.
Developers must understand the limitations of selected virtualization
technologies and their implications on system components' volatility.
7. Design Considerations:
Cloud computing mechanisms address demand surges by dynamically replicating
computing components.
System design should consider dynamism, scalability, and volatility to effectively
utilize cloud computing technologies.
In summary, cloud computing technologies offer mechanisms to address demand
fluctuations through dynamic replication of computing components, requiring
thoughtful consideration of design and development approaches.