1. Demandware and the Cloud
Leveraging the Capabilities of Cloud Computing for
an eCommerce Software Provider
Jan Krueger
Software Engineer
Copyright 2010 Demandware, Inc. - Confidential
2. Introduction
Picture by R. Schwietzke (http://www.yetanotherblog.de)
Copyright 2010 Demandware, Inc. - Confidential
3. Demandware, Inc.
• Founded 2004 by former Intershop CEO Stephan Schambach
• HQ based in Woburn, MA / Boston Area
• Offices in USA, UK, Germany and France
• On-Demand eCommerce platform
• Pure SaaS, but fully costumizable
Copyright 2010 Demandware, Inc. - Confidential
4. Outline
• Amazon Web Services
• Demandware CloudBox Project
• Demandware Simple Image Transformation Service
• AWS Demo / Best Practice
Copyright 2010 Demandware, Inc. - Confidential
5. Everything as a Service - XaaS
SaaS
PaaS
DBaaS
IaaS
Hardware Layer / Networking
Copyright 2010 Demandware, Inc. - Confidential
7. Amazon Web Services Basics
• Amazon Web Services (AWS) provides companies of all sizes
with an infrastructure web services platform in the cloud
• Highly on demand infrastructure
• Pay what you use
• Various web service APIs to work with all services
Using Amazon Web Services, an e-commerce web site can weather
unforeseen demand with ease; a pharmaceutical company can “rent”
computing power to execute large-scale simulations; a media company
can serve unlimited videos, music, and more; and an enterprise can
deploy bandwidth-consuming services and training to its mobile
workforce.
Copyright 2010 Demandware, Inc. - Confidential
8. AWS Product Array
• Elastic Compute Cloud - EC2
• Simple Storage Service - S3
• Simple Database Service - SimpleDB
• Relational Database Service - RDS
• CloudFront
• Simple Queue Service - SQS
• Mechanical Turk - MTurk
• ... and some more
Copyright 2010 Demandware, Inc. - Confidential
9. Amazon Elastic Compute Cloud - EC2
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides
resizable compute capacity in the cloud. It is designed to make web-scale
computing easier for developers.
• Virtual computing environment
• Image driven, spawn instances from an AMI
• Different instance types with different specs
• Variety of ready to use AMIs
• Modify or build your own
• Ephemeral storage (lost after shutdown)
Copyright 2010 Demandware, Inc. - Confidential
10. Amazon Elastic Block Store - EBS
Amazon Elastic Block Store (EBS) provides block level storage volumes for use
with Amazon EC2 instances. Amazon EBS volumes are off-instance storage that
persists independently from the life of an instance.
• Create storage volumes from 1 GB to 1 TB
• Attach and mount with an EC2 instance
• Multiple devices on one instance (up to 15)
• Replicated in the backend
• Incremental point-in-time snapshots into S3
Copyright 2010 Demandware, Inc. - Confidential
11. Amazon Simple Storage Service - S3
Amazon S3 provides a simple web services interface that can be used to store and
retrieve any amount of data, at any time, from anywhere on the web. It gives any
developer access to the same highly scalable, reliable, fast, inexpensive data
storage infrastructure that Amazon uses to run its own global network of web sites.
• Read, write and delete unlimited number of items
• 1B to 5GB item size
• Authentication mechanisms available
• Private, user specific and public rights grantable
• Standards-based REST and SOAP interfaces
• Multiple protocol support
Copyright 2010 Demandware, Inc. - Confidential
12. Running an EC2 Instance
S3
EC2
AMI
AMIs
• Fedora
• Ubuntu
• Oracle AMI
• A lot more
EBS Volumes
• 1GB to 1TB
• Persistent Storage
• Attachable to one Instance
• Instant Snapshots
Copyright 2010 Demandware, Inc. - Confidential
Instances
• Different Specs
14. Grid Situation prior to CloudBox Project
PoD X
Customer A
Production
Customer E
Production
Customer A
Sandbox
Customer B
Sandbox
Customer C
Sandbox
Customer D
Sandbox
Customer A
Development
Customer E
Sandbox
Customer E
Sandbox
Customer E
Development
Customer C
Staging
Customer B
Production
Customer B
Development
Customer A
Staging
Customer E
Staging
Customer C
Development
Customer C
Sandbox
Customer A
Sandbox
Customer C
Production
Customer B
Staging
Customer B
Sandbox
Customer A
Sandbox
Customer D
Production
Customer D
Development
Customer D
Sandbox
Customer D
Sandbox
Customer D
Sandbox
Customer B
Sandbox
Copyright 2010 Demandware, Inc. - Confidential
Customer D
Staging
15. Grid + Cloud
PoD X
Customer A
Production
Customer E
Production
Customer C
Staging
Customer B
Production
Customer B
Development
Customer A
Staging
Customer A
Development
Customer E
Development
Customer E
Staging
Customer C
Development
Cloud
Customer B
Sandbox
Customer A
Sandbox
Customer D
Development
Copyright 2010 Demandware, Inc. - Confidential
Customer D
Staging
Customer D
Sandbox
Customer E
Sandbox
Customer E
Sandbox
Customer D
Sandbox
Customer B
Sandbox
Customer C
Sandbox
Customer B
Staging
Customer C
Sandbox
Customer D
Sandbox
Customer D
Production
Customer B
Sandbox
Customer D
Sandbox
Customer C
Production
Customer A
Sandbox
Customer A
Sandbox
16. Grid + Cloud
PoD X
Cloud
Customer C
Staging
Customer A
Production
Customer E
Production
Customer A
Development
Customer E
Development
Customer B
Development
Customer A
Staging
Customer E
Staging
Customer C
Development
Customer D
Development
Copyright 2010 Demandware, Inc. - Confidential
Customer D
Staging
Customer D
Sandbox
Customer E
Sandbox
Customer E
Sandbox
Customer D
Sandbox
Customer B
Sandbox
Customer C
Sandbox
Customer B
Staging
Customer C
Sandbox
Customer D
Sandbox
Customer D
Production
Customer B
Sandbox
Customer D
Sandbox
Customer C
Production
Customer A
Sandbox
Customer A
Sandbox
Customer B
Production
Customer B
Sandbox
Customer A
Sandbox
17. Goals
• More efficient and flexible handling of sandboxes
• Reduce cost for sandboxes
• Integrate into existing environment
– no new management tools
– no obvious changes in behavior or functionality for endusers
• Explore the capabilities of modern cloud environments
Copyright 2010 Demandware, Inc. - Confidential
18. Development Decisions
• Amazon EC2 32bit Instances - small / 0.08ct per hour
• 1.7GB RAM / 1 virtual core
• EBS Volume for persistent storage (database and user data)
• CentOS 5.4 basic AMI with heavy modifications
• Oracle XE - free, but with constraints
• Modular concept
Copyright 2010 Demandware, Inc. - Confidential
19. Cost breakdown
Sandbox on POD
$64 per month
Cloudbox on Amazon
On-Demand-Plan
0.08$ per hour
Cloudbox on Amazon
1-Year-Subscripton-Plan
0.03$ per hour + 230$ per year
Cloudbox on Amazon
3-Year-Subscripton-Plan
0.03$ per hour + 350$ per 3 years
60$ per month
34$ per month
25$ per month
• consumption of resources on a pod
– bandwidth
– storage sub system
– database license
Copyright 2010 Demandware, Inc. - Confidential
20. What we win
• Lower over-all costs
• Free 20% of resources on our pods
• Use those for existing customers or future ones
• Being very flexible with the amount of sandboxes
• No upfront investments in hardware
• Easy management of CloudBoxes
Copyright 2010 Demandware, Inc. - Confidential
21. What we already achieved
• 120 CloudBoxes in use
• Started off with internal users and training systems
• Second wave for partners and new customers
• Fully integrated into existing infrastructure
Copyright 2010 Demandware, Inc. - Confidential
22. Demandware Image Transformation Service
Prototyping and Production Deployment
on Amazon’s Elastic Compute Cloud
Copyright 2010 Demandware, Inc. - Confidential
23. Goals
• On the fly image transformation
• Most common used operations:
– Image resizing
– Image cropping
– Image sharpening / blurring
– Image overlay
– Image format conversion
– Image quality change
Copyright 2010 Demandware, Inc. - Confidential
24. Image Serving with Demandware Image Service
• Customer stores one size of image on our PODs
• APIs to generate custom URLs pointing to image service
• Image service fetches source image, transforms and delivers
the transformed version
Copyright 2010 Demandware, Inc. - Confidential
25. Why in the Cloud?
• Prototyping environment
– Fast and easy deployment of virtual hardware
– Several testing systems at your fingertips
– Isolated testing environment, still world wide available
– Try and Error
• Deployment environment
– Elastic Load Balancer
– Identical deployment in several geographic regions
– Instant deployment, no upfront hardware investment
Copyright 2010 Demandware, Inc. - Confidential
26. Deployment
• Amazon Elastic Load Balancer
• Two xlarge Amazon EC2 instances attached to ELB
• One-Click deployment of a full cluster
• Currently two production clusters / US and EU
• First live customers started to use service in Dec 2009
• Still beta testing to investigate usage
Copyright 2010 Demandware, Inc. - Confidential
27. AWS in Action
Demo - Experiences - Suggestions
Copyright 2010 Demandware, Inc. - Confidential
28. Best practice
• Shell vs. AWS Console vs. ElasticFox
• RightScale
• Failure as a feature
• Stay flexible
•Read - Learn - Ask
•Enjoy
Copyright 2010 Demandware, Inc. - Confidential
29. Conclusion & Outlook
• IaaS will change IT environment massively
• Early adaptor phase is already over
• Change of mind necessary
• Smaller issues to overcome, but rewards are priceless
• Demandware’s architecture will build massively upon services
• Several services will be deployed on Cloud-based solutions
Copyright 2010 Demandware, Inc. - Confidential