Your SlideShare is downloading. ×
Agile Development in the Cloud - AWS India Summit 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Agile Development in the Cloud - AWS India Summit 2012

1,287
views

Published on

AWS and Thoughtworks co-presenting Agile Development in the Cloud for the AWS Summit in India Startup Track.

AWS and Thoughtworks co-presenting Agile Development in the Cloud for the AWS Summit in India Startup Track.

Published in: Technology

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

No Downloads
Views
Total Views
1,287
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
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
  • Welcome everyone. Thank you for your attendance today as Joe and I get to talk about Agile in the Cloud. And Joe, I think we should congratulate ourselves with the fact that we’ve managed to use two of the most nebulous and ill-defined terms in computing together in the title. I think we could talk about pretty much anything to do with IT and be able to defend it as being somehow related to Agile and/or the Cloud... it’s a shame we didn’t get a chance to work Big Data into the title as well :-)
  • Automated testing is one of the cornerstone practices of all Agile engineering teams. Many of the more advanced practices become difficult if not impossible to perform adequately without having the safety net of a fast running automated test suite.Agile teams crave fast feedback on the work they are doing and want to have confidence that they can improve existing code without fear of introducing regression problems into the codebase: the appropriate use of automated testing addresses all of these issues. And modern development languages and platforms have mature automated testing tools and frameworks available to them. [so?!?]However, many teams still take a manual approach to the bulk of their testing, even when computers are far better at this repetitive, repeatable, detail-oriented type of work. There will always be a place for manual testing for most pieces of software, but this type of work should be concentrated on those aspects of applications which are truly difficult to test. Invest in automated testing to free up your precious testing people to focus on just testing those crucially difficult-to-automate areas.
  • And there are many different types of testing which can be freely automated. In fact, some types of testing can only be done in an automated fashion.This diagram is from noted Agile tester, Brian Marick, and is breaks common types of testing that Agile teams do into 4 quadrants... I like this diagram because it does a good job of identifying lots of different types of testing that teams do, but also gives an opinion on what types of tests are best suited to automation or manual testing.
  • Amazon provides instances on demand, so for parallel execution of tests, we can bring up instances , run tests and shut down instances when done.
  • Have CI on the cloud gives us an ability to add / remove build agents with different configuration. It comes handy when we have to run functional test on different OS.
  • Transcript

    • 1. Agile Development In the Cloud Joe Ziegler Shishir Das zieglerj@amazon.com Continuous DeliveryAWS Technical Evangelist Practice Lead ThoughtWorks
    • 2. definitionsAgile characterised by... Cloud characterised by...  Rapid response to change Managed hosting and services  High technical discipline Elastic computing and storage  Ruthless automation Pay-as-you-go pricing model
    • 3. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    • 4. scope breadth Automated testing Continuous Integration Infrastructure as code Continuous Deliverydepth
    • 5. scope breadth Automated testing Continuous Integration Infrastructure as code Continuous Deliverydepth
    • 6. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    • 7. Agile is Fast Feedback!
    • 8. types
    • 9. testing... in the cloud unit integration functional performance
    • 10. Parallel test execution … EC2 EC2 EC2def run_tests_in_parallel create :n ec2 instances run test across :n ec2 instances destroy :n ec2 instancesend
    • 11. Parallel test execution
    • 12. Bees with Machine Guns #1 Spawns EC2 Instance Contents Instances My App #3 Monitors EC2 Instance Contents Amazon CloudWatch github.com/newsapps/beeswithmachineguns
    • 13. hypothesis testing
    • 14. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    • 15. introductionwhile(true) { if(change checked into vcs){ build & test sleep 60 }}
    • 16. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    • 17. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    • 18. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    • 19. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    • 20. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    • 21. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    • 22. RHL Win Build Server … VCS Linuxworkstation
    • 23. further readinghttp://martinfowler.com/articles/continuousIntegration.html
    • 24. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    • 25. definition“Programmatic provisioning by API”
    • 26. levels of maturity •Programmatic •Scripted ☝Speed ☝Repeatability ☝Reliability ☟Risk•Manual
    • 27. infrastructure automation ApplicationEnvironmentsInfrastructure
    • 28. AWS CloudFormation gives developers and systemsadministrators an easy way to create and manage acollection of related AWS resources, provisioning andupdating them in an orderly and predictable fashion.
    • 29. Instances Cloud formation Template{{Save in Version Control}}
    • 30. Puppet is IT automation software that helpssystem administrators manage infrastructurethroughout its lifecycle, from provisioning andconfiguration to patch management andcompliance.
    • 31. class ntp { package { "ntp": ensure => installed } service { "ntp": ensure => running, }}
    • 32. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    • 33. production – ready software Fast, automated feedback on the production readiness of your applications every time there is a change - to code, infrastructure, or configuration
    • 34. continuous delivery @ scale Source: http://code.flickr.com/
    • 35. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    • 36. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    • 37. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    • 38. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    • 39. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery