cloud computing - challenges & opportunities
DESCRIPTION
Slides for a discussion about Cloud Computing organised by the Isle of Man Branch of the BCS in September 2012. These slides introduce Cloud Computing, delve into some detail on Mcirosoft Azue and Amazon Web Services and pose some questions as to suitability, consideration and risks to be discussed. This talk was presented by Arron Clague from Synapse Consulting and Owen Cutajar from Intelligence LtdTRANSCRIPT
Cloud ComputingChallenges and Opportunities of
Moving to Cloud Based Computing
Arron ClagueBsc(Hons) MBCS
Synapse Consulting
Email : [email protected]
Twitter : arroncx
http://www.synapsecn.com
Owen Cutajar
Intelligence Ltd
Email : [email protected]
Twitter : OwenC
Skype: owencutajar
http://intelligence.im
Defining Cloud Computing
Cloud computing is a model for building out loosely coupled systems which run at scale, with elastic resourcing properties.
Defining Cloud Computing
Service Models•Infrastructure as a Service (IaaS)•Platform as a Service (PaaS)•Software as a Service (SaaS)Deployment Models•Private Cloud•Community Cloud•Public Cloud•Hybrid Cloud
Defining Cloud Computing
Elasticity and Scalability
TIME
IT C
AP
AC
ITY
Actual Load
Allocated IT-capacities
Too Much Power
Not Enough Power
Load Forecast
How the Cloud can help
• Reduce upfront cost (no CapEx)• Reduce ongoing expenses• JIT infrastructure if things go well (or not)• Efficiently test multiple scenarios• Leverage repeatable “web scale” patterns
Some Use Cases• Mobile backends • Campaign Support Apps • Geographically diverse apps• Examples
1. The New York Times used 100 Amazon EC2 instances and a Hadoop application to process 4 TB of raw image TIFF data (stored in S3) into 11 million finished PDFs in the space of 24 hours at a computation cost of about $240 (not including bandwidth).
2. Scale to demand (next slide)
Scale to demand-Financial Services
Current playing field
• Microsoft Azure• Amazon Web Services• Google Cloud Platform
• VMware vCloud/vFabric/Cloud Foundry
Azure Deep Dive
Windows Azure provides a ‘pay-as-you-go’ scale out application platform
Intelligent Network Load Balancer
Stateless ‘Worker’ Machines
Stateless Web and/or Application Servers
Shared Filesystem
Partitioned RDBMS
Key/ValueDatastores
State Tier Queues
Representational State Transfer
Enterprise
Windows Azure
Service Bus
ClientClient
ServiceService
VMware vFabric
AWS Service Overview
AWS Global Infrastructure
Simple Storage Service
• Cloud based file storage• Simple API to CRUD• Unlimited capacity• Excellent for static web content• Files are URL-accessible• Move BLOBS from RDS
Elastic Compute Cloud (EC2)• Hardware virtualisation in the cloud• Various sized servers• All major operating systems• Uses Elastic Block Store (EBS) service• Provision, configure, start and stop
instances through browser or API• Full operating system access
Relational Database Service (RDS)
• Specialised RDBMS hosting• Supports MySQL, Oracle, SQL Server• Automated backups• Live replication for fail-over support• Transparent to your apps• DB provisioning from your
browser or through API
SimpleDB & DynamoDB
• NOSQL databases• Simple DB
– Excellent for small amount of structured data– 10GB limit per table
• DyanamoDB– Hosted on SSD– No size or request limitation
CloudWatch• Scalable unified resource monitoring• Monitor EC2, RDS and any other AWS
resource• Also monitor your own application• Create your own alarm conditions• Flexible notification system via Simple
Notification Service (SNS)
Auto Scaling
• Works with CloudWatch• Automatically provision additional instances
when load increases• Shutdown instances when load decreases• Pre-emptive scaling• Monitoring health of EC2
instances
Elastic Load Balancing (ELB)• Scaled fault-tolerant load balancing• Works with Auto Scaling and CloudWatch• Load balances request over a set of EC2 instances• Can monitor health of EC2 instances and
shutdown non-performance instances• Can trigger scale-up and
scale-down events
Elastic Beanstalk (EBS)• Platform as a Service (PaaS)• Bundles up services provided by EC2, S3,
CloudWatch, Auto Scaling and ELB• Browser based provisioning of production
ready applications• Supports live hot-swapping
for applications• Java, .Net, Python, PHP only
Simple Notification Service (SNS)• Scalable fault tolerant messaging• Public-Subscribe model (push)• Messages are persisted and can survive
common outage scenarios• Notifications via
– HTTP– SMTP – SMS– SQS
Simple Queue Service (SQS)• Compliments SNS functionality• Queue model (FIFO)• Message publishers and consumers
inside and outside of AWS• Using SNS and SQS paramount for
applications to ensure – Scalability– Reliability– Resilience
Simple Workflow Service (SWF)• Coordinated synchronous and asynchronous
work in distributed application• Supports automated and manual (human-
based) tasks• Like SNS and SQS, using SWF as part of your
application can help build “web-scale” applications
Elastic MapReduce (EMR)• “Big Data”• Hosted Apache Hadoop environment• Uses EC2, S3 and DynamoDB service• Specify the number and type of EC2 instances
used• Full control via API• Examples: Scientific Analysis,Financial Analysis, Content indexing
Discussion Points
• Stateless development is key ?• Can you abstract away from the
underlying technology – Cloud Foundry ?• Remember that platforms are still
evolving…• Rate of change of platforms is high• Need to factor in existing staff Skill Base