Running a business in the Cloud with AWS

27
Living in the Cloud Conor O'Neill CEO LouderVoice & Co-Founder HushVine

description

Conor O'Neill, CEO of LouderVoice, gave this presentation to the University College Cork SME Cloud Incubator Workshop in March 2012. In it he describes how LouderVoice is 100% hosted EC2 and details pros/cons/alternatives for those thinking of moving to the cloud. LouderVoice is Europe's leading provider of Customer Reviews solutions to SMEs.

Transcript of Running a business in the Cloud with AWS

Page 1: Running a business in the Cloud with AWS

Living in the CloudConor O'Neill

CEO LouderVoice & Co-Founder HushVine

Page 2: Running a business in the Cloud with AWS

Introduction

1. Me2. History of LouderVoice3. Transition to Cloud4. Current Model5. Scaling6. Issues7. Outline of HushVine8. Node.js + MongoDB9. Iaas vs PaaS

10. What's Next?11. Q&A

Page 3: Running a business in the Cloud with AWS

Me - 20 yrs Technology Management

○ 1990s : S3/Philips, Integral Design○ Telecoms and then Digital TV

○ 2002 : Advanticus○ Digital Convergence

○ 2003 - 2006 : EMC○ Prof Services around SRM

○ 2006-2006 : McAfee○ Localisation

○ 2006 -Now : LouderVoice○ Customer Reviews SaaS

○ 2011-Now : HushVine○ Social TV on a Second Screen

Page 4: Running a business in the Cloud with AWS

History of LouderVoice

2005 - We should do a startup2006 - Build blog reviews aggregation platform2007 - Expand to non-blogs and Twitter2008 - Build first API for Business Customer2009 - Build Widget-based solution2010 - Move entirely to B2B Model2011 - Scale2012 - Grow via Channel and L10N

Page 5: Running a business in the Cloud with AWS

What it Looks Like 1

Page 6: Running a business in the Cloud with AWS

What it Looks Like 2

Page 7: Running a business in the Cloud with AWS

What it Looks Like 3

Page 8: Running a business in the Cloud with AWS

LAMP

Linux + Apache + MySQL + PHP/Perl/Python LouderVoice =

NGINX Apache mod_wsgiMySQLPythonDjangoMemcached

Page 9: Running a business in the Cloud with AWS

LouderVoice Architecture

NGINX Simple Load Balancer

Application Server = Apache

+ Django + Python

Application Server = Apache

+ Django + Python

Application Server = Apache

+ Django + Python

MySQL Solr Search Memcached

Content Distribution Network

Page 10: Running a business in the Cloud with AWS

Transition to Cloud

Pre-Launch = Simple Shared Hosting2006 - 2007 = Low-end VPS2007 - 2009 = Dedicated Softlayer Servers2009 - Now = 99% Amazon AWS2011 - Now = Some CloudFoundry, Heroku and Nodejitsu

Page 11: Running a business in the Cloud with AWS

Current AWS Setup

A number of generic small EC2 Instances1.7GB Memory1 Compute Unit

All running Ubuntu 10.04LTS LinuxEBS for all live dataRDS for MySQLCloudfront for CDNS3 for backupElastic IP for easy switchover

Page 12: Running a business in the Cloud with AWS

LouderVoice on AWS

NGINX on EC2 instance

Application Server on EC2 with Data on

EBS

Application Server on EC2 with Data on

EBS

Application Server on EC2 with Data on

EBS

MySQL on RDS Solr Search on EC2 with Data on EBS

Memcached on EC2 with Data on EBS

All Static Content on Cloudfront

Elastic IP

Backups on S3

Page 13: Running a business in the Cloud with AWS

How it all Works

Client site with LouderVoice

Code running on one or more of

their web-pages

Data cached using

Memcached for performance

Required content etc retrieved from App

Servers Reviews/Users/etc stored/retrieved from

MySQL

Content searched usingSolr Widget code, CSS, images delivered by Cloudfront CDN for

geographic performance

Client site with LouderVoice

Code running on one or more of

their web-pages

Client site with LouderVoice

Code running on one or more of

their web-pages

Page 14: Running a business in the Cloud with AWS

Other Services

1. DNSMadeEasy2. AuthSMTP3. Pingdom4. Google Apps for my Domain5. WordPress6. GitHub7. Redmine8. Bit.ly9. Facebook APIs

10. Twitter APIs

Page 15: Running a business in the Cloud with AWS

Management Tools

1. AWS Console2. Elasticfox3. Cloudberry Explorer4. Digital Mines + Cloud Vertical5. Cloudkick6. Boto7. Putty SSH and CLIs

Page 16: Running a business in the Cloud with AWS

Scaling

1. Pre-Optimisation is root of all evil2. Think about best/worst case scenario3. But do not build it day 14. Don't re-invent wheel5. Avoid lock-in technologies6. Use Open Source as much as possible7. You probably won't be Facebook8. Scale vs Time vs Skills vs Money9. How fast is fast enough?

Page 17: Running a business in the Cloud with AWS

Words of Warning

1. Build to your budget not perfection2. Do you have the skills or can you pay for

them?3. It's not cheaper than traditional hosting 4. You get Enterprise Functionality for Small

Biz5. Servers disappear, DBs get corrupted,

backups fail, Amazon has outages. Plan?6. How mission critical is your service/site?7. How much downtime can you accept?

Page 18: Running a business in the Cloud with AWS

Costs

1. Basic Server costs2. Reserved Instances3. Database, CDN, EIP, Multi-AZ etc etc 4. All those other services5. People cost - who will manage?

Page 19: Running a business in the Cloud with AWS

Outline of HushVine

1. Original idea a. A power-user filtering Twitter clientb. Show you all the Tweets you want, hide all the noise

2. Target market narrowed to Social TV watching e.g. #xfactor #apprentice

3. Creating unique second screen Social TV Platform for Tablet and Smartphone

4. Initially Twitter, then Facebook 5. Back-end = Cloud6. Front-end = Cross-Platform Mobile

Page 20: Running a business in the Cloud with AWS

HushVine Outline 2

Page 21: Running a business in the Cloud with AWS

HushVine Outline 3

Page 22: Running a business in the Cloud with AWS

HushVine Architecture

HushVine API HushVine Dashboards and Analytics

HushVine Tablet, Mobile and Web Apps. Cross-platform using HTML5+CSS3+JS and FeedHenry (or similar)

Node.js + Express = Filtering and Data Crunching Platform

MongoDB NoSQL Database

Twitter Streaming API delivering realtime sub-set of firehose

Hadoop Non-realtime Data Processing

Page 23: Running a business in the Cloud with AWS

Node.js and MongoDB

1. Hot Tech2. Node.js

a. Server Side JavaScript b. Uses Google Chrome V8 Enginec. Massive performance d. Widely understood programming language

3. MongoDBa. NoSQLb. Document-based DBc. Massive performance and scalability

4. 3000 X-Factor Tweets per minutea. CPU barely ticking over

Page 24: Running a business in the Cloud with AWS

IaaS vs PaaS

● IaaS○ Infrastruture as a Service ○ e.g. Amazon AWS, Rackspace○ You design you architecture○ No hand-holding, it's all on you○ Ultimate in flexibility

● PaaS○ Platform as a Service○ e.g. Cloud Foundry, Heroku etc○ You fit within a particular architecture○ Get best-practices built-in○ Reduces your management overheads

Page 25: Running a business in the Cloud with AWS

CloudFoundry PaaS

● No lock-in, multiple Clouds

● Partnered with FeedHenry

● VMware● Spring, Ruby on

Rails, Ruby and Sinatra, Node.js, Grails

Page 26: Running a business in the Cloud with AWS

What's Next

1. More automation and tools built-in to AWS2. Look at more automatic scaling3. Re-evaluate cost-benefit of more robustness4. Ever-reducing prices5. Cost Analysis and tuning6. Proper evaluation of Microsoft Azure7. Move some aspects to CloudFoundry8. Small Business friendly Cloud Offerings

Page 27: Running a business in the Cloud with AWS

Q&A

Questions?