Cloud computing


Once upon a time...

A long time ago
Infrastructure used to be hosted on-premises (and still is in many cases)
Some advantages…

  • Under your team's supervision
  • More control over security

    But more disadvantages…
  • Breakdowns? Your responsibility!
  • Keeping everything up-to-date? Your responsibility!
  • Managing access? Your responsibility!
  • Need more space (scaling)? Guess what… your responsibility!

Nowadays...

Infrastructure on-premises still exists, but gets less common every year
Cloud computing: allocation of one, several or all parts of your infrastructure to the management of a third party
Biggest advantage: less responsibilities, so less worries

3 main types of cloud computing 'as a Service'

  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)

Cloud

IaaS vs. PaaS vs. SaaS

IaaS vs. PaaS vs. SaaS

Infrastructure as a Service (IaaS)

  • Third party provides you with infrastructure services, like storage and virtualization, as you need them, via a cloud, through the internet
  • You provide: operating system, data, applications, middleware and runtimes
  • No on-site datacenter anymore
  • Access and control of infrastructure using an API or dashboard
  • Big flexibility: scaling up or down easily
  • Low overhead and no maintenance cost

  • Public cloud providers: AWS, Microsoft Azure, Google Cloud, etc.

IaaS

Platform as a Service (PaaS)

  • One step further than IaaS
  • You provide: data and applications
  • Provider hosts the hardware and software
  • You write the code, build, and manage your apps, but you do it without the headaches of software updates or hardware maintenance

  • PaaS providers: AWS Elastic Beanstalk, Heroku, Red Hat OpenShift, etc.

PaaS

Software as a Service (SaaS)

  • Cloud application services
  • Delivering an entire application that is managed by a provider, via a web browser
  • Software updates, bug fixes, and general software maintenance handled by provider
  • Users connect to the app using an API or dashboard
  • No installation of the software on individual machines
  • Ideal for small businesses because of relatively low cost

  • SaaS providers: Dropbox, Salesforce, Google Apps, Red Hat Insights, etc.

SaaS

Scalability and Elasticity

Vertical or horizontal scaling

  • Scaling up / vertical scaling: adding more resources (additional CPU, memory, etc.) to an instance that already has resources allocated, or removing resources
    • Not always easy: often requires a redeployment of an instance or powering down to make the change

  • Horizontal scaling: add additional instances that can handle the workload (extra VMs, container pods, etc.)
    • Distribution of users over instance: using a load balancer which will choose the instance the user will connect with
    • Advantage over vertical scaling: no need to make changes to the virtual hardware on each machine, but rather add and remove capacity from the load balancer itself

Scaling

Load balancing

Load balancer:

  • Will distribute the incoming traffic over the available servers (acts as a reverse proxy)
  • Similar to a traffic cop at a crossroads
  • Goal:
    • Make the overall processing more efficient
    • Optimize the response time
    • Avoid overloading of instances

Load balancing

Elasticity

Elasticity: the workload’s ability to scale up and down

  • Static scaling: provisioning resources to account for the “peak” even though the underlying workload is constantly changing
  • Elastic scaling: allow for the resources to be added on demand, while ensuring some buffer room
    • Big advantage: only pay for what you need

Elasticity

Last update: 9/16/2022, 1:14:49 PM