Continuous Delivery in the AWS Cloud

4,815 views
4,507 views

Published on

A presentation on Continuous Delivery by Fabio Lessa and Nigel Fernandes at the Amazon Web Services summit in Melbourne and in Sydney

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

No Downloads
Views
Total views
4,815
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
102
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide
  • About TW - global consulting, 10 countries, custom software development. know more? go to booth
  • Bulleted list for the talk. Highlight as we progress
  • They look after scripts sitting in VCS
  • deployment process, environment configurationAOL example of cost of inconsistencyQTP licensing as an antipattern
  • Before you had automation for builds and maybe deployments, now you have code manage the whole lifecycle
  • Second characteristic : Embrace failure
  •  - Multi-tenancy: variability across the whole stack (disk, network, cpu)
  • Point is that developers can’t afford to be ignorant about the env. no more throwing war files over the fence  - Design to make proper use of the services (as)
  • DevOps
  • So what are we left with?Automation of build, test, and deployment processEverything lives in version controlClose collaboration from everyone working on the systemReducing cycle timeAnd this is what we’re here to demonstrate. How Continuous Deilvery works in practice, by showing the workflow of a simple system
  • move away from a model where releases go out monthly or quarterly or whatever. To a model where you are constantly delivering value to production from the beginning of the project.2 beneficial effects of fast, automated feedback - your software is always production ready. you should be able to press a button and release your software to production at any time - and crucially, when you press that button, it should be a decision of the business, we shouldn’t be constrained by thinking you have to wait for the next release window in a month. it should be possible for the business to say they want a feature, it gets built in a week or two and then they can push it into production. and this is a big change, a strategic benefit for the business. if you are the business and you see a market opportunity and can react and get something out in a couple weeks, then you have incredible strategic advantage over your competitors. requires big changes in an organization. so how do we approach this?So what is the first step?
  • Bulleted list for the talk. Highlight as we progress
  • Application Diagram
  • Switch to terminal Review the time of the job. Switch to AWS console. Check the instances. Ssh into the box. Cat the puppet log.
  • Time to CI. Be good to your team. Integrate often. Fail fast.
  • back to the year 2000. non-techies don’t worry this is the only code quiz in my presentation. TW’s most important 4 lines of code – what is it?It says that every 60 seconds check source control for changes and if they exist then build and test
  • Puppet uses a declarative, model-based approach to IT automation.
  • Switch to terminal Review the time of the job. Switch to AWS console. Check the instances. Ssh into the box. Cat the puppet log.
  • Switch to Go. Explain the pipeline.
  • Switch to terminal Review the time of the job. Switch to AWS console. Check the instances. Ssh into the box. Cat the puppet log.
  • Switch to terminal Review the time of the job. Switch to AWS console. Check the instances. Ssh into the box. Cat the puppet log.
  • In summary: visibleops Common characteristics - Server to sys admin ratios greater than 100:1 (automation!) - Collaborative working relationships between functions - Higher investment early in the IT lifecycle - High throughput of effective change
  • to everyone in delivery process: dev, tester, dba, sysadmin, ba, etcfrom: compilation, unit tests, functional tests, integration tests, performance tests, etcfast feedback turns out to be the secret. When you achieve that you start winning.
  • Continuous Delivery in the AWS Cloud

    1. 1. @flessa github.com/flessa
    2. 2. @nigelfds github.com/nigelfds
    3. 3. BIG IDEAS
    4. 4. Real World Tested
    5. 5. What are we talking about?
    6. 6. AgendaIdeas behind this workshop Ideas in practice Continuous integration System integration Production deployment Summary Questions
    7. 7. Infrastructure as code
    8. 8. ApplicationEnvironmentInfrastructure
    9. 9. consistency from development to production accidental necessary >> inconsistencyinconsistency deployment process environment configuration testing tools
    10. 10. Automation
    11. 11. Rebuild from code + data
    12. 12. Disk CPUNetwork Memory
    13. 13. Dev OpsOps Dev
    14. 14. In short.
    15. 15. 1 2 3Infrastructure Automate DevOps as code
    16. 16. continuous delivery small feature chunks timesoftware always production ready releases tied to business needs, not IT constraintsminimize the lead time from idea to live concept to cash
    17. 17. AgendaIdeas behind this workshop Ideas in practice Continuous integration System integration Production deployment Summary Questions
    18. 18. Sample Application for #AWS TweetsSample App
    19. 19. github.com/nigelfds/aws-twitter-feed
    20. 20. WebApp Java/JVM Executable War ~ 30 lines of code Unix ServiceNative Packaging/RPM
    21. 21. Lets see this working
    22. 22. I win with Continuous Integration
    23. 23. while (true) { if (change checked into vcs) then build & test sleep 60}
    24. 24. aws-twitter-feed repositorywhile (true) { if (change checked into vcs) then build & test sleep 60} RPM
    25. 25. Building Useful Servers
    26. 26. ApplicationEnvironmentInfrastructure
    27. 27. Puppet is IT automation software that helps systemadministrators manage infrastructurethroughout its lifecycle, fromprovisioning and configurationto patch management and compliance.
    28. 28. Puppet definition for our GO machine
    29. 29. Puppet definition continued…
    30. 30. Don’t make the Version Control Sad
    31. 31. github.com/nigelfds/configuration- masterPuppet definitionsand AWS scripts
    32. 32. To keep things moving, lets kick it off
    33. 33. S3 Bucket Self Configured Puppet & AWS Build scripts Server Packaged Scripts Cloud Formation APIs Create MachineBehind the scenes Nigel’s Laptop
    34. 34. AWS CloudFormation gives developersand systems administrators an easy way tocreate and manage a collection ofrelated AWS resources.
    35. 35. Once deployed, you can modify and update the AWS resources in acontrolled and predictable way allowing you to versioncontrol your AWS infrastructure in the same wayas you version control your software
    36. 36. Cloud Formation Template…… "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : "c1.medium", "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], "KeyName" : { "Ref" : "KeyName" }, "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]}, "UserData": { "Ref": "BootScript" } } },……
    37. 37. Creating the stack with CloudFormationName of the stack Create the stack Self configuration scripts (Invokes Puppet)
    38. 38. Lets see how we’re doing
    39. 39. Repeatable & Continuous
    40. 40. Puppet definition for our GO machine Server Monitoring
    41. 41. In Short
    42. 42. Packaging for the target ( Using PMs)Continuous Integration (Using )Declarative Env. Conf. (Using )Infrastructure as Code (Using )
    43. 43. AgendaIdeas behind this workshop Ideas in practice Continuous integrationSystem integration Production deployment Summary Questions
    44. 44. Everything works by itself
    45. 45. But they need to work together
    46. 46. Bring in the conductor =
    47. 47. Complex !
    48. 48. How does this look in
    49. 49. Self Configured GO Server App Server Cloud Formation APIsBehind the scenes
    50. 50. Creating the AMI Create an AMI from the running instace Save a reference to the Image IdDelete the running instance
    51. 51. Lets see this on AWS
    52. 52. Snapshot -> AMIs are awesome
    53. 53. Boot Test QA =Speed Prod Instances
    54. 54. Agenda Ideas behind this workshop Ideas in practice Continuous integration System integrationProduction deployment Summary Questions
    55. 55. To keep things moving, lets kick it off
    56. 56. ELB Remove ZERO DOWNTIME ! ID-1 ID-2 AutoscalingTerminateInstance APP APPID-1ID-2 V2.0 V1.0 V2.0 V1.0 ID-3 ID-1 ID-2 ID-4
    57. 57. Lets see this working
    58. 58. AgendaIdeas behind this workshop Ideas in practice Continuous integration System integration Production deployment Summary Questions
    59. 59. 1 2 3Infrastructure Automate DevOps as code
    60. 60. Thank you and …
    61. 61. “How? By fast, automated of your on the production readiness feedback applications every time there is a change whether code, infrastructure, configuration or database ” Jez Humble Author Continuous Delivery
    62. 62. Ps. We’re hiring ;-)

    ×