CC Module 3
CC Module 3
“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 supports any IT service that can be consumed as a utility and delivered through a
network, most likely the Internet. Such characterization includes quite different aspects: infrastructure,
development platforms, application and services.
4.2.1 Architecture
It is possible to organize all the concrete realizations of cloud computing into a layered view covering the
entire stack (see Figure 4.1), from hardware appliances to software systems.
Cloud infrastructure can use various resources like clusters and networked PCs.
It includes database systems and other storage services.
Core Middleware
Virtualization Technologies
Resource Partitioning
Virtual machines allow for precise allocation of hardware resources (like CPU and memory).
Devices can be virtualized to meet user/application needs.
Programming-Level Virtualization
Infrastructure Management
Cloud services should adaptively change to meet availability and performance needs.
SaaS should automatically manage this, while PaaS and IaaS provide APIs for user management.
This structured breakdown simplifies the complex concepts surrounding cloud computing infrastructure.
Table 4.1 summarizes the characteristics of the three major categories used to classify cloud computing
solutions. In the following section, we briefly discuss these characteristics along with some references to
practical implementations.
4.2.2 Infrastructure- and hardware-as-a-service
Key Components:
1. Virtualization: The main technology used to create virtual machines (VMs), which can be
tailored to specific needs (e.g., memory, processors, storage).
2. Service Layers:
o User Interface: Accessed via web applications, allowing users to manage services and
interact with the infrastructure.
o Management Software: Handles VM operations, including:
Scheduling: Allocates resources for VMs.
Pricing/Billing: Manages costs associated with VM usage.
Monitoring: Tracks performance and resource use.
Reservation: Keeps records of past and future VMs.
QoS Management: Ensures quality of service agreements are met.
VM Repository: Catalogs available VM images for users.
Pool Management: Tracks all active VM instances.
3. Physical Infrastructure: Comprises the actual hardware (data centers, clusters, etc.) that runs the
VMs.
Benefits:
For Providers: Efficient use of IT resources and enhanced security for third-party applications.
For Users: Lower maintenance and capital costs, plus the ability to fully customize their cloud
infrastructure.
In essence, IaaS and HaaS offer flexible and scalable infrastructure solutions that streamline computing
resource management for both providers and customers.
Platform-as-a-Service (PaaS) solutions provide a development and deployment platform for running
applications in the cloud. They constitute the middleware on top of which applications are built. A general
overview of the features characterizing the PaaS approach is given in Figure 4.3.
From the user's perspective, PaaS offers interfaces—either web-based or through programming APIs—
that allow them to build and deploy applications without worrying about hardware or low-level services.
Different PaaS implementations cater to various development models:
1. Web-based Interfaces: Some provide visual tools for rapid application development.
2. Programming Language Interfaces: Others allow coding in languages like Java, .NET, Python,
or Ruby, offering more flexibility but longer development cycles.
Developers can also test applications in a local runtime environment that mimics cloud conditions before
deploying them.
PaaS can either integrate middleware with infrastructure (managed by the provider) or offer middleware
for local installations (Pure PaaS). In the latter case, the middleware itself is the primary value. Some
vendors provide both middleware and infrastructure solutions.
Categories of PaaS:
1. PaaS-I: These platforms provide a complete environment for developing and deploying
applications directly in the cloud. Examples include Force.com and Longjump. They combine
both middleware (software that connects different applications) and infrastructure.
2. PaaS-II: These solutions focus on scalable infrastructure mainly for web applications.
Developers use specific APIs to build their apps on platforms like Google App Engine, which
supports languages like Java and Python. Other examples include Heroku and Engine Yard,
which support Ruby applications.
3. PaaS-III: These platforms are more flexible and can be used for various types of applications, not
just web apps. Microsoft Azure is a leading example. Other solutions provide middleware and
support different services.
Runtime Framework: This is the software stack that runs the applications, executing user code
based on set policies.
Abstraction: PaaS focuses on application deployment and management rather than just providing
raw infrastructure (like IaaS). It simplifies the process for developers.
Automation: PaaS automates application deployment and resource scaling based on user needs,
which is not typically available in IaaS.
Cloud Services: PaaS platforms offer various tools and APIs to help developers create and
manage cloud applications easily.
PaaS solutions often allow integration with third-party services, which enhances flexibility in app
development. However, a major concern is vendor lock-in: if you build an app on a specific
PaaS, it might be hard to move it elsewhere due to dependencies on that platform's APIs and
infrastructure.
Financial Benefits:
PaaS can reduce costs in developing, deploying, and managing applications. It allows businesses
to focus on their core activities rather than dealing with constant technology upgrades.
In summary, PaaS offers various platforms that help developers build and manage applications in the
cloud, but they come with some trade-offs regarding flexibility and potential vendor lock-in.
Software-as-a-Service (SaaS) is a way of delivering software applications over the internet. Instead of
installing software on your computer, you can access these applications through a web browser. This
approach makes it easier for users because they don’t have to worry about managing hardware or software
updates—those tasks are handled by the service provider.
1. Accessibility: Users can access the application from anywhere with an internet connection, just
by logging in.
2. Cost-Effective: Customers typically pay a subscription fee instead of a large upfront cost. This
fee often covers everything, including updates and support.
3. Customization: SaaS applications can often be tailored to fit specific user needs, even though
they share the same basic platform with other users.
4. Multitenancy: This means that a single instance of the software serves multiple users. The
provider maintains the application, ensuring that it runs smoothly for everyone.
5. History: The SaaS model started gaining popularity in the late 1990s and was officially named in
2001. It evolved from earlier concepts like Application Service Providers (ASPs), which offered
similar services but were less flexible.
6. Integration: Modern SaaS applications can integrate with other services and components,
allowing businesses to create a customized solution that meets their specific needs.
7. Examples: Common examples of SaaS include customer relationship management (CRM) tools
like Salesforce, office applications like Google Docs, and social networking platforms like
Facebook.
In summary, SaaS simplifies software usage by making it accessible online, reducing costs, allowing
customization, and integrating various services, all while freeing users from the complexities of
installation and maintenance
4.3 Types of clouds
Cloud computing is a model that enables on-demand access to a shared pool of configurable computing
resources, such as servers, storage, and applications. The various types of clouds are categorized based on
their administrative domains and deployment models. Here’s a breakdown of the four main types of
clouds:
Definition: Public clouds are available to anyone who wants to use them and are owned and
operated by third-party cloud service providers.
Accessibility: Open to the general public, meaning that individuals and organizations can access
services without special permissions.
Examples: Services like Amazon Web Services (AWS), Google Cloud Platform, and Microsoft
Azure.
Public clouds are a way to access computing services over the internet, allowing anyone to use them from
anywhere at any time. They consist of multiple datacenters that work together to provide these services.
Customers can easily sign up, enter their information, and start using the services offered without needing
to invest in their own hardware.
One major advantage of public clouds is cost savings. Small businesses can start without large upfront
costs and can easily adjust their IT needs as their business grows or shrinks. This flexibility is a key
feature, allowing customers to rent resources instead of buying them.
Public clouds are designed to serve many users at once, which is known as multitenancy. Each customer
gets a separate virtual space to ensure privacy and performance. Providers track resource usage to ensure
accountability and to bill customers accurately.
Infrastructure as a Service (IaaS), like Amazon EC2, which provides computing resources.
Platform as a Service (PaaS), like Google App Engine, which helps developers create
applications.
Software as a Service (SaaS), like Salesforce, which offers applications over the internet.
These services are built to scale, meaning they can handle more users or higher demand without a hitch.
Public clouds often have datacenters in different parts of the world, allowing customers to choose
locations that best suit their needs. For example, Amazon Web Services has datacenters in the US,
Europe, Singapore, and Australia, which helps deliver services more effectively. Each cloud service uses
specific software to manage these resources, depending on what services it provides
Definition: Private clouds are dedicated to a single organization and are typically hosted within
the organization’s own data center.
Accessibility: Accessible only to the members of the organization or a specific group within it.
Benefits: Offers greater control over data, security, and compliance, making them suitable for
businesses with strict regulatory requirements.
Public clouds offer a way for organizations to save money on IT by reducing costs and avoiding heavy
investments in infrastructure. However, they come with significant drawbacks, particularly regarding
control and security.
1. Loss of Control: When using a public cloud, the cloud provider controls the infrastructure, which
means sensitive data and critical business logic are out of the organization’s direct oversight.
2. Security Risks: Organizations, especially government and military entities, often avoid public
clouds due to concerns about data breaches. If a cloud provider's security is compromised,
sensitive information could be exposed.
3. Regulatory Challenges: The location of data centers can affect data regulations. For example,
U.S. laws like the USA PATRIOT Act can grant government access to data stored in the U.S.,
making it risky for some organizations to store sensitive data there.
1. Enhanced Control: Organizations maintain control over their infrastructure, keeping sensitive
data in-house and reducing security risks.
2. Tailored Resource Management: Private clouds allow organizations to manage resources more
flexibly, often billing departments based on usage rather than using a pay-as-you-go model.
3. Improved Security: Since data remains within the organization's infrastructure, it's easier to
maintain security protocols and compliance with regulations.
Private clouds use existing IT resources like data centers or clusters and run on virtualization
technologies (like VMware or KVM).
They can be built using various software solutions that help manage these resources and offer
services similar to public clouds, but without exposing sensitive information externally.
Limitations:
While private clouds provide better control and security, they typically do not scale as easily as public
clouds. This means they may not handle sudden increases in demand as efficiently.
In summary, private clouds serve as a safer and more controlled alternative to public clouds, particularly
for organizations that need to manage sensitive data or comply with strict regulations.
3. Hybrid Clouds
Definition: Hybrid clouds combine elements of both public and private clouds, allowing data and
applications to be shared between them.
Structure: Often involves a private cloud enhanced with additional resources or services from a
public cloud.
Advantages: Offers flexibility, allowing organizations to scale resources up or down based on
demand while maintaining control over sensitive data.
1. Dynamic Provisioning:
o This means you can quickly add or remove resources based on current needs.
o For example, if you suddenly need more computing power, you can temporarily use
resources from a public cloud.
2. Scheduling:
o Advanced scheduling systems help decide when to use public resources and how to
manage costs effectively.
o Some tools like OpenNebula and InterGrid can help manage these resources by
considering factors like budget and workload.
PaaS is a type of cloud service that helps in managing applications on hybrid clouds.
It ensures applications run smoothly and meet quality standards by allocating resources
dynamically.
For example, if an application needs more power, the system can rent additional resources from a
public cloud while keeping track of costs.
Conclusion
Hybrid clouds offer a flexible solution for businesses, allowing them to keep sensitive information secure
while also leveraging the scalability of public clouds. This setup helps organizations manage their IT
needs efficiently, especially during high-demand periods
4. Community Clouds
Definition: Community clouds are shared by several organizations with similar requirements or
interests, often in the same industry.
Accessibility: Designed to be accessible to a specific community of users, allowing them to
collaborate and share resources.
Use Cases: Useful for industries that require collaboration, such as healthcare, finance, or
education, where shared infrastructure can address common needs
Community clouds are a type of cloud computing that serves a specific group of organizations with
similar needs. Here’s a simplified breakdown:
How is it Different?
Community vs. Public Cloud: Unlike public clouds, which cater to a wide range of users,
community clouds focus on a specific group. They are also different from private clouds, which
are used by a single organization.
Key Characteristics:
Managed Together: The cloud can be managed by the organizations involved or by a third party.
Flexible Deployment: It can operate on-site (on-premise) or through remote servers (off-
premise).
Examples of Use:
1. Media Industry: Companies can collaborate on content production, sharing large amounts of
data and processing power.
2. Healthcare: Hospitals can share non-sensitive information while keeping patient data secure.
3. Energy Sector: Various organizations can work together to manage resources and services
effectively.
4. Public Sector: Government agencies can streamline processes like public hearings and
infrastructure planning.
5. Scientific Research: Researchers can share computing resources for large-scale scientific
projects.
Community clouds bring together organizations with shared goals, allowing them to collaborate and use
resources efficiently while maintaining control and promoting sustainability. The focus on community
ensures that the cloud meets the specific needs of its users.
Cloud computing allows businesses to use IT resources—like servers and software—over the internet
instead of owning physical hardware and software. This means you can access and use what you need
without having to buy and maintain it yourself.
1. Tiered Pricing:
o Services are offered in different levels or "tiers" at set prices. For example, you might pay
more for a server with more power.
2. Per-Unit Pricing:
o Customers pay based on the specific resources they use, like how much memory or data
transfer they need.
3. Subscription-Based Pricing:
o Users pay a regular fee to access software services, which is common for things like
customer management tools.
Overall Impact:
By using cloud computing, businesses can convert large, one-time capital expenses into smaller,
manageable operational costs. This flexibility helps them allocate resources more efficiently and can lead
to significant savings over time, ultimately contributing to higher profits.
In summary, cloud computing simplifies IT management and cuts costs, making it easier for businesses to
operate efficiently.
cloud computing presents many challenges for industry and academia. There is a significant amount of
work in academia focused on defining the challenges brought by this phenomenon
4.5.1 Cloud computing is a way to access and use IT resources over the internet instead of having to own
and manage them yourself. Here’s a simple breakdown of its key features and classifications:
1. On-Demand Self-Service:
o Users can access computing resources whenever they need them, without needing help
from IT staff.
2. Broad Network Access:
o Services are available over the internet and can be accessed from various devices, like
laptops, smartphones, or tablets.
3. Resource Pooling:
o Multiple users share the same physical resources (like servers), which are dynamically
allocated to meet their needs.
4. Rapid Elasticity:
o Resources can be quickly scaled up or down based on demand. If you need more power,
you can get it almost instantly.
5. Measured Service:
o Users are billed based on their actual usage, similar to how utilities charge for water or
electricity.
Deployment Models
Cloud services can also be categorized based on how they are deployed:
1. Public Cloud:
o Services are available to anyone over the internet.
2. Private Cloud:
o Services are used exclusively by one organization, often hosted on-premises.
3. Community Cloud:
o Services are shared by a group of organizations with common concerns.
4. Hybrid Cloud:
o A combination of public and private clouds, allowing data and applications to be shared
between them.
Alternative Perspectives
Different organizations have proposed their own ways to classify cloud computing:
David Linthicum offers a detailed classification with ten different categories, focusing on how
cloud computing can fit within businesses.
University of California, Santa Barbara (UCSB) takes a layered approach, breaking down
cloud computing into five main levels (applications, software environments, etc.), each serving
different users' needs.
Cloud computing is still evolving, and definitions or classifications may change over time as new
technologies and practices emerge. The goal is to understand and refine what cloud computing means for
businesses and users alike.
One big problem is vendor lock-in, which happens when businesses become stuck using one provider's
services. If they want to switch to another provider—whether for better features or because their current
provider can't meet their needs—it can be very costly and time-consuming. Having clear standards can
help reduce this risk and make it easier for companies to move between different cloud services.
Right now, the world of cloud standards is a bit like the early days of the Internet, where everyone used
different technologies and protocols. Some organizations are working to create standards, such as the
Cloud Computing Interoperability Forum and the Open Cloud Consortium. They aim to make it easier for
different cloud services to talk to each other.
One major area of focus is Infrastructure as a Service (IaaS), where different vendors often use their
own formats for virtual machines (the digital environment where applications run). The Open
Virtualization Format (OVF) is one attempt to create a standard way to package these virtual machines so
they can be used across different platforms. However, only a few providers support it, and the real
challenge remains in making it easy to switch live applications from one vendor to another.
Another area needing improvement is the development of common APIs (Application Programming
Interfaces). Right now, many cloud services have their own unique ways to interact with their systems,
making it hard to switch between them. Although some open-source providers mimic Amazon Web
Services (AWS) to offer alternatives, there's still no consistent set of APIs that everyone follows.
In summary, establishing clear standards and promoting interoperability in cloud computing could greatly
help businesses avoid vendor lock-in and make it easier to choose the best solutions for their needs.
Cloud computing allows businesses to easily increase or decrease their computing resources as needed,
which is a major advantage. This means they can access more power—like storage and processing—
without having to invest heavily in physical hardware.
To make this possible, the software that manages these cloud resources (called middleware) needs to be
designed with scalability in mind. This means it should work well no matter how many users or resources
are involved, ensuring that it can handle growth in performance, size, and user load.
Since many users rely on the cloud for resources they can't afford to maintain themselves, it's important
for the middleware to not only provide these resources efficiently but also to be resilient against failures.
In some cases, being able to recover from problems (like outages) is even more critical than having the
system run at peak efficiency.
The challenge is to create systems that can grow as needed, withstand failures, and remain easy to
manage, all while still performing well.
1. Security Risks
Data Protection: Traditional methods, like encryption, help protect sensitive information from
unauthorized access. However, once data is stored in the cloud, it often needs to be decrypted for
applications to use it. This means that even secure data can be exposed while it’s being processed
in memory.
Virtualization Threats: Cloud services rely on virtualization, which means multiple applications
run on shared hardware. This can create new security risks that weren't present before, such as
unauthorized access by the service provider's management software.
2. Loss of Control
When you use cloud services, you often lose direct control over your data and how it’s processed.
This makes it hard to ensure that your information is handled securely and privately.
3. Trust Issues
Users must decide whether they trust their cloud service provider. Concerns can arise if the
provider has to comply with certain laws that might conflict with user privacy expectations.
Cloud services are often built using multiple layers of third-party services. If something goes
wrong, it can be challenging to determine who is responsible for any data breaches or privacy
violations.
4. Complex Responsibility
In the cloud, the delivery of services can involve many different companies. If a privacy issue
occurs, figuring out who is liable (the provider, the third-party service, etc.) can be complicated.
5. Overall Challenges
The main challenge is to create secure and trustworthy cloud systems that address technical,
social, and legal perspectives. This means developing better technology, clearer regulations, and
stronger trust relationships between users and providers.
In summary, while cloud computing can be very useful, it comes with challenges related to keeping data
safe and private, trusting providers, and managing responsibilities when things go wrong.
Cloud computing is changing how businesses use and manage IT services. Instead of owning and
maintaining hardware and software, companies now access these resources over the Internet as needed,
paying for what they use. This shift brings some important changes for organizations, especially in how
their IT departments function and how they manage data and services.
Organizational Challenges:
Security Risks: With less control, there are new security concerns. Organizations must
implement strong security measures and protocols to protect their data in the cloud.
Skills Shift: The skills needed for IT staff are changing. Instead of needing deep technical
knowledge of hardware, staff may need skills in vendor management, cloud services, and cyber
security. This shift may lead to concerns about job security and value within the organization.
In summary, while cloud computing offers many advantages, it also introduces significant challenges that
require businesses to rethink their processes, roles, and relationships among teams.