Cloud Computing
UNIT-I: Introduction to Computing Paradigms
High-Performance Computing, Parallel Computing, Distributed Computing, Cluster Computing, Grid Computing, Cloud Computing, Bio computing, Mobile Computing, Quantum Computing, Optical Computing, Nano-computing, Network Computing. Cloud Computing Fundamentals: Motivation, Need, Definition of Cloud Computing. Principles of Cloud computing: Five Essential Characteristics, Four Cloud Deployment Models, Three Service Offering Models, Cloud Ecosystem, Requirements for Cloud Services. Cloud Computing Architecture: cloud Architecture, User/Client Layer, Network Layer, Cloud Management Layer, Hardware Resource Layer, Network Connectivity in Cloud Computing, Public Cloud Access Networking, Private Cloud Access Networking.
UNIT-II: Cloud Computing Management
Cloud Application, Benefits and Drawbacks Applications on the Cloud, Managing the Cloud, Managing the Cloud Infrastructure, Managing the Cloud Application, Migrating Application to Cloud, Cloud Deployment Models: Private Cloud, Outsourced Private Cloud, Community Cloud, On-Premise Community Cloud, Hybrid Cloud. Cloud Service Models: Infrastructure as a Service, Platform as a Service, Software as a Service, Introduction to Open Source Tools for IaaS, Paas & SaaS: Apache.
UNIT-III: Technological Drivers for Cloud Computing
SOA and Cloud, SOA and SOC, Benefits of SOA, Multi-core Technology: Multi-core Processors and VM Scalability, Memory and Storage Technologies, Cloud Storage Requirements, Networking Technologies, Web 2.0: Characteristics, Difference from Web 1.0, Applications, Social Media, Marketing, Education. Web 3.0: Components, Semantic Web, Web Services, Characteristics, Convergence of Cloud and Web 4.0, Connecting Information: Facebook. Agile Software Models: Agile SDLC for Cloud Computing, Features of Cloud SDLC, Agile Software Development Process, Advantages of Agile. Cloud Application Development Platforms: Windows Azure, Google App Engine, Force.com, IBM Cloud Computing API.
UNIT-IV: Virtualization
Full Virtualization, Para virtualization, Hardware-Assisted Virtualization, Hypervisor, OS Virtualization, Server Virtualization, Memory Virtualization, Storage Virtualization, Network Virtualization, Application Virtualization, Processor Virtualization, Data Virtualization, Hypervisors, Types of Hypervisors, Security Issues and Recommendations, From Virtualization to Cloud Computing: VMware, Microsoft Hyper-V.
UNIT-V: Cloud Service Providers & Security
EMC, EMC IT, Captiva Cloud Toolkit, Google Cloud Platform, Cloud Storage, Google Cloud Connect, Google Cloud Print, Google App Engine, Amazon Web Services, Amazon Elastic Compute Cloud, Amazon Simple Storage Service, Amazon Simple Queue Service, Microsoft Azure, Microsoft Assessment and Planning Toolkit, SharePoint, IBM Smart Cloud. Security in Cloud Computing, Cloud General Challenges.

UNIT-I: Introduction to Computing Paradigms and Cloud Computing Fundamentals

1. Introduction to Computing Paradigms

Computing paradigms refer to various approaches and models used to solve complex computing tasks. These paradigms define how computational tasks are approached, executed, and optimized. Different paradigms focus on optimizing different aspects of computing such as speed, storage, or distributed execution.

High-Performance Computing (HPC)

High-performance computing refers to the use of supercomputers and parallel processing techniques to solve complex problems that require high computational power.

Parallel Computing

Parallel computing involves the simultaneous use of multiple processors to solve a problem faster by breaking it down into smaller tasks that can be executed concurrently.

Distributed Computing

Distributed computing refers to systems where computation is divided across multiple computers that are connected through a network. Each machine in the network contributes to processing a part of the task.

Cluster Computing

Cluster computing is a type of computing where multiple computers are connected and work together as a unified system to solve tasks efficiently.

Grid Computing

Grid computing refers to the process of pooling computing resources from various locations to work on large-scale tasks.

Cloud Computing

Cloud computing is the delivery of computing services (like storage, processing, and applications) over the internet (the cloud) on a pay-as-you-go basis.

Bio Computing

Bio computing uses biological materials, such as DNA or proteins, to perform computational tasks, offering solutions for problems too complex for traditional computers.

Mobile Computing

Mobile computing involves the use of portable computing devices, such as smartphones and laptops, to access and process information remotely.

Quantum Computing

Quantum computing uses quantum-mechanical phenomena, like superposition and entanglement, to perform computations. It promises to revolutionize fields like cryptography and artificial intelligence.

Optical Computing

Optical computing utilizes light, instead of electrical signals, to perform computations, aiming to provide faster and more energy-efficient systems.

Nano-computing

Nano-computing involves using nanoscale materials and devices for computation, potentially leading to ultra-small and highly efficient computing systems.

Network Computing

Network computing involves using distributed resources over a network to share computational tasks and storage, relying on the interconnectedness of devices.

2. Cloud Computing Fundamentals

Cloud computing is a model for delivering computing services over the internet, allowing users to access software, storage, and computing power without owning the physical hardware. It provides scalability, flexibility, and cost efficiency.

Motivation for Cloud Computing

The motivation behind cloud computing lies in its ability to provide on-demand resources, flexible scaling, and cost-effective solutions for businesses and individuals.

Need for Cloud Computing

Cloud computing addresses the need for efficient and scalable computing power without upfront capital investment in hardware. It also simplifies management and reduces operational costs.

Definition of Cloud Computing

Cloud computing is the delivery of computing services—including servers, storage, databases, networking, software, and more—over the internet (the cloud), allowing for faster innovation, flexible resources, and economies of scale.

Five Essential Characteristics of Cloud Computing

Four Cloud Deployment Models

Three Service Offering Models

Cloud Ecosystem

The cloud ecosystem includes cloud service providers, users, and third-party service providers who contribute to cloud computing's operation, innovation, and expansion.

Requirements for Cloud Services

3. Cloud Computing Architecture

The architecture of cloud computing involves different layers that work together to provide on-demand services.

Cloud Architecture

The architecture defines how cloud computing resources are structured and delivered. It includes the front-end (user interface) and the back-end (cloud infrastructure).

User/Client Layer

The user/client layer involves end-users interacting with the cloud services, usually through a web browser or app.

Network Layer

The network layer provides the connectivity and communication between users and cloud services through various protocols and standards.

Cloud Management Layer

The cloud management layer is responsible for managing resources, such as computing power, storage, and network connections in the cloud.

Hardware Resource Layer

This layer includes the physical hardware, such as servers, storage devices, and network components that support the cloud services.

Network Connectivity in Cloud Computing

Network connectivity enables the flow of data between cloud resources and users. It can be achieved through private or public networks, with security protocols to protect data transmission.

Public Cloud Access Networking

Public cloud services are accessible through the internet, with public IP addresses and open network protocols.

Private Cloud Access Networking

Private cloud services are typically accessed through private, secure networks or dedicated lines, ensuring better security and performance.

UNIT-II: Cloud Computing Management

1. Cloud Application Management

Cloud application management refers to the practices and tools used to monitor, maintain, and improve applications running on the cloud. This involves tasks like scalability, performance optimization, and fault tolerance to ensure efficient service delivery.

Benefits of Cloud Applications

Drawbacks of Cloud Applications

Applications on the Cloud

Cloud applications are used in various domains, including enterprise software, e-commerce, customer relationship management (CRM), and more. Examples include Google Docs, Microsoft Office 365, and Dropbox.

2. Managing the Cloud

Managing the cloud involves overseeing the entire cloud environment, including infrastructure, services, and applications. It ensures optimal performance, security, and scalability.

Managing the Cloud Infrastructure

Managing the cloud infrastructure includes provisioning and maintaining the hardware resources that support cloud services. It involves tasks like load balancing, virtual machine management, and storage management.

Managing the Cloud Application

Managing cloud applications ensures that the applications are running optimally. This includes monitoring performance, managing resource allocation, and ensuring high availability and fault tolerance for the application.

Migrating Applications to Cloud

Application migration to the cloud involves moving existing applications from on-premises infrastructure to the cloud. This can be done through various approaches like rehosting, replatforming, and refactoring, based on the application’s requirements and complexity.

3. Cloud Deployment Models

Cloud deployment models define the way cloud resources are made available to users. They provide a framework for how services are accessed and managed.

Private Cloud

A private cloud is a cloud infrastructure used exclusively by one organization. It can be hosted either on-premises or by a third-party provider, offering higher levels of security and control over the resources.

Outsourced Private Cloud

An outsourced private cloud is hosted and managed by a third-party service provider, offering the same benefits as a private cloud, but with external management and maintenance.

Community Cloud

In a community cloud, infrastructure is shared among several organizations with similar interests, such as in terms of security, compliance, or geographical location.

On-Premise Community Cloud

An on-premise community cloud is hosted within the premises of an organization but shared among multiple organizations with similar needs, ensuring control and security over the data.

Hybrid Cloud

A hybrid cloud is a combination of public and private clouds, allowing data and applications to be shared between them. It offers greater flexibility and optimization of existing infrastructure.

4. Cloud Service Models

Cloud service models define the level of management and control users have over cloud services. They determine what is provided by the cloud provider and what is managed by the customer.

Infrastructure as a Service (IaaS)

IaaS provides virtualized computing resources over the internet. Users can rent computing infrastructure like virtual machines, storage, and networking, and are responsible for managing the operating system and applications.

Platform as a Service (PaaS)

PaaS offers a platform and environment for developers to build, deploy, and manage applications without worrying about the underlying infrastructure.

Software as a Service (SaaS)

SaaS delivers software applications over the internet on a subscription basis. These applications are managed by the cloud provider, and users access them via a web browser or app.

5. Open Source Tools for IaaS, PaaS, & SaaS

Open-source tools provide alternatives to proprietary cloud platforms, allowing users to build and manage cloud environments with customizable solutions.

Open Source Tools for IaaS

Open Source Tools for PaaS

Open Source Tools for SaaS

UNIT-III: Technological Drivers for Cloud Computing

1. SOA and Cloud Computing

Service-Oriented Architecture (SOA) and Cloud Computing have a strong relationship, as both emphasize the importance of distributed systems. SOA enables the creation of web services that can be accessed over a network, which fits well with cloud computing platforms.

SOA and SOC

Service-Oriented Computing (SOC) and SOA are both about creating reusable, loosely coupled services that can be used across different platforms, with SOA being a set of principles for designing such services.

Benefits of SOA

2. Multi-core Technology

Multi-core processors are a key technology for cloud computing, enabling high levels of scalability and efficiency. Multi-core technology allows cloud platforms to better manage multiple virtual machines (VMs) simultaneously.

Multi-core Processors and VM Scalability

Multi-core processors increase the ability to run multiple processes concurrently. This is beneficial for cloud environments where the scalability of virtual machines (VMs) is essential for handling heavy workloads.

Memory and Storage Technologies

Advances in memory and storage technologies are crucial for cloud computing. Faster memory and reliable, scalable storage solutions are essential for improving the performance and availability of cloud-based services.

Cloud Storage Requirements

3. Networking Technologies

Networking technologies are crucial for cloud computing as they facilitate communication between various cloud resources and end-users. These technologies help ensure reliable, low-latency, and secure connections in the cloud environment.

4. Web 2.0

Web 2.0 refers to the second generation of the web, characterized by enhanced user interactivity, social media integration, and dynamic content. It enables the creation of more engaging web applications and services.

Characteristics of Web 2.0

Difference Between Web 1.0 and Web 2.0

Applications of Web 2.0

5. Web 3.0

Web 3.0 is the next generation of the internet, focusing on decentralization, data interconnectivity, and artificial intelligence. It aims to enhance the web by providing smarter, more personalized experiences.

Components of Web 3.0

Characteristics of Web 3.0

Convergence of Cloud and Web 4.0

The combination of cloud computing and Web 4.0 brings forward an internet that is more interactive, intuitive, and user-focused. With the use of AI, IoT, and decentralized systems, Web 4.0 promises to revolutionize how we interact with the web.

Connecting Information: Facebook

Facebook is a prime example of how Web 2.0 and 3.0 technologies converge. By using data analytics, user preferences, and social interaction, Facebook connects people and information across the globe.

6. Agile Software Models

Agile software development is a methodology used to develop software iteratively and incrementally. It emphasizes collaboration, flexibility, and customer feedback throughout the development process.

Agile SDLC for Cloud Computing

Agile software development life cycle (SDLC) in cloud computing focuses on delivering cloud applications in incremental stages, ensuring continuous integration, testing, and deployment to enhance collaboration and flexibility.

Features of Cloud SDLC

Agile Software Development Process

Advantages of Agile

7. Cloud Application Development Platforms

Cloud platforms provide developers with tools and services to build, deploy, and scale cloud applications efficiently. Some popular cloud application development platforms include Windows Azure, Google App Engine, and Force.com.

Windows Azure

Windows Azure is a cloud platform by Microsoft that provides a wide range of cloud services, including computing, networking, databases, and storage for developing and managing applications.

Google App Engine

Google App Engine is a Platform-as-a-Service (PaaS) offering by Google that allows developers to build and deploy web applications and services on Google's infrastructure.

Force.com

Force.com is a cloud-based application development platform by Salesforce that allows developers to build scalable applications and services with minimal coding and infrastructure management.

IBM Cloud Computing API

IBM offers a comprehensive cloud computing API that allows developers to integrate cloud services and build applications using IBM's infrastructure, artificial intelligence, and machine learning capabilities.

UNIT-IV: Virtualization

1. Introduction to Virtualization

Virtualization is the process of creating a virtual version of a resource, such as a server, storage device, or network, which allows multiple workloads to run independently on the same physical hardware. It plays a key role in cloud computing by enabling the efficient use of resources.

2. Types of Virtualization

Full Virtualization

Full virtualization involves creating a virtual environment where the guest operating system is unaware that it is running in a virtualized environment. This allows for complete isolation between the host and the guest OS.

Para virtualization

Para virtualization involves modifying the guest operating system to be aware of the virtualized environment. This improves performance as the guest OS interacts with the hypervisor directly to improve resource allocation.

Hardware-Assisted Virtualization

Hardware-assisted virtualization leverages the capabilities of modern processors to enable more efficient and secure virtual environments. This includes using CPU features like Intel VT-x or AMD-V to facilitate virtualization directly at the hardware level.

Hypervisor

A hypervisor is a software layer that enables the creation and management of virtual machines (VMs). It controls the hardware resources and allocates them to the virtualized environments.

3. Virtualization Techniques

OS Virtualization

OS virtualization allows multiple instances of the same operating system to run on a single machine. It provides isolation at the OS level and is used in containerization technologies like Docker.

Server Virtualization

Server virtualization enables the creation of multiple virtual servers on a single physical server, allowing for better resource utilization and flexibility in managing workloads.

Memory Virtualization

Memory virtualization allows physical memory resources to be divided and allocated to different virtual machines. It enables more efficient memory management in virtual environments, optimizing the use of available RAM.

Storage Virtualization

Storage virtualization aggregates multiple storage devices into a single virtual storage pool, which makes managing data more efficient and improves flexibility in data storage and access.

Network Virtualization

Network virtualization involves abstracting network resources to create virtual networks that are independent of the underlying physical network. This improves scalability, flexibility, and security in the cloud environment.

Application Virtualization

Application virtualization allows applications to run on different machines without needing to be installed locally. The application operates in a container and is delivered over the network as a virtual instance.

Processor Virtualization

Processor virtualization involves isolating CPU resources and allocating them to different virtual machines. This allows the creation of multiple VMs with isolated processing power.

Data Virtualization

Data virtualization allows data from different sources to be accessed and manipulated without needing to know the exact details of the underlying storage systems. It provides a unified view of data from multiple sources.

4. Hypervisors

A hypervisor is crucial in virtualization as it manages the virtual machines, allowing them to run on a physical host. There are two types of hypervisors: Type 1 and Type 2.

Types of Hypervisors

5. Security Issues and Recommendations

Virtualization introduces unique security challenges, including vulnerabilities in the hypervisor, cross-VM attacks, and data leakage between virtual machines. It is crucial to implement robust security measures to protect virtual environments.

Recommendations for Secure Virtualization

6. From Virtualization to Cloud Computing

Virtualization is a key enabler for cloud computing, allowing for the efficient use of physical resources and the creation of flexible and scalable cloud environments. As a result, cloud computing relies heavily on virtualization technologies to deliver computing services to users.

VMware

VMware is one of the leading virtualization platforms, providing both server and desktop virtualization solutions. It allows organizations to create virtual environments for running multiple virtual machines on a single physical server.

Microsoft Hyper-V

Microsoft Hyper-V is a hypervisor-based virtualization technology that allows organizations to run multiple operating systems on a single physical machine. It provides an efficient way to consolidate servers and improve resource utilization in data centers.

UNIT-V: Cloud Service Providers

1. Cloud Service Providers Overview

Cloud service providers offer various cloud computing services to users, businesses, and developers. These services include infrastructure, platforms, and software as services, allowing organizations to scale, manage, and access resources without managing physical hardware.

2. Key Cloud Service Providers

EMC

EMC provides cloud storage solutions and information management services. It offers solutions for managing data across cloud environments, ensuring efficient data storage, retrieval, and backup.

EMC IT

EMC IT focuses on IT transformation solutions, including cloud computing services for businesses. Their services include enterprise cloud storage, data protection, and compliance solutions.

Captiva Cloud Toolkit

Captiva Cloud Toolkit is a cloud-based software that automates document capture and processing. It helps organizations manage large volumes of documents using cloud resources for processing and storage.

Google Cloud Platform

Google Cloud Platform (GCP) is a suite of cloud computing services provided by Google. It includes compute power, data storage, machine learning, and other services for deploying and managing applications and websites.

Google Cloud Storage

Google Cloud Storage is an object storage service for storing and accessing data on Google's infrastructure. It offers scalable and secure cloud storage solutions for businesses and developers.

Google Cloud Connect

Google Cloud Connect is a service that enables real-time collaboration on Google Docs and other documents stored on Google Drive. It integrates with Microsoft Office applications to provide cloud syncing and sharing features.

Google Cloud Print

Google Cloud Print is a service that allows users to print documents from any device connected to the internet. The service enables printing to any printer that supports Google Cloud Print.

Google App Engine

Google App Engine is a platform as a service (PaaS) that allows developers to build and deploy applications on Google’s infrastructure. It automatically manages the scaling and security of applications based on usage.

Amazon Web Services

Amazon Web Services (AWS) is a comprehensive cloud services platform that provides computing power, database storage, content delivery, and other cloud-based services. AWS is one of the most widely used cloud platforms for hosting web applications and services.

Amazon Elastic Compute Cloud (EC2)

Amazon EC2 is a web service that provides scalable computing capacity in the cloud. It allows users to rent virtual servers for running applications, handling traffic spikes, and managing workloads efficiently.

Amazon Simple Storage Service (S3)

Amazon S3 is an object storage service that provides scalable and secure storage for data. It is designed to store and retrieve large amounts of data, making it ideal for backups, archives, and big data analytics.

Amazon Simple Queue Service (SQS)

Amazon SQS is a fully managed message queuing service that allows decoupling of distributed applications. It helps in managing communication between different services and systems by providing reliable and scalable message queues.

Microsoft Azure

Microsoft Azure is a cloud computing platform that provides a wide range of services, including virtual machines, app hosting, databases, and networking. It is one of the major players in the cloud market, offering both IaaS and PaaS services.

Microsoft Assessment and Planning Toolkit

Microsoft Assessment and Planning Toolkit is a tool for assessing on-premises IT infrastructure and planning for cloud migration. It helps businesses determine which workloads should be migrated to the cloud and identifies any potential challenges.

SharePoint

SharePoint is a cloud-based collaboration platform by Microsoft that allows businesses to manage, store, and share documents and content. It provides services like content management, workflow automation, and team collaboration.

IBM Smart Cloud

IBM Smart Cloud provides infrastructure as a service (IaaS) for businesses to run enterprise applications and workloads on the cloud. It also includes services for cloud-based storage, data management, and big data analytics.

3. Security in Cloud Computing

Security is a critical concern in cloud computing. The shared responsibility model requires both the cloud provider and the cloud customer to ensure the security of the cloud environment and data. Effective security measures include encryption, identity management, and secure access controls.

Cloud Security Challenges

Security Best Practices

4. General Challenges in Cloud Computing

While cloud computing offers numerous benefits, it also presents several challenges. These include issues related to performance, security, cost management, and data governance.

Common Cloud Computing Challenges