Agile Development in the Cloud - AWS India Summit 2012

1,908 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,908
On SlideShare
0
From Embeds
0
Number of Embeds
265
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

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.
  • Agile Development in the Cloud - AWS India Summit 2012

    1. 1. Agile Development In the Cloud Joe Ziegler Shishir Das zieglerj@amazon.com Continuous DeliveryAWS Technical Evangelist Practice Lead ThoughtWorks
    2. 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. 3. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    4. 4. scope breadth Automated testing Continuous Integration Infrastructure as code Continuous Deliverydepth
    5. 5. scope breadth Automated testing Continuous Integration Infrastructure as code Continuous Deliverydepth
    6. 6. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    7. 7. Agile is Fast Feedback!
    8. 8. types
    9. 9. testing... in the cloud unit integration functional performance
    10. 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. 11. Parallel test execution
    12. 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. 13. hypothesis testing
    14. 14. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    15. 15. introductionwhile(true) { if(change checked into vcs){ build & test sleep 60 }}
    16. 16. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    17. 17. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    18. 18. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    19. 19. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    20. 20. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    21. 21. basic workflowSource: http://www.falafel.com/testcomplete/continuous_integration.aspx
    22. 22. RHL Win Build Server … VCS Linuxworkstation
    23. 23. further readinghttp://martinfowler.com/articles/continuousIntegration.html
    24. 24. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    25. 25. definition“Programmatic provisioning by API”
    26. 26. levels of maturity •Programmatic •Scripted ☝Speed ☝Repeatability ☝Reliability ☟Risk•Manual
    27. 27. infrastructure automation ApplicationEnvironmentsInfrastructure
    28. 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. 29. Instances Cloud formation Template{{Save in Version Control}}
    30. 30. Puppet is IT automation software that helpssystem administrators manage infrastructurethroughout its lifecycle, from provisioning andconfiguration to patch management andcompliance.
    31. 31. class ntp { package { "ntp": ensure => installed } service { "ntp": ensure => running, }}
    32. 32. Continuous 4 Delivery Infrastructure asContinuous Code 3Integration 2Automated Testing 1
    33. 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. 34. continuous delivery @ scale Source: http://code.flickr.com/
    35. 35. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    36. 36. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    37. 37. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    38. 38. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery
    39. 39. conclusionAutomated testing Managed hosting and servicesContinuous Integration Elastic computing and storageInfrastructure as code Pay-as-you-go pricing modelContinuous Delivery

    ×