Cloud and Scalable Computing
大约 3 分钟
Cloud and Scalable Computing
Why Cloud?
Uneven Utilizations by nature
- Day of the week and hours of the day: Web surfing
- Season of the year: Christmas e-gift cards
- Adhoc usage: One-off computation jobs/testing
Economies of scale
Cloud Benefits: on-demand + sharing

Cloud Types - Cloud Service Models
- Infrastructure-as-a-Service (IaaS)
- Platform-as-a-Service (PaaS)
- Software-as-a-Service (SaaS)

What service model the following offer (SaaS, PaaS, IaaS)?
- Salesforce.com - SaaS
- Amazon Web Services (AWS) Elastic Beanstalk, Azure App Service - Paas
- AWS Elastic Compute Cloud (EC2) - IaaS
What other X-as-a-Service have you heard of?
- Model aaS
- Function aaS
- Container aaS
Ownership Models
- Public Cloud
- Private Cloud
- Hybrid Cloud - Resources from 2+ computing environments
- Community Cloud - Group of consumers having the same conern
Scaling Up vs. Scaling Out
- Scale-up (vertically): more resources for a single node: More expensive for supercomputer (less cost-effective)
- Scale-out (horizontally): more nodes
- A farm of cheaper instances well-networked (high throughput)
- Application distributable in individual instances

Design Considerations
- Scalability and Elasticity
- Auto-scaling allows on-demand instances/node creation/removal
- Possibly based on metrics: CPU, memory, disk I/O, network I/O...
- Fault Tolerance for Availability
- Automated recovery for EC2 instances when some of them die
- Automated backups for storage
- Software Deployability
- Easy to deploy; and create a new environment to test out changes
- Integrated with GIT for systematic versioning control