October 15, 2019

Cloud Computing

Cloud Computing

Senario

  • Suppose that you want to run a deep learning project
  • This could require a lot of computing resources
    • processing power, maybe GPUs
    • memory/RAM
    • disk space and direct access to databases

So…

Let’s buy a powerful comptuer!

I can analyze anything!

But this is what happens…

  • Your computation environment is fixed
  • Your demand fluctuates

Also, all sorts of things can go wrong…

  • Hardware can break down
  • Software needs constant updating, securituy patches, etc
  • Internet connections can be faulty
  • (Physical) security concerns have to be met

So what if…

  • You just have to pay what you use?
  • You can deploy things in the matter of hours/minutes/seconds?

That’s what cloud computing is for!

What is cloud computing?

Your previous experience?

  • Experience in Linux/Unix console?
  • Experience use virtual machine softwares on your computer (e.g. VirtualBox, Parallels)?
  • Having account on major cloud platforms (AWS, Microsoft Azure, Google Cloud)?
  • Ever used HPC environments?

You are already using cloud application services

These are the examples of Software as a Service:

  • email
    • gmail
    • exchange mail
  • storage
    • Google drive
    • Dropbox
  • software
    • Google docs
    • Adobe

Definition

“Cloud computing is a model for enabling ubiquitous, 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. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.” (From NIST Definition of Cloud Computing)

“as a service” models

Three main categories of cloud computing as a service:

  • Software-as-a-service is a software distribution model in which applications are remotely hosted and served to users via the Internet, usually through a standard web browser

  • infrastructure as a service (IaaS): a cloud provider hosts the infrastructure components traditionally present in an on-premises data center, including servers, storage and networking hardware. Includes a variety of associated services such as backup, log maintenance, updates, security, etc. Examples: AWS, Google Cloud, Azure.

  • platform as a service (PaaS): a third-party provider delivers hardware and software tools – usually those needed for application development – to users over the internet

Beyond the use of cloud services, we will try to learn about and deploy the cloud computation resources

Metaphor with pizza

Technical perspective: Virtualisation

  • In cloud computing, computers are virtualized
    • Similar idea to virtual machine on your computer
    • In data centers connected to the network, there are a number of hardwares which host a number of virtual machines

Data centers

  • For major providers of cloud service, there are data centers everywhere and you can deploy resources in any location.

Example AWS

Data centers

  • Physial locations of data centers are usually undisclosed (for security reasons)

Technical Perspective: Virtualisation

Difference between virtualisation on your machine and cloud

  • elasticity
    • readily scalable in short time
  • measured service provision
    • billed based on the usage (e.g. CPU/memory/storage/network)

Managed cloud service providers

Conceptual perspective: Level of abstraction

To what extent, you want a service provider to be responsible?
(aaS = as a Service)

  • Infrastructure? (IaaS)
  • Platform (= OS)? (PaaS)
  • Software (SaaS)