Cloud Computing
 Challenges and Opportunities of
Moving to Cloud Based Computing

   Arron Clague                   Owen Cutajar
   Bsc(Hons) MBCS
                                  Intelligence Ltd
   Synapse Consulting
                                  Email : owen@cutajar.net
   Email :
   arron@synapse-consulting.com   Twitter : OwenC
   Twitter : arroncx              Skype: owencutajar
   http://www.synapsecn.com       http://intelligence.im
Defining Cloud Computing
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
Elasticity and Scalability

                                     Allocated      Load
                   Not Enough      IT-capacities   Forecast
                     Power
IT CAPACITY




              Too Much
               Power




                          Actual Load


                                        TIME
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 Web and/or Application Servers


      Stateless ‘Worker’ Machines



      State                  Key/Value    Partitioned     Shared
                 Queues
       Tier                  Datastores     RDBMS       Filesystem
Representational State Transfer
Windows Azure




    Enterprise
Service Bus




Client

                       Service
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

Cloud Computing - Challenges & Opportunities

  • 1.
    Cloud Computing Challengesand Opportunities of Moving to Cloud Based Computing Arron Clague Owen Cutajar Bsc(Hons) MBCS Intelligence Ltd Synapse Consulting Email : owen@cutajar.net Email : arron@synapse-consulting.com Twitter : OwenC Twitter : arroncx Skype: owencutajar http://www.synapsecn.com http://intelligence.im
  • 2.
  • 3.
    Defining Cloud Computing Cloudcomputing is a model for building out loosely coupled systems which run at scale, with elastic resourcing properties.
  • 4.
    Defining Cloud Computing ServiceModels •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
  • 5.
    Elasticity and Scalability Allocated Load Not Enough IT-capacities Forecast Power IT CAPACITY Too Much Power Actual Load TIME
  • 6.
    How the Cloudcan 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
  • 7.
    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)
  • 8.
  • 9.
    Current playing field • Microsoft Azure • Amazon Web Services • Google Cloud Platform • VMware vCloud/vFabric/Cloud Foundry
  • 10.
  • 11.
    Windows Azure providesa ‘pay-as-you-go’ scale out application platform Intelligent Network Load Balancer Stateless Web and/or Application Servers Stateless ‘Worker’ Machines State Key/Value Partitioned Shared Queues Tier Datastores RDBMS Filesystem
  • 12.
  • 14.
    Windows Azure Enterprise
  • 18.
  • 20.
  • 22.
  • 23.
  • 24.
    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
  • 25.
    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
  • 26.
    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
  • 27.
    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
  • 28.
    CloudWatch • Scalable unifiedresource 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)
  • 29.
    Auto Scaling • Workswith CloudWatch • Automatically provision additional instances when load increases • Shutdown instances when load decreases • Pre-emptive scaling • Monitoring health of EC2 instances
  • 30.
    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
  • 31.
    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
  • 32.
    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
  • 33.
    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
  • 34.
    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
  • 35.
    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
  • 37.
    Discussion Points • Statelessdevelopment 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