Scalable Java Application Development on AWS<br />Mikalai Alimenkou<br />http://xpinjection.com<br />21.05.2011<br />
Background<br />Java Technical Lead/Scrum Master at Zoral Labs<br />6+ years in software development<br />4+ years of work...
No<br />Future!<br />
Cloud Computing<br />Scalecapacityondemand<br />Turnfixedcostsintovariablecosts<br />CleanAPIsandconceptualmodels<br />Alw...
Interesting startup<br />Completely in Java<br />Customer wants to use AWS<br />New Project Arrived<br />
AWS Structure<br />
Why Java?<br />Runs everywhere<br />Full technological stack<br />Lots of tools for scalability<br />Many frameworks for c...
EC2 Quick Introduction<br />
Everything on AWS<br />Infrastructure<br />Testing<br />Staging<br />Production<br />Monitoring<br />
Easy and reliable server configuration with AMI<br />No work for system administrator<br />Any number of servers available...
Look Ma, No Hands!<br />
What about money?<br />
EC2 Charging Model<br />
What I Have for Such Money?<br />Testing Server<br />DB Server<br />Production Server<br />
Ways to Save Money<br />Good and responsible team <br />Reuse instances when possible rounding usage time<br />Release in...
EC2 Physical Distribution<br />
Elasticfox – my superhero!<br />
<ul><li>Hourly payment is invisible
Instances are virtual
Same type of machine, but different performance
Instance not immediately available
Images creation require “magical” skills
No multicast messaging</li></li></ul><li>Retry policies everywhere<br />Timeouts for all operations<br />Automatic recover...
EBS Quick Introduction<br />Raw data volumes from 1GB to 1TB<br />Replicated automatically<br />Snapshots to S3<br />May b...
EBS Architecture<br />
EBS Fault Tolerance<br />
EBS Cost Model<br />Not so cheap<br />Additional costs for snapshots in S3<br />
EBS != Hard Drive<br />Slow for time critical tasks<br />Bottleneck for Lucene indexing and DB<br />Use parallel EBS volum...
S3 Quick Introduction<br />
Load Balancing with JMS<br />JMS is very scalable and flexible<br />JMS costs are less than SQS (Simple Queue Service)<br ...
Deployment Options<br />
Upcoming SlideShare
Loading in...5
×

Scalable Java Application Development on AWS

6,943

Published on

Presentation from JEEConf conference (Kiev, May 2011) about best practices in scalable Java application development on AWS.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,943
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Scalable Java Application Development on AWS

  1. 1. Scalable Java Application Development on AWS<br />Mikalai Alimenkou<br />http://xpinjection.com<br />21.05.2011<br />
  2. 2. Background<br />Java Technical Lead/Scrum Master at Zoral Labs<br />6+ years in software development<br />4+ years of working by Agile methodologies<br />Expert in Agile engineering practices<br />Founder and coachat XP Injection (http://xpinjection.com)<br />Organizer of Selenium Camp and JEEConf conferences <br />
  3. 3. No<br />Future!<br />
  4. 4. Cloud Computing<br />Scalecapacityondemand<br />Turnfixedcostsintovariablecosts<br />CleanAPIsandconceptualmodels<br />Alwaysavailable<br />Cost-effective<br />Reducedtimetomarket<br />Focusonproduct<br />
  5. 5. Interesting startup<br />Completely in Java<br />Customer wants to use AWS<br />New Project Arrived<br />
  6. 6. AWS Structure<br />
  7. 7. Why Java?<br />Runs everywhere<br />Full technological stack<br />Lots of tools for scalability<br />Many frameworks for cloud development<br />
  8. 8. EC2 Quick Introduction<br />
  9. 9. Everything on AWS<br />Infrastructure<br />Testing<br />Staging<br />Production<br />Monitoring<br />
  10. 10. Easy and reliable server configuration with AMI<br />No work for system administrator<br />Any number of servers available<br />No waits for hardware<br />More experimenting and testing<br />Easy security model<br />Happiness…<br />
  11. 11. Look Ma, No Hands!<br />
  12. 12. What about money?<br />
  13. 13. EC2 Charging Model<br />
  14. 14.
  15. 15. What I Have for Such Money?<br />Testing Server<br />DB Server<br />Production Server<br />
  16. 16. Ways to Save Money<br />Good and responsible team <br />Reuse instances when possible rounding usage time<br />Release instances when not more needed<br />Monitor and control running instances<br />Use reserved instances for continuously running jobs<br />
  17. 17. EC2 Physical Distribution<br />
  18. 18. Elasticfox – my superhero!<br />
  19. 19. <ul><li>Hourly payment is invisible
  20. 20. Instances are virtual
  21. 21. Same type of machine, but different performance
  22. 22. Instance not immediately available
  23. 23. Images creation require “magical” skills
  24. 24. No multicast messaging</li></li></ul><li>Retry policies everywhere<br />Timeouts for all operations<br />Automatic recovery<br />Everything is Unreliable<br />
  25. 25. EBS Quick Introduction<br />Raw data volumes from 1GB to 1TB<br />Replicated automatically<br />Snapshots to S3<br />May be used with different instances<br />
  26. 26. EBS Architecture<br />
  27. 27. EBS Fault Tolerance<br />
  28. 28. EBS Cost Model<br />Not so cheap<br />Additional costs for snapshots in S3<br />
  29. 29. EBS != Hard Drive<br />Slow for time critical tasks<br />Bottleneck for Lucene indexing and DB<br />Use parallel EBS volumes<br />Separate data storage between EC2 instances<br />Don’t use RDS<br />Limited to 1TB<br />Virtual RAID<br />Data distribution<br />
  30. 30. S3 Quick Introduction<br />
  31. 31. Load Balancing with JMS<br />JMS is very scalable and flexible<br />JMS costs are less than SQS (Simple Queue Service)<br />Configurable load balancing<br />
  32. 32. Deployment Options<br />
  33. 33. Self-Distributed System<br /><ul><li>Host manager works via Java AWS API
  34. 34. Centralized deployment with
  35. 35. Code distribution to EC2 hosts</li></li></ul><li>Reduce Coupling to AWS<br />
  36. 36. Conclusions<br />AWS is great for startups or research projects<br />AWS increases development speed in times<br />It is easy to create scalable and highly available Java application on AWS<br />Development, testing and production may be done on AWS<br />AWS save development costs<br />AWS support Agile developmernt approaches<br />
  37. 37. Any questions?<br />

×