BLOCK-1
INTRODUCTION TO CLOUD COMPUTING
What is Cloud Computing?
Cloud Computing can be defined as delivering computing power( CPU, RAM,
Network Speeds, Storage OS software) a service over a network (usually on the
internet) rather than physically having the computing resources at the customer
location.
Example: AWS, Azure, Google Cloud
Cloud Computing
History and Evolution of Cloud Computing
Distributed systems
A distributed system is a computing environment. Different components are distributed
across multiple computers connected by a network.
These devices divided the work, collaborating their efforts to accomplish the
assignment more efficiently than when a single device was in charge.
Scalability, concurrency, continuous availability, heterogeneity, and failure
independence are all characteristics of distributed systems.
The main issue with this system was that all plans had to be present in the exact
geographical location.
To address this issue, distributed computing gave rise to three new types of
computing:
1. Mainframe computing
2. Cluster computing
3. Grid computing
1. Mainframe computing
1. Large organizations use mainframe computing for critical applications, bulk data
processing, massive throughput, hot-swapping of hardware, etc.
2. Yet today, these are used as these systems have virtually no downtime and high
fault tolerance.
3. These increased the system’s processing capabilities after distributed computing.
4. However, these were prohibitively expensive.
5. Cluster computing emerged as a cost-cutting alternative to mainframe technology.
2. Cluster computing
1. It is a collection of computers that are either tightly or loosely connected and work
together to function as a single entity.
2. The connected computers execute operations in unison, giving rise to the concept of
a unified system. A high-bandwidth network generally links together the clusters.
3. In addition, you can easily add new nodes to the cluster if necessary. Therefore, this
addressed the cost issue to some extent, but the point of geographical constraints
remained.
4. Grid computing came into the picture as a solution to this problem.
3. Grid computing
1. In grid computing, a network of computers collaborates to complete a task that
would have been unlikely for a single machine to complete.
2. To function as a virtual supercomputer, all machines on that network must follow
the same protocol.
3. Different systems were placed at entirely different geographical locations, and these
all were connected via the internet.
4. Although it solved some problems, new problems emerged as the distance between
the nodes increased.
3. Web 2.0
1. In comparison to the early days of the internet, Web 2.0 describes the current state of
online technology. It includes increased user interactivity and collaboration and
improved communication channels.
2. As a result, we now have interactive and dynamic web pages. It also improves the
flexibility of web pages.
4. Virtualization
3. The fundamental technology that underpins cloud computing is virtualization.
4. This software separates compute environments from physical infrastructures, allowing
multiple operating systems and applications to simultaneously run on the same
machine.
5. Utility computing
1. Utility computing allows users to scale up and down based on their needs.
2. Clients, users, or businesses can rent data storage space, computing power, or even
hardware such as CPUs, monitors, etc.
3. This is how these technologies contributed to the making of cloud computing.
Benefits of Cloud Computing
1. Lower IT infrastructure and computer costs for users
2. Improved performance
3. Fewer Maintenance issues
4. Instant software updates
5. Improved compatibility between Operating systems
6. Backup and recovery
7. Performance and Scalability
8. Increased storage capacity
9. Increase data safety
10. Easy Access to Information
1. Public Cloud:-
This type of cloud is used usually for B2C (Business to Consumer) type interactions.
Here the computing resource is owned, governed and operated by government, an
academic or business organization.
2. Private Cloud:-
Here, computing resources are deployed for one particular organization. This method
is more used for intra-business interactions.
Where the computing resources can be governed, owned and operated by the same
organization.
3. Hybrid Cloud:-
This type of cloud can be used for both type of interactions - B2B (Business to
Business) or B2C ( Business to Consumer).
This deployment method is called hybrid cloud as the computing resources are bound
together by different clouds.
4. Community Cloud:-
Here, computing resources are provided for a community and organizations.
Cloud Computing Architecture
Cloud Computing Architecture
Cloud computing comprises of two components front end and back end.
Front end consist client part of cloud computing system. It comprise of interfaces
and applications that are required to access the cloud computing platform.
While back end refers to the cloud itself, it comprises of the resources that are
required for cloud computing services.
It consists of virtual machines, servers, data storage, security mechanism etc. It is
under provider’s control.
Cloud computing distributes the file system that spreads over multiple hard disks and
machines.
Data is never stored in one place only and in case one unit fails the other will take over
automatically.
The user disk space is allocated on the distributed file system, while another important
component is algorithm for resource allocation.
Cloud computing is a strong distributed environment and it heavily depends upon
strong algorithm.
Cloud computing infrastructure
Cloud infrastructure consists of all hardware and software components that are
needed to support the delivery of cloud services to the customer.
The main physical components of cloud infrastructure are networking
equipment, servers and data storage.
Cloud infrastructure also includes a hardware abstraction layer that enables the
virtualization of resources and helps to drive down costs through economies of
scale.
Cloud Computing Services
Software as a Service (SaaS)
Platform as a Service (PaaS)
Infrastructure as a Service (IaaS)
SaaS (Software as a Service)
1. SaaS or software as a service is a software distribution model in which
applications are hosted by a vendor or service provider and made available to
customers over a network (internet).
SaaS (Software as a Service)
2. SaaS is becoming an increasingly prevalent delivery model as underlying
technologies that supports Service Oriented Architecture (SOA) or Web Services.
3. Through internet this service is available to users anywhere in the world.
4. Traditionally, software application needed to be purchased upfront &then installed it
onto your computer.
5. SaaS users on the other hand, instead of purchasing the software subscribes to it,
usually on monthly basis via internet.
SaaS (Software as a Service)
7. Anyone who needs an access to a particular piece of software can be subscribe as a
user, whether it is one or two people or every thousands of employees in a
corporation.
8. SaaS is compatible with all internet enabled devices.
9. Many important tasks like accounting, sales, invoicing and planning all can be
performed using SaaS.
PaaS (Platform as a Service)
1. Platform as a service, is referred as PaaS, it provides a platform and environment
to allow developers to build applications and services.
2. This service is hosted in the cloud and accessed by the users via internet.
3. PaaS services are constantly updated & new features added.
4. Software developers, web developers and business can benefit from PaaS.
5. It provides platform to support application development.
6. It includes software support and management services, storage, networking,
deploying, testing, collaborating, hosting and maintaining applications.
IaaS (Infrastructure as a Service)
1. IaaS (Infrastructure as a service) is a complete package for computing.
2. It provides access to computing resources in a virtualized environment “the
cloud” on internet.
3. For small scale businesses who are looking for cutting cost on IT
infrastructure, IaaS is one of the solutions.
4. Annually a lot of money is spent in maintenance and buying new components
like hard-drives, network connections, external storage device etc. which a
business owner could have saved for other expenses by using IaaS.
Obstacles for cloud technology
Obstacle 1: Business Continuity and Service Availability
1. Organizations often worry about the availability of the service provided by the
cloud providers.
2. Even the popular service providers like Amazon, Google, Microsoft experience
outages.
3. Keeping the technical issues of a availability aside, a cloud provider could
suffer outages for non-technical reasons like going out of business or regulatory
action.
Obstacle 2: Data Lock-In
1. Cloud lock-in (also known as vendor lock-in or data lock-in) occurs when
transitioning data, products, or services to another vendor’s platform is difficult and
costly, making customers more dependent (locked-in) on a single cloud storage
solution.
2. Some vendors, like AWS, lock-in customers by charging excessive transfer fees to
move data out of their cloud, and other cloud companies lock-in customers by
limiting their products’ integration potential with other vendor products.
Obstacle 3: Data Confidentiality/Auditability
1. Security of sensitive information in the cloud is one of the most often cited objections
to cloud computing. Cloud users face security threats both from outside and inside the
cloud.
2. The cloud user is responsible for application-level security. The cloud provider is
responsible for physical security, and likely for enforcing external firewall policies.
Security for intermediate layers is shared between the user and the operator.
3. Although cloud makes external security easier, it does pose new problems related to
internal security.
4. Cloud providers must guard against theft or denial-of-service attacks by users. Users
need to be protected from one another.
Obstacle 4: Data Transfer Bottlenecks
1. Now-a-days cloud applications are becoming data-intensive.
2. The data store capacity of enterprise applications or academic scientific programs
might range from a few terabytes to a few petabytes or even more.
3. Transferring such high volumes of data between two clouds might take from a few
days to even months with network having high data rates.
Obstacle 5: Performance Unpredictability
1. In the cloud virtual machines can share CPUs and main memory effectively but
network and I/O sharing is more problematic.
2. As a result, different Amazon EC2 instances vary more in their I/O performance than
in main memory performance.
3. The obstacle to attracting HPC is, HPC applications need to ensure that all the
threads of a program are running simultaneously. (High performance computing)
Obstacle 6: Scalable Storage
1. The problem with storage is it’s rigid behavior towards scalability.
2. There have been many attempts to answer this, varying in the richness of the query
and storage APIs, the performance guarantees offered, and the resulting consistency
semantics.
Obstacle 7: Bugs in Large-Scale Distributed Systems
3. One of the difficult challenges in cloud computing is removing errors in large-scale
distributed systems.
4. A common warning is that these bugs cannot be reproduced in smaller
configurations, so the debugging must occur at scale in the production data centers.
Obstacle 8: Scaling Quickly
1. Pay-as-you-go model is well applied for storage and network bandwidth, as they
can be measured in terms of bytes transferred.
2. Computation is slightly different, depending on the virtualization level.
3. For example, Google App Engine automatically scales in response to load
increases and decreases, and users are charged by the cycles used.
4. AWS charges by the hour for the number of instances that are alive (even when
they are inactive).
Obstacle 9: Reputation Fate Sharing
1. One customer’s bad behavior can affect the reputation of other customers using
the same cloud.
2. For example, In March 2009, FBI raided a Dallas data center because a
company whose services are hosted there was being investigated for possible
criminal activity, which affected a number of other innocent customers who are
also hosted in the same data center.
Obstacle 10: Software Licencing
1. Current software licensing bills its consumers on the basis of how many machines
(physical) on which the software is going to be installed.
2. The problem with cloud is, the computational units are VMs instead of physical
machines.
3. A physical machine might have tens of VMs running on it. So, how does software
vendors license their software?
Cloud challenges
1. Security and Privacy
Security and privacy are the main challenge in cloud computing.
These challenges can reduced by using security applications, encrypted file systems,
data loss software.
2. Interoperability
• The application on one platform should be able to incorporate services from the other
platform. This is known as Interoperability.
• It is becoming possible through web services, but to develop such web services is
complex.
3. Portability
The applications running on one cloud platform can be moved to new cloud platform
and it should operate correctly without making any changes in design, coding.
The portability is not possible, because each of the cloud providers uses different
standard languages for their platform.
4. Service Quality
The Service-Level Agreements (SLAs) of the providers are not enough to guarantee
the availability and scalability.
The businesses disinclined to switch to cloud without a strong service quality
guarantee.
5.Computing Performance
High network bandwidth is needed for data intensive applications on cloud, this
results in high cost.
In cloud computing, low bandwidth does not meet the desired computing
performance.
6.Reliability and Availability
Most of the businesses are dependent on services provided by third-party, hence it is
mandatory for the cloud systems to be reliable and robust.
Cloud vulnerabilities
1. Cloud Misconfiguration
1. Cloud misconfiguration is probably the most common vulnerability organizations
face, as reported in a recent NSA study.
2. Misconfigurations can take many forms and shapes.
3. They are often caused by a lack of knowledge of good practices or lack of peer
review from your DevOps/infra team.
2 . Insecure APIs
1. APIs are proliferating in modern software development, being used in microservices,
application and website backends.
2. They must handle requests received from mobile devices, applications, webpages and
third parties, as well as bots, spammers and hackers.
3. This is why having a secure API is critical to ensuring cyber threat mitigation and to
protect against unwanted traffic.
3. Lack of Visibility
1. As the use of cloud services increases, so does the scale of your infrastructure.
2. When companies are using thousands of instances of cloud services, it can be easy
to get lost in them or forget about some of those running instances.
3. Visibility into the state of your entire infrastructure must be easy and convenient to
access.
4. Lack of visibility of cloud infrastructure is a major issue that can delay action on a
threat and result in a data breach.
5. Managers, sysadmins and DevOps teams must therefore take a proactive security
approach.
4. Lack of Multi-factor Authentication
1. Multi-factor authentication (MFA) is an authentication method in which a user
must present at least two forms of identification validation to access an account
or data.
2. For instance, a typical MFA is when a user has to enter a username and
password. The user is then prompted to enter a second validation, such as a one-
time password/code received via SMS, email or push notification on their cell
phone.
3. Passwords and users are vulnerable to theft, making a lack of MFA a potentially
critical vulnerability.
5. Malicious Insiders
1. Unauthorized access occurs when a user obtains access to some or all of your
company’s cloud resources.
2. There are a few ways that these malicious insiders can gain access to your cloud
accounts.
3. This can result from too loose of rules or a former employee still having valid
credentials to the accounts.
Practical applications of cloud computing
1. Online Data Storage
1. Cloud Computing allows storage and access to data like files, images, audio,
and videos on the cloud storage.
2. In this age of big data, storing huge volumes of business data locally requires
more and more space and escalating costs.
3. This is where cloud storage comes into play, where businesses can store and
access data using multiple devices.
4. The interface provided is easy to use, convenient, and has the benefits of high
speed, scalability, and integrated security.
2. Backup and Recovery
1. Cloud service providers offer safe storage and backup facility for data and resources on
the cloud.
2. In a traditional computing system, data backup is a complex problem, and often, in case
of a disaster, data can be permanently lost.
3. But with cloud computing, data can be easily recovered with minimal damage in case
of a disaster.
3. Big Data Analysis
4. One of the most important applications of cloud computing is its role in extensive data
analysis.
5. The extremely large volume of big data makes it impossible to store using traditional
data management systems.
6. Due to the unlimited storage capacity of the cloud, businesses can now store and
analyze big data to gain valuable business insights.
4. E-commerce Application
1. Ecommerce applications in the cloud enable users and e-businesses to respond quickly
to emerging opportunities.
2. It offers a new approach to business leaders to make things done with minimum amount
and minimal time. They use cloud environments to manage customer data, product data,
and other operational systems.
5. Cloud Computing in Education
3. E-learning, online distance learning programs, and student information portals are some
of the key changes brought about by applications of cloud computing in the education
sector.
4. In this new learning environment, there’s an attractive environment for learning,
teaching, experimenting provided to students, teachers, and researchers so they can
connect to the cloud of their establishment and access data and information.