1. Department of Collegiate and Technical Education
Computer Science and Engineering – 20CS52I
FULL STACK DEVELOPMENT-20CS52I
(V SEMESTER)
TOPIC- CLOUDS BASICS
Week-3, Day-3,
Session-1
COURSE OUTCOME -5
PROGRAMME OUTCOME-1,4
2. Department of Collegiate and Technical Education
RECAP
GitHub
Computer Science and Engineering – 20CS52I
3. Department of Collegiate and Technical Education
CONTENTS
Cloud Infrastructure Overview
Cloud Computing Architecture And Its Components
Service Models
Deployment Models
Virtualization
Cloud Native Application Development
Computer Science and Engineering – 20CS52I
4. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
What is Cloud?
The term Cloud refers to a Network or Internet. In other
words, we can say that Cloud is something, which is
present at remote location.
What is Cloud Computing?
Cloud Computing refers to manipulating,
configuring, and accessing the hardware and software
resources remotely. It offers online data storage,
infrastructure, and application.
Computer Science and Engineering – 20CS52I
5. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Computer Science and Engineering – 20CS52I
6. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Operations that we can do using cloud computing:
• Developing new applications and services
• Storage, back up, and recovery of data
• Hosting blogs and websites
• Delivery of software on demand
• Analysis of data
• Streaming videos and audios
Computer Science and Engineering – 20CS52I
7. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Why Cloud Computing? – Traditional DC approach Vs CC
Computer Science and Engineering – 20CS52I
8. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Why Cloud Computing?- Disadvantages of Traditional DC approach
Computer Science and Engineering – 20CS52I
Capital Expenditure
Time to setup infrastructure
Maintenance Overhead
Resource under/Over Utilization
Reduced ROI
9. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Why Cloud Computing?
Computer Science and Engineering – 20CS52I
Case Study:
Amazon / Flipkart
10. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Why Cloud Computing?
Computer Science and Engineering – 20CS52I
Case Study:
Amazon / Flipkart
11. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Computer Science and Engineering – 20CS52I
Real Time Application
12. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Computer Science and Engineering – 20CS52I
13. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Advantages of Cloud Computing
• Back-up and restore data
• Improved collaboration
• Excellent accessibility
• Low maintenance cost
• Mobility
• Services in the pay-per-use model
• Unlimited storage capacity
• Data security
Computer Science and Engineering – 20CS52I
14. Department of Collegiate and Technical Education
Cloud Infrastructure Overview
Disadvantages of Cloud Computing
• Internet Connectivity
• Vendor lock-in
• Limited Control
• Security
• Data security
Computer Science and Engineering – 20CS52I
15. Department of Collegiate and Technical Education
Cloud Computing Architecture
Computer Science and Engineering – 20CS52I
16. Department of Collegiate and Technical Education
Cloud Computing Architecture - Components
• Client Infrastructure
• Application:
• Service:
• Runtime Cloud
• Storage:
• Infrastructure
• Management
• Security
• Internet
Computer Science and Engineering – 20CS52I
17. Department of Collegiate and Technical Education
Cloud Deployment Models
Computer Science and Engineering – 20CS52I
18. Department of Collegiate and Technical Education
Cloud Deployment Models- Public Cloud
Benefits of Public Cloud
• Minimal Investment
• No Hardware Set-up
• No Infrastructure Management
Limitations of Public Cloud
• Data Security and Privacy Concerns
• Reliability Issues
• Service/License Limitation
Computer Science and Engineering – 20CS52I
19. Department of Collegiate and Technical Education
Cloud Deployment Models- Private Cloud
Benefits of Private Cloud
• Data Privacy
• Security
• Supports Legacy Systems
Limitations of Private Cloud
• Higher Cost
• Fixed Scalability
• High Maintenance
Computer Science and Engineering – 20CS52I
20. Department of Collegiate and Technical Education
Cloud Deployment Models- Community Cloud
Benefits of Community Cloud
• Smaller Investment
• Setup Benefits
Limitations of Community Cloud
• Shared Resources
• Not as Popular
Computer Science and Engineering – 20CS52I
21. Department of Collegiate and Technical Education
Cloud Deployment Models- Hybrid Cloud
Benefits of Hybrid Cloud
•Cost-Effectiveness
•Security
•Flexibility
•Limitations of Hybrid Cloud
•Complexity
•Specific Use Case
Computer Science and Engineering – 20CS52I
22. Department of Collegiate and Technical Education
Cloud Deployment Models- Comparision
Computer Science and Engineering – 20CS52I
23. Department of Collegiate and Technical Education
Cloud Service Models
Computer Science and Engineering – 20CS52I
24. Department of Collegiate and Technical Education
Cloud Service Models
Computer Science and Engineering – 20CS52I
25. Department of Collegiate and Technical Education
Cloud Service Models
Computer Science and Engineering – 20CS52I
26. Department of Collegiate and Technical Education
Virtualization
What is Virtualization?
• Virtualization, as the name implies, creates a virtual
version of a once-physical item.
• In a datacenter, the most commonly virtualized items
include operating systems, servers, storage devices, or
desktops.
• With virtualization, technologies like applications and
operating systems are abstracted away from the
hardware or software beneath them.
Computer Science and Engineering – 20CS52I
27. Department of Collegiate and Technical Education
Virtualization
What is Virtualization?
Computer Science and Engineering – 20CS52I
28. Department of Collegiate and Technical Education
Virtualization
How does virtualization work?
• Software called hypervisors separate the physical resources
from the virtual environments—the things that need those
resources.
• Resources are partitioned as needed from the physical
environment to the many virtual environments.
• The virtual machine functions as a single data file. And like
any digital file, it can be moved from one computer to
another
Computer Science and Engineering – 20CS52I
29. Department of Collegiate and Technical Education
Virtualization
Types of virtualization
Computer Science and Engineering – 20CS52I
Data virtualization
Desktop virtualization
Server virtualization
Operating system
virtualization
Network functions
virtualization
30. Department of Collegiate and Technical Education
Virtualization
What is a Hypervisor?
• A hypervisor is a software that abstracts and isolates hardware
and operating systems into virtual machines with their own
memory, storage, CPU power, and network bandwidth.
• Another key function of hypervisors is isolating the VMs from one
another and handles communications between all the VMs.
• A hypervisor is composed of three parts that work together to
model the hardware:
• Dispatcher: Tells the VM what to do
• Allocator: allocates system resources
• Interpreter: instructions that are executed
Computer Science and Engineering – 20CS52I
31. Department of Collegiate and Technical Education
Virtualization- Types of Hypervisors
• Type 1 or Bare metal or Native : VMware ESX and ESXi,
Oracle VM
• Type 2 or Hosted : VMware Workstation/Fusion/Player
b. Oracle VM VirtualBox
Computer Science and Engineering – 20CS52I
32. Department of Collegiate and Technical Education
Virtualization- What are Virtual Machines?
• Virtual machines are an emulation of a computer
system. The underlying hardware is copied by a
hypervisor to run multiple operating systems
• Virtual machines are an emulation of a computer
system. The underlying hardware is copied by a
hypervisor to run multiple operating systems
Computer Science and Engineering – 20CS52I
33. Department of Collegiate and Technical Education
Virtualization- Benefits of Virtualization
• Resource utilization and improved ROI
• Scalability
• Portability
• Flexibility
• Security
Computer Science and Engineering – 20CS52I
34. Department of Collegiate and Technical Education
Virtualization- Use Cases of Virtualization
• Cloud computing
• Support DevOps
• Test a new operating system
• Investigate malware
• Run incompatible software
• Browse securely
Computer Science and Engineering – 20CS52I
35. Department of Collegiate and Technical Education
CLOUD NATIVE DEVELOPMENT
• Cloud native is the software approach of building,
deploying, and managing modern applications in cloud
computing environments.
• Benefits
• Increase efficiency
• Reduce cost
• Ensure availability
Computer Science and Engineering – 20CS52I
36. Department of Collegiate and Technical Education
CLOUD NATIVE DEVELOPMENT Cloud-native
application architecture
Computer Science and Engineering – 20CS52I
37. Department of Collegiate and Technical Education
CLOUD NATIVE DEVELOPMENT
• Cloud-native application development
describes how and where developers build and
deploy cloud-native applications.
• Practices:
• Continuous integration
• Continuous delivery
• DevOps
• Serverless
Computer Science and Engineering – 20CS52I
38. Department of Collegiate and Technical Education
CLOUD NATIVE DEVELOPMENT
• Benefits:
• Faster development
• Platform independence
• Cost-effective operations
Computer Science and Engineering – 20CS52I
39. Department of Collegiate and Technical Education
THANK YOU
Computer Science and Engineering – 20CS52I
Sl. No Name Role Designation
1 Mr. Nagaraj M Moderator Lecturer, Department of
CSE, Government
Polytechnic, Gulbarga
(109).
2 Mr. Sathish S Content Developer Lecturer, Department of
CSE, Government
Polytechnic, Karwar(114).
Editor's Notes
Todays session Contents are as follows
CIO: Here We will See Basic Definitions , and Why CC
CCA:
CC Models : 2 types SM, DM
Virtualization
CNAD -Cloud native is the software approach of building, deploying, and managing modern applications in cloud computing environments.
We will Take Example to understand this definitions
Suppose consider u ve stored personal or official information in Personal devices like mobile phone or laptop. Consider previous day due to some issues ur device stopped to work. What u ll do?
U ve to give presentation or submit some data to authorities , u ve forgotten to bring ur device on that day . What u can do ?
We will Take Example to understand this definitions
Suppose consider u ve stored personal or official information in Personal devices like mobile phone or laptop. Consider previous day due to some issues ur device stopped to work. What u ll do?
U ve to give presentation or submit some data to authorities , u ve forgotten to bring ur device on that day . What u can do ?
1. Resources Pooling
It means that the Cloud provider pulled the computing resources to provide services to multiple customers with the help of a multi-tenant model. There are different physical and virtual resources assigned and reassigned which depends on the demand of the customer.
The customer generally has no control or information over the location of the provided resources but is able to specify location at a higher level of abstraction
2. On-Demand Self-Service
It is one of the important and valuable features of Cloud Computing as the user can continuously monitor the server uptime, capabilities, and allotted network storage. With this feature, the user can also monitor the computing capabilities.
3. Easy Maintenance
The servers are easily maintained and the downtime is very low and even in some cases, there is no downtime. Cloud Computing comes up with an update every time by gradually making it better.
The updates are more compatible with the devices and perform faster than older ones along with the bugs which are fixed.
4. Large Network Access
The user can access the data of the cloud or upload the data to the cloud from anywhere just with the help of a device and an internet connection. These capabilities are available all over the network and accessed with the help of internet.
5. Availability
The capabilities of the Cloud can be modified as per the use and can be extended a lot. It analyzes the storage usage and allows the user to buy extra Cloud storage if needed for a very small amount.
6. Automatic System
Cloud computing automatically analyzes the data needed and supports a metering capability at some level of services. We can monitor, control, and report the usage. It will provide transparency for the host as well as the customer.
7. Economical
It is the one-time investment as the company (host) has to buy the storage and a small part of it can be provided to the many companies which save the host from monthly or yearly costs. Only the amount which is spent is on the basic maintenance and a few more expenses which are very less.
8. Security
Cloud Security, is one of the best features of cloud computing. It creates a snapshot of the data stored so that the data may not get lost even if one of the servers gets damaged.
The data is stored within the storage devices, which cannot be hacked and utilized by any other person. The storage service is quick and reliable.
9. Pay as you go
In cloud computing, the user has to pay only for the service or the space they have utilized. There is no hidden or extra charge which is to be paid. The service is economical and most of the time some space is allotted for free.
10. Measured Service
Cloud Computing resources used to monitor and the company uses it for recording. This resource utilization is analyzed by supporting charge-per-use capabilities.
This means that the resource usages which can be either virtual server instances that are running in the cloud are getting monitored measured and reported by the service provider. The model pay as you go is variable based on actual consumption of the manufacturing organization.
Here, we are going to discuss some important advantages of Cloud Computing-
Back-up and restore data: Once the data is stored in the cloud, it is easier to get back-up and restore that data using the cloud.
Improved collaboration: Cloud applications improve collaboration by allowing groups of people to quickly and easily share information in the cloud via shared storage.
Excellent accessibility: Cloud allows us to quickly and easily access store information anywhere, anytime in the whole world, using an internet connection.
Low maintenance cost: Cloud computing reduces both hardware and software maintenance costs for organizations.
Mobility: Cloud computing allows us to easily access all cloud data via mobile.
Services in the pay-per-use model: Cloud computing offers Application Programming Interfaces (APIs) to the users for access services on the cloud and pays the charges as per the usage of service.
Unlimited storage capacity: Cloud offers us a huge amount of storing capacity for storing our important data such as documents, images, audio, video, etc. in one place.
Data security: Data security is one of the biggest advantages of cloud computing. Cloud offers many advanced features related to security and ensures that data is securely stored and handled.
Internet Connectivity: As you know, in cloud computing, every data (image, audio, video, etc.) is stored on the cloud, and we access these data through the cloud by using the internet connection. If you do not have good internet connectivity, you cannot access these data. However, we have no any other way to access data from the cloud.
Vendor lock-in: Vendor lock-in is the biggest disadvantage of cloud computing. Organizations may face problems when transferring their services from one vendor to another. As different vendors provide different platforms, that can cause difficulty moving from one cloud to another.
Limited Control: As we know, cloud infrastructure is completely owned, managed, and monitored by the service provider, so the cloud users have less control over the function and execution of services within a cloud infrastructure.
Security: Although cloud service providers implement the best security standards to store important information. But, before adopting cloud technology, you should be aware that you will be sending all your organization's sensitive information to a third party, i.e., a cloud computing service provider. While sending the data on the cloud, there may be a chance that your organization's information is hacked by Hackers.
The cloud architecture is divided into 2 parts i.e.
Frontend
Backend
This figure represents an internal architectural view of cloud computing.
The front end is used by the client. It contains client-side interfaces and applications that are required to access the cloud computing platforms. The front end includes web servers (including Chrome, Firefox, internet explorer, etc.), thin & fat clients, tablets, and mobile devices.
The back end is used by the service provider. It manages all the resources that are required to provide cloud computing services. It includes a huge amount of data storage, security mechanism, virtual machines, deploying models, servers, traffic control mechanisms, etc
There are the following components of cloud computing architecture –
Client Infrastructure: Client Infrastructure is a Front end component. It provides GUI (Graphical User Interface) to interact with the cloud.
Application: The application may be any software or platform that a client wants to access.
Service: A Cloud Services manages that which type of service you can access according to the client’s requirement.
Cloud computing offers the following three type of services:
Software as a Service (SaaS) – It is also known as cloud application services. SaaS applications run directly through the web browser means we do not require to download and install these applications. Example: Google Apps, Salesforce Dropbox, Slack, Hub spot, Cisco WebEx.
Platform as a Service (PaaS) – It is also known as cloud platform services. It is quite similar to SaaS, but the difference is that PaaS provides a platform for software creation, but using SaaS, we can access software over the internet without the need of any platform. Example: Windows Azure, Force.com, Magneto Commerce Cloud, Open Shift.
Infrastructure as a Service (IaaS) – It is also known as cloud infrastructure services. It is responsible for managing applications data, middleware, and runtime environments. Example: Amazon Web Services (AWS) EC2, Google Compute Engine (GCE), Cisco Metapod.
Runtime Cloud: Runtime Cloud provides the execution and runtime environment to the virtual machines.
Storage: Storage is one of the most important components of cloud computing. It provides a huge amount of storage capacity in the cloud to store and manage data. Some of the popular examples of storage services are below: Amazon S3 Oracle Cloud-Storage Microsoft Azure Storage
Infrastructure: It provides services on the host level, application level, and network level. Cloud infrastructure includes hardware and software components such as servers, storage, network devices, virtualization software, and other storage resources that are needed to support the cloud computing model.
Management: Management is used to manage components such as application, service, runtime cloud, storage, infrastructure, and other security issues in the backend and establish coordination between them.
Security: Security is an in-built back end component of cloud computing. It implements a security mechanism in the back end. Internet: The Internet is medium through which front end and back end can interact and communicate with each other.
Cloud deployment models indicate how the cloud services are made available to users.
The cloud deployment model identifies the specific type of cloud environment based on ownership, scale, and access, as well as the cloud’s nature and purpose.
The location of the servers you’re utilizing and who controls them are defined by a cloud deployment model.
It specifies how your cloud infrastructure will look, what you can change, and whether you will be given services or will have to create everything yourself. Relationships between the infrastructure and your users are also defined by cloud deployment types.
Different types of cloud computing deployment models are:
Public cloud
Private cloud
Hybrid cloud
Community cloud
Public cloud As the name suggests, this type of cloud deployment model supports all users who want to make use of a computing resource, such as hardware (OS, CPU, memory, storage) or software (application server, database) on a subscription basis. Most common uses of public clouds are for application development and testing, non-mission-critical tasks such as file-sharing, and e-mail service.
The provider of cloud computing enables users to access the infrastructure via an online service with no privacy constraints. Users are not responsible for providing servers, infrastructure, and bandwidth – this is entirely the scope of the provider. Users pay only for used features and can change their subscription plans at any given moment. Public cloud computing services are easy to use and navigate; they are highly scalable and accessible. However, business owners don’t sign SLA agreements with the provider but have to rely on general service guidelines and Terms of Use. If you store sensitive information, it’s The provider of cloud computing enables users to access the infrastructure via an online service with no privacy constraints.
a private cloud is typically infrastructure used by a single organization.
Such infrastructure may be managed by the organization itself to support various user groups, or it could be managed by a service provider that takes care of it either on-site or off-site.
Private clouds are more expensive than public clouds due to the capital expenditure involved in acquiring and maintaining them. However, private clouds are better able to address the security and privacy concerns of organizations today.
A private cloud is created and managed by the enterprise for secure data storage and management.
The company acquires several remote data centers all over the world, connects them to devices, and is fully responsible for data encryption and server maintenance.
In this scenario, the company doesn’t need to give data away to a third-party provider. An in-house team can manage asset security, increase operations speed, add new functionality, and scale according to the organization’s needs. However, a private cloud requires a lot of initial investments: the company needs to acquire server space, hardware, employ a team of experienced cloud developers and testers and, and ensure data security. The main advantage of the method is that confidential data is stored within the company with no intermediaries.
This deployment model supports multiple organizations sharing computing resources that are part of a community; examples include universities cooperating in certain areas of research, or police departments within a county or state sharing computing resources. Access to a community cloud environment is typically restricted to the members of the community.
As the name suggests, this type is the combination of private and public solutions. Businesses use a public cloud to store data for everyday operations, high-volume tasks like software development or maintenance. A private cloud is kept for confidential data and backups, which allows you to use less in-house storage space and use the small team for its maintenance. Companies can benefit from the expertise of the third-party provider while still keeping control over crucial data. However, the business still needs to invest in in-house infrastructure, since private cloud, even if it’s less scaled, has to be supported with local resources. For example, if an online retailer needs more computing resources to run its Web applications during the holiday season it may attain those resources via public clouds.
Infrastructure as a Service (IaaS) o It is the most flexible type of cloud service which lets you rent the hardware and contains the basic building blocks for cloud and IT. o It gives complete control over the hardware that runs your application (servers, VMs, storage, networks & operating systems). o It’s an instant computing infrastructure, provisioned and managed over the internet. o IaaS gives you the very best level of flexibility and management control over your IT resources. o It is most almost like the prevailing IT resources with which many IT departments and developers are familiar. o Examples of IaaS: Virtual Machines or AWS EC2, Storage or Networking.
Virtualization is the "creation of a virtual (rather than actual) version of something, such as a server, a desktop, a storage device, an operating system or network resources".
In other words, Virtualization is a technique, which allows to share a single physical instance of a resource or an application among multiple customers and organizations. It does by assigning a logical name to a physical storage and providing a pointer to that physical resource when demanded.
In more practical terms, imagine you have 3 physical servers with individual dedicated purposes. One is a mail server, another is a web server, and the last one runs internal legacy applications. Each server is being used at about 30% capacity.
Traditionally, yes. It was often easier and more reliable to run individual tasks on individual servers: 1 server, 1 operating system, 1 task. But with virtualization, you can split the mail server into 2 unique ones that can handle independent tasks so the legacy apps can be migrated. It’s the same hardware, you’re just using more of it more efficiently.
Keeping security in mind, you could split the first server again so it could handle another task—increasing its use from 30%, to 60%, to 90%. Once you do that, the now empty servers could be reused for other tasks or retired altogether to reduce cooling and maintenance costs.
Resources are partitioned as needed from the physical environment to the many virtual environments. Users interact with and run computations within the virtual environment (typically called a guest machine or virtual machine).
The virtual machine functions as a single data file. And like any digital file, it can be moved from one computer to another, opened in either one, and be expected to work the same.
When the virtual environment is running and a user or program issues an instruction that requires additional resources from the physical environment, the hypervisor relays the request to the physical system and caches the changes—which all happens at close to native speed
Data virtualization
This can be defined as the type of Virtualization wherein data are sourced and collected from several sources and managed from a single location. There is no technical knowledge from where such data is sourced and collected, stored, or formatted for such data.
The data is arranged logically, and the interested parties and stakeholders then access the virtual view of such data. These are reports are also accessed by end-users on a remote basis.
The application of data virtualization ranges from data integration to business integration. They are also used for service-oriented architecture data services, and they help find organizational data.
Desktop virtualization
This can be defined as the type of Virtualization that enables the operating system of end-users to be remotely stored on a server or data center. It enables the users to access their desktops remotely and do so by sitting in any geographical location. They can also use different machines to virtually access their desktops.
With desktop virtualization, an end-user can work on more than one operating systems basis the business need of that individual.
If the individual wants to work on an operating system other than the Window Operating System, he can use desktop virtualization. This provides the individual an opportunity to work on two different operating systems.
Therefore, desktop virtualization delivers a host of benefits. It delivers portability, user mobility, easy software management with patches and updates.
SERVER VIRTUALIZATION
This kind of Virtualization ensures masking of servers. The main or the intended server is divided into many virtual servers. Such servers keep changing their identity numbers and processors to facilitate the masking process. This ensures that each server can run its own operating systems in complete isolation.
Operating system virtualization happens at the kernel. It’s a useful way to run Linux and Windows environments side-by-side. Enterprises can also push virtual operating systems to computers, which:
Reduces bulk hardware costs, since the computers don’t require such high out-of-the-box capabilities.
Increases security, since all virtual instances can be monitored and isolated.
Limits time spent on IT services like software updates.
Network functions virtualization
Network functions virtualization (NFV) separates a network's key functions (like directory services, file sharing, and IP configuration) so they can be distributed among environments. After we have started using this network virtualization then we will be using the physical network for the sole purpose to forward the packets and we will be doing the management work using the software. We basically collect the entire network and with the help of the routing table we will manage it in real-time and they are also independent of each other. One example of network virtualization is that VPN.
Through network virtualization, logical switches, firewalls, routers, load balancers, and workload security management systems can be created..
Type 1 hypervisors, also called bare-metal hypervisors, run directly on the computer’s hardware, or bare metal, without any operating systems or other underlying software. They require a separate management machine to administer and control the virtual environment. Type 1 hypervisors are highly secure because they have direct access to the physical hardware with nothing in between that could be compromised in an attack. They allow for more resources to be assigned to virtual machines than are available, and since only the necessary resources are consumed by the instance, they are also highly efficient.
Type 2 hypervisors, also called hosted hypervisors, run as an application in an operating system. They require the host operating system to perform their function like any other application, and the guest operating system runs as a process on the host while the hypervisor isolates the guest from the host. Multiple Type 2 hypervisors can be run on top of a single host operating system, and each hypervisor may itself have multiple operating systems. Type 2 hypervisors are simple to set up and enable quick access between applications running on the guest and host operating systems, but are not capable of running the complex workloads that Type 1 hypervisors run.