Scalable Java Application Development on AWS

  • 6,458 views
Uploaded on

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

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,458
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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