Cloud Computing CIS 5550
One server — local rack — cluster
# increases whole access rate decreases
Moving everything to the cloud
- reduce cost on the IT infrastructure - cost effective (pay per use)
How does cloud computing work
- the way how the services can be provided depends on the provider - many provide a friendly browser based dashboard that makes it easy for IT professionals and developers to order resources and manage their accounts - some cloud computing services are designed to work with REST API and a command line interface (CLI) giving developers multiple options
When to use SaaS
-Startups and small companies that need to launch the business quickly -short term projects (easily unsubscribe from service) -applications not used frequently (tax software) -applications that require both web and mobile access
Cloud computing benefits - Scalability
-ability to scale elastically -delivering the right amount of IT resources when needed
Software as a Service (SaaS)
-aka cloud application services -most commonly utilized option for businesses in the cloud market -utilize the internet to deliver applications that are run by cloud providers -majority of SaaS applications run through web browsers
Infrastructure as a Service (IaaS)
-aka cloud infrastructure service -provides highly scalable and automated compute resources -fully self service for assessing and monitoring computers, network, storage and other services -allows businesses to purchase resources on demand instead of having to buy the hardware outright
Platform as a Service (PaaS)
-aka cloud platform services -delivers a framework for developers that can build upon and use to create customized applications -developers maintain management of the application (update, security...)
3 major components: virtual machines
-basic cloud building blocks -install and run software yourself -configure multiple VMs with different roles to create complex solutions
What if your cluster is too big to fit in the office?
-build separate buildings for cluster with advanced cooling and power system -when computers over heat they turn off which results in downtime -cooling also helps prevent accidental fires
PaaS characteristics
-built on top of virtualization technology (scale up or down easily) -provides variety of services to assist in app development, testing, and deployment -easily accessible to many users through the same development application -integrates web services and databases
Google Cloud Platform
-can build, test and deploy applications on googles highly scalable and reliable infrastructure -offers full spectrum of cloud products and services for -compute -storage -networking -big data and analytics -machine learning -operations and more
Cloud computing benefits - Performance
-cloud services provided on top of regularly upgraded to the latest generation of fast and efficient computing hardware -improved network latency for applications and greater economies of scale
Classical scaling approaches
-computing resources are not pooled -scaling are managed by apps or special middleware -legacy or manual provisioning is mostly inevitable
Examples of things we can do with the cloud
-create new apps and services -store, backup, and recover data files -analyze data for patterns and make predictions -host websites, stream videos...
Main contributors to cloud computing
-data capture -analytics -IoT
Data center
-dedicated place/building that houses IT infrastructure -warehouse sized computer. All resources pooled together (consolidated) -single data center can easily contain 10,000 server tracks with 100 core CPUs per rack. That is 1,000,000 cores total, # trends to increase over time
IaaS delivery
-delivers computing resources via virtualization technology -provides dashboard or API to users with full control Ofer entire infrastructure
Cloud computing benefits - Reliability
-easier/inexpensive data backup, disaster recovery and business continuity -redundancy on cloud providers network
Cloud computing benefits - cost
-eliminates capital expense of hardware/software -reduced the round the clock electricity for power and cooling -reduces time needed for IT experts on managing infrastructure
Cloud computing benefits - Productivity
-eliminates time consuming IT management tasks (racking and stacking hardware set up, software patching, cyber security reinforcement) -IT can spend time on important business goals
Microsoft Azure
-flexible, open and secure public cloud built for business -access broad collection of integrated services that are compatible with multiple languages and operating systems -complete cloud platform that can host existing application infrastructure -provides compute based services tailored for your application development needs
IaaS advantages
-highly flexible cloud computing model -easy to automate deployment of computing resources -resources can be purchased as needed -highly scalable (scale up or down based on needs)
Scale of future apps and services
-how many users/objects? How much data? How much computation? -efficient and effective
Cluster is good
-in a computer the hard drive is always the first to go so in a cluster they can pull it out. Otherwise they would have to turn off the whole server which results in down time -if one is not enough add more
Cloud foundry
-industry standard open source cloud application platform (PaaS) for developing and deploying cloud applications -automates, scalers and manages cloud applications via their lifecycle -can be implemented through any programming languages and are deployed in container images on any infrastructure -integrated monitoring, management and orchestration
SaaS characteristics
-managed from central location -hosted on remote server -accessible over the internet -no need to manage hardware and software
utility computing
-metered computing service (pay as you go) -dynamic resource provisioning (dynamic sealing)
Expensive
-need hardware investment -need special expertise -need more maintenance (trouble shoot, updates, user acts) -even a small cluster can easily cost $100,000 - a single DC could cost between $200-500 million
Scaling up
-need to order new machine, deploy them, integrate with existing cluster (could take weeks) -large scaling factors may require major redesign, like new storage system, new network topology, new building
when to use PaaS
-needs to improve workflow when multiple developers are working on the same project -particularly beneficial if you need to create customized apps -rapid developing or deploying an application -dont have to worry about future can scale up or down
Open stack
-open source cloud operating that controls large pools of compute, storage and networking resources -all resources managed via dashboard that gives IT administrators control while empowering users to provision resources through web interface -resources accessible to developers via API -open stack can be deployed in a single data center across multiple DC regions
PaaS delivery
-provides a platform for software applicaton -platform is delivered via the web and developers can spend time on building the software without having to worry about infrastructure management -the customized application can be built on top of middleware to ensure scalability and availability
3 major components: cloud services
-provides easy management of VMs and scale out as many as needed -2 types of VMs: worker roles (computing and running services ) and web roles (W/IIS installed and configures)
Dimensioning dilemmas
-provisioning for peak vs below the peak -you can either waste resources or lose customers
Everything-as-a-service (XasS)
-refers to the delivery of everything as a service -any computing services delivered via the internet using pay as you go pricing model. -highly customized, responsive data - driven products and offerings fully controlled by the customers -the business can -adopt sales force.com for CRM -use service now for IT help desk support -employ was for computing infrastructure
IaaS characteristics
-resources are available as a service -on demand pricing base on consumption -services highly scalable -dynamic and flexible
Rebranding web 2.0
-rich, interactive, information shared, multi device application -the network is a computer -enriched self service/interface
PaaS advantages
-simple and cost effective app development (pay for what you use) -scalable and highly available
when to use IaaS
-startups and small businesses to avoid spending money on hardware and software -large businesses who prefer to retain complete control over the applications and infrastructure based on demand -businesses experiencing rapid growth who need scalability -any time you are unsure of a new applications demand
Cloud computing benefits - Speed
-supports self service and on demand -fast provisioning in computer resources with just a few clicks -flexibility in capacity planning
Load
-the load is not easy to dimension (weekend less, peak more) -the actual load can vary considerably -the peak load can exceed average load by factor of 2X - 10X
SaaS Delivery Models
-web model eliminates the need to have IT staff download and install applications on each individual computer -vendors manage all technical issues: data middleware, servers, and storage
Scaling up
-what if one company is not enough Buy a server grade computer -what if the biggest one is not enough Buy more computers (cluster)
Scaling down
-what to do with excessive hardware -power consumption is about 60% of the peak energy when service is idle -several fixed costs like energy, hardware, upgrades and construction
3 delivery/service models of cloud computing
1. Infrastructure as a service 2. Platform as a service 3. Software as a service
4 Deployment Models of Cloud Computing
1. Private cloud 2. Community cloud 3. Public cloud 4. Hybrid cloud
5 Essential Characteristics of Cloud Computing
1. on-demand self service 2. broad network access 3. resource pooling 4. rapid elasticity 5. measured service
General properties
5 essential characteristics 4 deployment models 3 service/delivery models
AWS services and features
5,089
5 characteristics: On - demand service
A consumer can use cloud computing resources without requiring human interaction with each service provider
What is cloud computing?
A model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction
GCP consists of
A set of physical assets like computers and hard disk drives and virtual resources that are contained in a google data centers -services keep growing, can mix and match services into combinations that can provide the infrastructure you need when you develop application on top of the GCP
examples of IaaS
Amazon web services, google cloud, Microsoft azure, linode.com, digital ocean, rack space, cisco
Example of PaaS
Angry birds - speed and scalability for a popular web game when you don't have the option to scale over time. Google app engine makes the process painless since it can instantly launch a many serves as we need and scale back down after it has passed its usage peak
What if data center is not enough
Build additional -additional need to be connected to be reliable with minimum down time
Software
Can be proprietary (azure, GCP, AWS) or open source (open stack or cloud foundry)
5 characteristics: broad network access
Capabilities are available over the network and accessed through standard mechanism
4 deployment model: private cloud
Cloud infrastructure is only available for a single organization
4 deployment model: community cloud
Cloud infrastructure is only available for the specific community shared by multiple organizations
4 deployment model: public cloud
Cloud infrastructure is provisioned for open use by general public
5 characteristics: measured service
Cloud systems automatically control and optimize resource use by leveraging a metering capability based on the type of service (pay per use)
4 deployment model: hybrid cloud
Combination of above 3 deployment models
3 major components: App services
Complete PaaS with dynamic scaling
3 essential aspects of cloud computing
Compute, storage, networking
5 characteristics: resource pooling
Computing resources are pooled to serve multiple consumers with different physical and virtual resources dynamically assigned and reassigned according to consumer demand
2 major components of data center
Cooling system and power
Complicated networking
Efficiency depends on design and builds of infrastructure
Examples of SaaS
G suite, Cisco Webex, Dropbox, go to meeting, sales force
SaaS Advantages
Greatly reducing the time and money on managing the software
Building blocks of data centers
Machines, computers and servers
XaaS
Mainstream: IaaS, PaaS, SaaS other: Baas, Caas, Dbaas, Maas, Naas, Faas
Amazon Web Services (AWS)
Offer a broad set of global based products/services -compute -storage -databases -analytics -networking -developer tools -management toold -mobile/IoT -security and enterprise applications
Reasons for shift to cloud computing
On-premise IT infrastructure involves running, deploying software application on the hardware infrastructure located within the premise of an organization (Computer networks, devices (servers), storage devices, software...)
Server
Rack -multiple serves in server rack Cluster - multiple racks can be put in here cluster switch - networking infrastructure **networking infrastructure is always the bottleneck
Moving away from the cloud
Refers to an organization moving away from traditional CAPEX model (buy dedicated hardware and depreciate overtime) to an OPEX model (using shared cloud infrastructure on pay as you go basis)
3 delivery models: platform as a service
Refers to cloud computing services that provide an on demand environment for application
5 characteristics: rapid elasticity
Resources can be rapidly provisioned and released based on consumer demand
Computing components
Servers, networks, storage, development tools, applications
In a nutshell cloud computing is
The act of storing, managing, processing data online as opposed to your own physical computer or network the on-demand delivery of compute power, database storage, applications and other IT resources through a cloud service platform via the internet with pay as you go pricing
3 delivery models: software as a service
The method for delivering software applications over the internet, on demand and typically on subscription basis
3 delivery models: infrastructure as a service
The most basic category of cloud computing. You rent IT infrastructure from cloud provider on a pay as you go basis
Computing at a scale
The needs: dynamic scale of current apps/services (apps and services need resources to run) -modern applications require large amounts of processing power and data -petabyte (PB)/Exabyte(EB) of data -millions of users -billions of objects
Cloud software
To provide close services we need to run cloud software/cloud operating system to abstract and manage underlying hardware infrastructure
Open stack and cloud foundry cloud provider
Together they can be a cloud provider open stack — IaaS and Paas cloud foundry — PaaS
Uses of cloud computing
Use an online service to send an email, edit documents, watch movies, listen to music, play games or store pictures and other files it is highly likely that cloud Computing is making it all possible behind the scenes
Bigness of data
Volume: the size of data velocity: how fast the data is created variety: the type of data
What is the cloud?
a general term referring to a collection of systems that contain everything required to run the service
Big data
service cover entire planet