More than Just Lines on a Map: Best Practices for U.S Bike Routes
Elastic Grid talk at JavaZone 08 (Oslo, Norway)
1. Elastic Grid and EC2
How can Amazon EC2 Benefit from the Elastic Grid
Solution?
Jerome Bernard
2. About Elastic Grid
• Project initiated in early ’08
• LGPLv3 license
• Part of the OW2 forge
• ETA for initial Early Access version: end of Oct. ‘08
• Elastic Grid, LLC. founded in May ’08
• Dennis Reedy: Director US Operations at Elastic Grid LLC,
founder of the Rio OSS project, old VP Advanced Technology at
GigaSpaces, old Principal Engineer at Sun
• Jerome Bernard: Director EMEA Operations at Elastic Grid
LLC, committer on various OSS projects like Rio, Typica, JiBX.
3. Agenda
• EC2 and Amazon Web Services
• Capabilities, benefits and challenges
• Elastic Grid introduction
• Technology, approach and benefits
• Elastic Grid and EC2
• Deploying and scaling applications using Elastic Grid
• Demonstration
4. Cloud Computing
• A way to increase capacity or add capabilities on the
fly without investing in new infrastructure, training
new personnel, or licensing new software
• Virtualized hardware available for computation
• Resources “in the cloud”
• Low cost of entry, utility based model
• Pay for what you use
• Embraced by startups, and medium to large
corporations as a way to bypass IT
• Cloud Computing Providers (Utility)
5. Amazon EC2 Overview
In a nutshell
• Provides resizable compute capacity in the cloud
EC2 Amazon Machine Image (AMI)
• Operating System & application “stack”
• Deployed using Amazon Web Services to the “cloud”
• EC2 Instances that run AMIs
• Virtual machines
5
9. EC2 AMIs: Deployment Challenges
• The EC2 AMI is a boot image, requires substantial system
administrator knowledge
• As application code changes, AMIs typically need to
change / be re-bundled
• Not focused on developer productivity
Boot base AMI
Copy private key and
Upload to S3 certificate (for bundling
image)
Install and configure requisite
software
10. Elastic Grid (abbreviated as EG)
• Dynamic infrastructure for the dynamic deployment,
activation and management of Java applications on
virtualized hardware
• Technology building blocks
• Rio:
• used for provisioning of services,
• both EG founders are committers of the projects
• Typica: Elastic Grid, LLC is an active committer on this project
• JetS3t: the most popular Java API for using Amazon S3
• Jini (River)
15. EC2 AMIs: Deployment with EG AMIs
• EG AMIs are pre-set, no need to (re-)bundle
• As application code changes, upload to S3 and deploy
• Focuses on developer productivity
Boot EG AMIs
Deploy ...
Upload (modified)
app to S3
16. Elastic Grid Deployment
• Deploy application code S3
• Run the Deploy Command 1 Upload S3
• All code is dynamically served 3 As needed download
and instantiated application resources
• Application is monitored
and managed across EC2
2 Deploy
instances activate
Application
Monitors
Application Agents
17. Elastic Grid Scalability on EC2
• Across existing EC2 Instances
App Agent EC2 Instance App Monitor EC2 Instance
SLA
App Service Policy Handler
80% allocate
Memory
Observer register
• Allocate an Application Service
• Create a SLA Policy Handler
that registers for Memory
utilization notifications
• SLA has upper limit set to 80%
18. Elastic Grid Scalability on EC2
• Across existing EC2 Instances
App Agent AMI App Monitor AMI
SLA
App Service Policy Handler increment
80%
Memory
Observer notify
• Memory utilization exceeds 80%
• SLA Policy Handler is notified
• App Monitor allocates another
Application Service instance to
appropriate App Agent Instance
19. Elastic Grid Scalability on EC2
• Across existing EC2 Instances
App Agent AMI App Monitor AMI
SLA
App Service Policy Handler increment
80%
Memory
Observer notify
• Memory utilization exceeds 80%
• SLA Policy Handler is notified
• App Monitor allocates another
Application Service instance to
appropriate App Agent Instance
20. Elastic Grid Scalability on EC2
• New EC2 Instance
App Agent EC2 Instance App Monitor EC2 Instance
EC2
App Service Policy Handler
80% allocate
Memory
Observer
• Allocate an Application Service
• Create an EC2 Policy Handler
which registers for Memory
utilization notifications
• SLA has upper limit set to 80%
21. Elastic Grid Scalability on EC2
• New EC2 Instance
App Agent EC2 Instance App Monitor AMI
SLA
App Service Policy Handler increment
80%
Memory
Observer App Agent EC2 Instance
notify
App Service SLA
Policy Handler
Memory
Observer
22. Elastic Grid Benefits
So what EG does for the app?
• Ease development and deployment of Java
applications using Amazon services
• Provides automated management, fault detection
and scalability for the application
• To come soon: Cloud Bursting!
Why EG should be used?
• Ease deployment and management of your Java
applications
• The same app can work on the LAN or on the Cloud
19
23. Elastic Grid Benefits - Illustrated
EG uses a specific DSL meaning it’s easy to write the
deployment descriptor and deploy a J2EE app on EC2
What EG does for you in that case?
• Download from S3 a regular Tomcat distribution
• Download your Webapp
• Provision Tomcat as an external service being
monitored (if Tomcat dies, it’s (re-)provisioned!
20
25. Demonstration – A real world use case
French TV channel in need of video conversion for
streaming of short videos on the Web
• for now on...
• VOD will come really soon
• ... and CatchUp TV is close too, I suppose!
Video conversion and streaming
• done by a 3rd party,
• but there are streaming issues and some conversion glitches
As of the beginning of April ‘08,
• more than 1.1K videos...
• ... for about 40GB of MPEG-4 data!
22
26. Demonstration – A real world use case
Pricing:
• 7!/GB for streaming,
• 300!/month for video conversion
• This solution won’t day ...
scale:
• about 30 videos per
• ... made of 1.5GB of MPEG-4 ...
• ... to process to 6 different flavors (resize, extract, etc.)
• being converted on 1 machine!
23
27. Demonstration – A real world use case
Storage should be cheap
• MPEG-4 videos and FLV videos should be stored on Amazon
S3
• Streaming should beto increasereliable bps and the QoS
fast and
• cheap CDN in order both the
• being seed from our FLV videos on Amazon S3
Flexibility of deployments for video conversion
• should be able to work both on a LAN
• ... and EC2 infrastructure!
• Flexibility ofto wait for hours... video conversion
deployments for
• don’t want
24
28. Demonstration Architecture
SQS
send conversion
requests polls
Video
Tomcat Web App Converter
reads writes
S3 S3
(source) (dest)
29. Demonstration Iterations
• Approach 1 - Scalability on the LAN
• LAN based approach using a single computer
• Using automated SLA management
• System scales based on observed thresholds
• Approach 2 - Scalability on the Cloud
• EC2 based deployment, using EG AMIs
• Dynamic deployment of application to EC2 from S3
• Using automated SLA management
• System scales application instances (as opposed to EC2
instances) based on observed thresholds
30. Demonstration – LAN deployment
Local/network file system for both the MPEG-4 videos and
the converted videos (FLV).
Distribution of video conversion requests:
• done by our “smart proxy” sending Amazon SQS messages
• .. with the name of the video to convert
• Video conversion done on to the MPEG-4 videos!
machines on the LAN
• those machines needs access
Use of a dynamic service (with the help of the EG
framework)
• driving the mencoder OpenSource tool
• each Video Converter polls the SQS queue for requests
27
32. Demonstration – Cloud deployment
Same as before, but this time, the cluster is hosted on
Amazon EC2!
The videos were previously uploaded on S3!
Each service running on Amazon EC2:
• downloads the S3 video from a “bucket”,
• convert it to the many FLV flavors,
• and uploads the encoded videos to another “bucket”
29
33. Demonstration – 2nd approach - Results
Slower on a per instance
basis, but can scale to
tens, or hundreds of
instances in order to
run this in a timely fashion!
Number of Amazon EC2 instances
1 2 4 6
35. Summary
• Elastic Grid extends EC2, enabling users to manage &
dynamically scale application service instances and
EC2 instances based on declarable SLAs
• Cloud decides allocation of services
• QoS approach provides feedback mechanisms based on SLAs
• Today: Human decides/admins each machine
• Provisioning/changing services is simple
• Dynamic reconfigurable systems
• Make it live through the network
• Availability
• EG EC2 AMI is available (easy to find with the IntelliJ plugin :))
36. Elastic Grid and EC2
How Can Amazon EC2 Benefit from the Elastic Grid
Solution?
info@elastic-grid.com