What is the evolution of distributed computing paradigms?
Mainframes → Clusters → Grids → Clouds
What are the 4 eras of distributed computing?
1st: Internet (machines, TCP/IP). 2nd: WWW (documents, HTTP). 3rd: SOA (applications, REST). 4th: Grid (everything).
What is the key technological requirement for Clouds?
Virtualisation.
Define Cloud Computing.
Large pool of easily usable virtualised resources, dynamically reconfigurable, elastic, pay-per-use with SLAs.
What does Scale mean in cloud?
Resources can be dynamically reconfigured to adjust to variable load.
What does Elasticity mean in cloud?
Optimum resource utilisation - scale up/down as needed.
What is an SLA?
Service Level Agreement - guarantees offered by infrastructure provider.
What are cloud’s historical roots?
Internet applications: search
What is the scale of cloud data centres?
10s to 100s of thousands of hosts
Name examples of cloud data centre uses.
E-business (Amazon), Content servers (YouTube), Search engines (Google).
What are business benefits of virtualisation?
Server consolidation, reduced costs, reduced complexity, simplified admin, pay-per-usage.
What are technological benefits of virtualisation?
On-demand scaling, elasticity, hardware consolidation, simple provisioning, resource transparency.
What is SaaS?
Software as a Service - software runs remotely. E.g. Google Apps.
What is PaaS?
Platform as a Service - software stack for deploying apps. E.g. Microsoft Azure.
What is IaaS?
Infrastructure as a Service - virtualised infrastructure. E.g. Amazon EC2.
What layer is user-facing in cloud?
SaaS at top. Lower layers hidden from end user.
What is a VIM?
Virtual Infrastructure Manager - manages VMs
What does VIM integrate?
Image
How do VMs work?
Virtualise hardware. Each VM needs full OS. Hypervisor manages.
How do Containers work?
Virtualise OS. Share single kernel. Each container runs isolated instance of OS.
What is the key VM vs Container difference?
VMs virtualise hardware (full OS per VM). Containers virtualise OS (share kernel
What is a Microservice?
Single executable service that is small part of application
How are applications built with microservices?
Collection of microservices
How do containers provide resilience?
Application built to cope with individual container failure. Each has own instance of code.