• Save
Scalable Application Development on AWS
Upcoming SlideShare
Loading in...5
×
 

Scalable Application Development on AWS

on

  • 2,951 views

Presentation from Application Developers Days 3 conference (Moscow, May 2012) about best practices in scalable application development on AWS.

Presentation from Application Developers Days 3 conference (Moscow, May 2012) about best practices in scalable application development on AWS.

Statistics

Views

Total Views
2,951
Views on SlideShare
1,893
Embed Views
1,058

Actions

Likes
3
Downloads
0
Comments
0

5 Embeds 1,058

http://xpinjection.com 660
http://addconf.ru 231
http://www.addconf.ru 163
http://add4.addconf.ru 3
http://us-w1.rockmelt.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Scalable Application Development on AWS Scalable Application Development on AWS Presentation Transcript

    • Scalable ApplicationDevelopment on AWS Mikalai Alimenkou http://xpinjection.com 11.05.2012
    • 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
    • NoFuture!
    • 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
    • • Interesting startup• Completely in Java• Customer wants to use AWS New project arrived
    • AWS structure• Elastic Compute Cloud • Simple Storage Service (S3) • SimpleDB (EC2) • Elastic Block Store (EBS) • DynamoDB• Elastic Map Reduce (EMR) • Import/Export • Relational Database• Auto Scaling • Storage Gateway Service (RDS)• Elastic Load Balancing • ElastiCacheCompute Storage Database• Route 53 • Simple Queue Service (SQS) • CloudWatch• Virtual Private Cloud • Simple Notification Service • Elastic Beanstalk (VPC) (SNS) • CloudFormation• Direct Connect • Simple Email Service (SES) • Identity and Access• CloudFront • Simple Workflow Service Management (IAM) (SWS) • CloudSearchNetworking App Services Deployment
    • Why Java?• Runs everywhere• Full technological stack• Lots of tools for scalability• Many frameworks for cloud development
    • EC2 quick introduction $.08-$2.4 per server hour $.05 - $.12 per GB data transfer
    • Simple boot model AMI Instant-store AMI • Stateless Instance • Cheaper • Better IO • Easier to scale Cloud EBS boot AMI • Stateful • Stop/start support • Quick migration • Faster loading
    • Different API access levelsAWS management console AWS console tools REST API clients Plugins to IDEs and browsers
    • Elasticfox – my superhero!
    • Everything on AWS • Infrastructure • Testing • Staging • Production • Monitoring
    • • 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…
    • Look ma, no hands!
    • What about money?
    • EC2 charging model
    • What I have for such money?TestingServer DBServer Production Server
    • 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
    • EC2 physical distribution
    • • 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
    • Amazon cares aboutyou … and other people
    • Everything is unreliable• Retry policies everywhere• Timeouts for all operations• Automatic recovery
    • EBS quick introduction• Raw data volumes from 1GB to 1TB• Replicated automatically• Snapshots to S3• May be used with different instances
    • EBS architecture
    • EBS fault tolerance
    • EBS cost model• Not so cheap• Additional costs for snapshots in S3
    • 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
    • S3 quick introduction $.055 - $.125 per GB month storage $.05 - $.12 per GB data transfer
    • Load balancing withJMS or AMQP• JMS and AMQP are very scalable and flexible• Costs are less than SQS (Simple Queue Service)• Configurable load balancing
    • Deployment options
    • Self-distributed system• Host manager works via Java AWS API• Centralized deployment• Code distribution to EC2 hosts
    • Reduce coupling to AWS
    • 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
    • Useful books
    • @xpinjection http://xpinjection.commikalai.alimenkou@xpinjection.com