2. Background
• Java Technical Lead/Scrum Master at Zoral
Labs
• 7+ years in software development
• 5+ years of working by Agile
methodologies
• Expert in Agile engineering practices
• Founder and coach at XP Injection
• Organizer of Selenium Camp, JEEConf, XP
Days Ukraine, IT Brunch conferences
4. Cloud computing
• Scale capacity on demand
• Turn fixed costs into variable costs
• Clean APIs and conceptual models
• Always available
• Cost-effective
• Reduced time to market
• Focus on product
12. Everything on AWS
• Infrastructure
• Testing
• Staging
• Production
• Monitoring
13. • 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…
18. What I have for such money?
Testing
Server
DB
Server
Production
Server
19. 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
21. • 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
27. EBS cost model
• Not so cheap
• Additional costs for snapshots in S3
28. 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
29. S3 quick introduction
$.055 - $.125
per GB month
storage
$.05 - $.12 per
GB data transfer
30. Load balancing with
JMS or AMQP
• JMS and AMQP are very scalable and flexible
• Costs are less than SQS (Simple Queue
Service)
• Configurable load balancing
34. 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