mark marsiglio - autoscaling with ez in the cloud - a case study

24
Autoscaling eZ in the Cloud The Cloud is cool, but robots in the cloud are better Mark Marsiglio, President/CEO , ThinkCreative 16 Jun 2011 Friday, June 17, 2011

Upload: ez-publish-community

Post on 11-May-2015

700 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Autoscaling eZ in the CloudThe Cloud is cool, but robots in the cloud are better

Mark Marsiglio, President/CEO, ThinkCreative16 Jun 2011

Friday, June 17, 2011

Page 2: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Client & Developer Expectations

Typical vs. Cloud System Design

Auto-Scaling Cloud

Economics

Friday, June 17, 2011

Page 3: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Project Goals

Be more “cloudy”

Serve more pages, faster

Reduce hosting costs

Increase platform flexibility

Automate as much as possible

Be fully redundant, recover faster

Get woken up less by downtime alerts

Friday, June 17, 2011

Page 4: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Client Needs

Predictable cost

Burst capacity

Uptime

Load speed

Managed service

Trust that it is “handled”

Security

Dev Needs

Separate development environments

Easy deployment

Uptime

System stability

Ability to recover from human error quickly

Fast

Friday, June 17, 2011

Page 5: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Client Site Client Site Client Site

Client Site Client Site Client Site

Big, fast dedicated web

server 1

Local MySQL

Local File Sys

Local eZfind

Apache/PHP

Client Site Client Site Client Site

backup tar file sent to s3 for storage

Big, fast dedicated web

server 2

Local MySQL

Local File Sys

Local eZfind

Apache/PHP

Client Site

Client Site

Client Site

backup tar file sent to s3 for storage

Big, fast dedicated web

server 3

Local MySQL

Local File Sys

Local eZfind

Apache/PHP

backup tar file sent to s3 for storage

Dedicated ServersTypical Hosting Platform, Our Original Approach

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Friday, June 17, 2011

Page 6: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

RiskMany points of failure

Hard to restore

Slow download of backups

Heavy backup load

Inability to backup large sites (disk space)

Traffic surge can overwhelm

Capacity estimation

RewardPretty fast

Better than a shared server

Otherwise, not much

Friday, June 17, 2011

Page 7: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Dedicated Cloud ServersOur 1st Generation Cloud Platform

Snapshots Snapshots Snapshots

Client Site Client Site Client Site

Client Site Client Site Client Site

Big, fast dedicated Amazon

Instance server 1

Local MySQL

Local File Sys

Local eZfind

Apache/PHP

Client Site Client Site Client Site

Big, fast dedicated Amazon

Instance server 2

Local MySQL

Local File Sys

Local eZfind

Apache/PHP

Big, fast dedicated Amazon

Instance server 3

Local MySQL

Local File Sys

Local eZfind

Apache/PHP

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Friday, June 17, 2011

Page 8: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

For ClientsFor Clients

High quality backups

Better failure recovery

More problems vs. dedicated servers

Still no failover

For UsFor Us

Lower cost

Easy to create more instances

No automation

Higher failure rate

BadGood

vs. Original System

Friday, June 17, 2011

Page 9: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

RiskMany points of failure

Kind of hard to restore

System design changes are hard

Large traffic surge can overwhelm

Miscalculation of capacity requires DNS hassle

RewardFast and frequent backup snapshots

Super-fast backup restoration

Easy to create new instances as needed (AMI)

Technically, it’s in the cloud

Friday, June 17, 2011

Page 10: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

New Cloud Hosting PlatformAuto-scaling array of single-purpose servers

Friday, June 17, 2011

Page 11: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Big, fast web app server 1

OS, Apache/PHP, synchronized apache config

Big, fast web app server 2

OS, Apache/PHP, synchronized apache config

Big, fast web app server 3

OS, Apache/PHP, synchronized apache config

Big, fast web app server 4OS, caches,

synchronized apache config

Big, fast web app

server etcOS, caches,

synchronized apache config

Big, fast web app server 1OS, caches,

synchronized apache config

Elastic Load Balancers

Snapshots

NFS Server

EBS RAIDsite data, extensions,kernel, ini and logs

Snapshots

eZFindData store

eZ Find/Forwarder

Snapshots

MySQL SlaveRightscale template, can be promoted

MySQL Master

Additional instancesas needed, based on

traffic load, time of day

SSL SSL SSL SSL

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client SiteClient Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Rightscript powered

auto-scaling and scheduled min sizes

Friday, June 17, 2011

Page 12: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

For ClientsFor Clients

Less downtime

Failover systems

Dev/staging/production

Single point of failure in NFS filesystem

More expensive

For UsFor Us

Automatic scaling

Scripted instance launch

High tolerance of failure

Higher cost of operation

More complex arch.

BadGood

vs. 1st Gen System

Friday, June 17, 2011

Page 13: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Current Design NotesAmazon EC2, c1.medium, m1.large

Rightscale, scripted instance launching

Unique ELB for each SSL site

Approximately 5-7 servers running, 16gb/day, 30 req/sec

Array servers vote to scale, 2 new servers in ~4 mins

Array members first in-first out

Development/Staging/Production

Scripted deployment, version controlled

Friday, June 17, 2011

Page 14: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Current Design Limitations

NFS bottleneck

NFS single point of failure

Little CDN advantage

Unreliable sendmail email delivery

Limited data on per-client usage

No static IP for ELBs

And...

Friday, June 17, 2011

Page 15: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

The Cloud is Falling!

Judgement DayApril 21, 2011

Friday, June 17, 2011

Page 16: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Single-cloud dependence

Planned for...

Instance failure

Availability zone failure

Data store failure

Network connectivity failure

Database failure

What if the entire AWS system fails?

Friday, June 17, 2011

Page 17: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Next Generation ImprovementsPlanned enhancements - next 3 months

Friday, June 17, 2011

Page 18: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Big, fast web app server 1

OS, Apache/PHP, synchronized apache config

Big, fast web app server 2

OS, Apache/PHP, synchronized apache config

Big, fast web app server 3

OS, Apache/PHP, synchronized apache config

Big, fast web app server 4OS, caches,

synchronized apache config

Big, fast web app

server etcOS, caches,

synchronized apache config

Big, fast web app server 1OS, caches,

synchronized apache config

Elastic Load Balancers

Rightscript powered

auto-scaling and scheduled min sizes

SnapshotsSnapshots

eZFindData store

eZ Find

Snapshots

SQL Slave

SQL Cluster

SSL SSL SSL SSL

S3 Storage

Video CDN

Transcoding System

File CDN

Reporting/Analytics/

Log Analysis(Splunk)

Gluster

Gluster Bricks Postmark SMTP

Sendlabs SMTP

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client SiteClient Site

Client Site

Client Site

Client Site

Client Site

Client Site

Non-Client Site

Client Site

Client Site

Non-Client Site

Additional instancesas needed, based on

traffic load, time of day

Friday, June 17, 2011

Page 19: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Replicate the system: Dedicated client arrays, multiple regions, complete staging environments, load testing copies, etc

More cloud-only benefits

Big, fast web app server 1

OS, Apache/PHP, synchronized apache config

Big, fast web app server 2

OS, Apache/PHP, synchronized apache config

Big, fast web app server 3

OS, Apache/PHP, synchronized apache config

Big, fast web app server 4OS, caches,

synchronized apache config

Big, fast web app

server etcOS, caches,

synchronized apache config

Big, fast web app server 1OS, caches,

synchronized apache config

Elastic Load Balancers

Rightscript powered

auto-scaling and scheduled min sizes

Snapshots

NFS

EBS RAIDsite data, extensions, kernel, ini and logs

Snapshots

eZFindData store

eZ Find

Snapshots

MySQL Slave

MySQL

Additional instancesas needed

SSL SSL SSL SSL

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

S3 Storage

Video CDN

Transcoding System

File CDN

Reporting/Analytics/

Log Analysis(Splunk)

Big, fast web app server 1

OS, Apache/PHP, synchronized apache config

Big, fast web app server 2

OS, Apache/PHP, synchronized apache config

Big, fast web app server 3

OS, Apache/PHP, synchronized apache config

Big, fast web app server 4OS, caches,

synchronized apache config

Big, fast web app

server etcOS, caches,

synchronized apache config

Big, fast web app server 1OS, caches,

synchronized apache config

Elastic Load Balancers

Rightscript powered

auto-scaling and scheduled min sizes

Snapshots

NFS

EBS RAIDsite data, extensions, kernel, ini and logs

Snapshots

eZFindData store

eZ Find

Snapshots

MySQL Slave

MySQL

Additional instancesas needed

SSL SSL SSL SSL

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

S3 Storage

Video CDN

Transcoding System

File CDN

Reporting/Analytics/

Log Analysis(Splunk)

Big, fast web app server 1

OS, Apache/PHP, synchronized apache config

Big, fast web app server 2

OS, Apache/PHP, synchronized apache config

Big, fast web app server 3

OS, Apache/PHP, synchronized apache config

Big, fast web app server 4OS, caches,

synchronized apache config

Big, fast web app

server etcOS, caches,

synchronized apache config

Big, fast web app server 1OS, caches,

synchronized apache config

Elastic Load Balancers

Rightscript powered

auto-scaling and scheduled min sizes

Snapshots

NFS

EBS RAIDsite data, extensions, kernel, ini and logs

Snapshots

eZFindData store

eZ Find

Snapshots

MySQL Slave

MySQL

Additional instancesas needed

SSL SSL SSL SSL

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

S3 Storage

Video CDN

Transcoding System

File CDN

Reporting/Analytics/

Log Analysis(Splunk)

Big, fast web app server 1

OS, Apache/PHP, synchronized apache config

Big, fast web app server 2

OS, Apache/PHP, synchronized apache config

Big, fast web app server 3

OS, Apache/PHP, synchronized apache config

Big, fast web app server 4OS, caches,

synchronized apache config

Big, fast web app

server etcOS, caches,

synchronized apache config

Big, fast web app server 1OS, caches,

synchronized apache config

Elastic Load Balancers

Rightscript powered

auto-scaling and scheduled min sizes

Snapshots

NFS

EBS RAIDsite data, extensions, kernel, ini and logs

Snapshots

eZFindData store

eZ Find

Snapshots

MySQL Slave

MySQL

Additional instancesas needed

SSL SSL SSL SSL

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

S3 Storage

Video CDN

Transcoding System

File CDN

Reporting/Analytics/

Log Analysis(Splunk)

Big, fast web app server 1

OS, Apache/PHP, synchronized apache config

Big, fast web app server 2

OS, Apache/PHP, synchronized apache config

Big, fast web app server 3

OS, Apache/PHP, synchronized apache config

Big, fast web app server 4OS, caches,

synchronized apache config

Big, fast web app

server etcOS, caches,

synchronized apache config

Big, fast web app server 1OS, caches,

synchronized apache config

Elastic Load Balancers

Rightscript powered

auto-scaling and scheduled min sizes

Snapshots

NFS

EBS RAIDsite data, extensions, kernel, ini and logs

Snapshots

eZFindData store

eZ Find

Snapshots

MySQL Slave

MySQL

Additional instancesas needed

SSL SSL SSL SSL

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site Client Site Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

Client Site

S3 Storage

Video CDN

Transcoding System

File CDN

Reporting/Analytics/

Log Analysis(Splunk)

Friday, June 17, 2011

Page 20: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Cloud EconomicsCost & Revenue Considerations

Friday, June 17, 2011

Page 21: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

System development costsStaff research & development time

Maintenance of legacy systems

Pre-launch service subscriptions, monthly fees

Migration time/cost, upgrades

Expert consulting

Friday, June 17, 2011

Page 22: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

New Ongoing CostsAWS hourly costs

AWS Backup storage

AWS bandwidth

Cloudfront CDN bandwidth

RightScale (scripted servers)

Pingdom (monitoring)

Postmark (SMTP)

Bits on the Run (Video)

DNS Made Easy (Dynamic DNS)

Github (version control)

About US$5,000/mo Total

Friday, June 17, 2011

Page 23: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

New RevenueHigher monthly hosting fees (US$500-800/mo avg)

Much greater hosting capacity (unlimited sites?)

Sell hosting to other developers

Reduced concessions for downtime

Reduced management time, automation

Reduced legacy system costs

Friday, June 17, 2011

Page 24: Mark Marsiglio - Autoscaling with eZ in the Cloud - A Case Study

Thank you.

[email protected] Marsiglio, President/CEO, ThinkCreative

16 Jun 2011

Friday, June 17, 2011