developing for the cloud

Post on 13-Dec-2014

1.067 Views

Category:

Travel

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

What kind of considerations must you make before you start developing applications for the Cloud? Images used with CC Attribution license: Flickr users BotheredByBees, christopher.woo, david.nikonvscanon, eljay, indigoprime, Irargerich, karindalziel, Spodeworld & stewart

TRANSCRIPT

Web developing for the cloudAndy Still – Technical Director, Intechnica

Cloud Development ≠ Traditional Web Development

Don’t believe that to develop a cloud based web application you can develop a standard web application and deploy to the cloud

Embrace the benefits

Beware the pitfalls

Platform is transitory

Cloud instances are transitory; they can fail or reboot at any point• Everything must work on booting

Don’t depend on local storage• Use shared storage

• Amazon EBS• Amazon S3• Azure BLOB Services

Build for Scale Out

Componentise Application• Create distinct black box components• Minimal interfaces to reduce bandwidth• Make services idempotent

Shard data where possible• Reduce reliance on single database

Stateless• No tie of user/consuming service to server

Be imaginative with data storage

Think beyond traditional data storage means

Consider NoSQL databases (Azure Table Services, Amazon SimpleDB)• Flexible data structures (schema-less)• Distributed datasets – eventual consistency• Built for scalability

Lose a lot of the facilities standard to SQL databases• Transactional integrity• Constant data consistency• Flexibility of data queries• Standard language across providers

Look at the other services on offer

Much more to the big cloud providers than just web servers• Full toolkit for building highly scalable applications

Advantages• Designed for scalability

• Designed for Fault Tolerance• Low administration overhead

These services are used to power their own services

SQL Databases Amazon RDS, Amazon Oracle, SQL AzureNoSQL Databases Amazon SimpleDB, Azure Table ServicesMessaging Queues Amazon SQS, Azure Queuing ServiceCaching Azure AppFabric CachingCDN Amazon CloudFront, Azure CDNMonitoring Amazon CloudWatchLarge Scale Data Processing Amazon Elastic Map ReduceBulk Email/Messaging Amazon SES, Amazon SNSScaling Amazon Auto-ScalingFile Storage Amazon S3, Azure BLOB ServicesVPN Amazon VPC, Azure ConnectLoad balancing Azure Traffic Manager, Amazon ELBComputing Amazon EC2, Azure Worker Roles and Web Roles, Azure Virtual

MachinesBusiness Intelligence SQL Azure Reporting

Don’t be scared of a hybrid solution

Combine cloud, on-premise, hosted solutions and even multiple clouds

Use the best tools for the job

Just because the cloud isn’t a good fit for your application doesn’t mean that the cloud is of no interest to you

NoSQL DatabaseRegular Updates

Public

SQL Database

PCI CompliantDataCentre

Catalogue/Product BrowsingCheckout

CloudEnvironment

NoSQL DatabaseRegular Updates

Public

SQL Database

On-Premise

Online PresenceAdministration

Amazon EC2

SQLAzureDatabase

Regu

lar D

ata

Tran

sfer

Public

SQL Database

Hosted Environment

Web Presence

AzureWorker

Role

AppFabric CachingLayer

Post OrderProcessing

Amazon SES

Azure MessagingQueue

Be Aware of What You Are Paying For

Bandwidth• Minify js/css files• Enabled compression• More aggressive caching policies• Use CDNs

Minimise Database calls• Cache results in memory where possible• Use distributed caching service to cache across instances

Minimise queue reads• Combine multiple requests into one queue entry• Don’t query queue more often than needed – pay for checks on empty queue too

Consider licensing costs• Use existing software licences instead of EC2 licences• Look at open source options

Stop servers when not in use!!!

Build in Scalability

Most cloud providers offer API’s to their systems

Build means to programmatically expand system without sysadmin intervention• Automatically based on monitoring• Manually via management interface

Must consider• Billing implications – especially with auto expansion

Web: www.intechnica.co.ukEmail: more@intechnica.co.ukTwitter: @intechnicaTel: 0845 680 9679Fax: 0845 2991647Address: Fourways House, 4th Floor, 57 Hilton Street, Manchester, M1 2EJ

Questions

top related