DevOps and Agile Methodology - Lessons Learned ... DevOps and Agile Methodology - Lessons Learned...

Click here to load reader

  • date post

    28-May-2020
  • Category

    Documents

  • view

    4
  • download

    0

Embed Size (px)

Transcript of DevOps and Agile Methodology - Lessons Learned ... DevOps and Agile Methodology - Lessons Learned...

  • DevOps and Agile Methodology - Lessons Learned Susan Duncan - @SusanDuncanOr Senior Principal Product Manager Oracle Cloud Development Tools April, 2019

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

    Confidential – Oracle Internal/Restricted/Highly Restricted 2

  • DevOps and Agile Methodology - Lessons Learned Susan Duncan - @SusanDuncanOr Senior Principal Product Manager Oracle Cloud Development Tools April, 2019

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    The Cloud Changed Everything • Release Frequency • Quality of Software •  Speed of Fixing Issues • Development Technologies • Development Process

    4

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Agile Methodology at Oracle •  Short delivery cycles • Delivery of incremental solutions •  Focus on highest priority tasks • Adapt constantly

    5

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Plan

    Code

    Build

    Test

    Release

    Deploy

    Operate

    Monitor

    DevOps – Enabler for Agile •  DevOps is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably. – Wikipedia

    6

  • How We Do It

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Oracle Development Teams Overview

    ~280 Development Organisations

    Sprints

    Oracle Developer Cloud Service

    8

    ~23,250 Users

    ~6250 Projects

    ~18000 Git Repositories

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    •  Code/CI Management –  Version Management – Git –  Build Automation

    •  Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell –  Test Automation

    •  Selenium, JUnit, Findbugs, Sonar, utPLSQL, others –  Deployment & Provisioning Automation

    •  Docker, K8S, Terraform, PSM, OCICLI

    –  Continuous Integration Engine with Pipelines

    •  Team/Agile Management –  Issues Tracking –  Agile Process Management –  Peer Code Review –  Wiki –  Activity stream

    Oracle Developer Cloud Service – What’s Inside

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    One Team Overview

    ~200 Project Members

    1000s LOCs

    2 Week Sprints

    Oracle Developer Cloud Service

    10

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Source Management

    40 Git Repositories

    Component Per Repository Task & Issue Tracker

    11

    One Project – Developer Cloud Service Team

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Task Work ~200 commits a week

    Master

    New feature/ bug fixes

    Complete code Merge request

    to target

    Code review

    Iterate, fix & review

    Code approved Automate build

    12

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Preparing for Release

    Master

    Release Branch

    Critical Bug Fix Automate build

    Release

    13

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Code Management Tips

    •  It’s ok to have more than one git repository •  Leverage gitflow process – provide agility • Unit Tests, unit tests, unit tests • Automate code review process • Default code reviewer per area • Branch main for a release – Lock branch to require approval for show stoppers only

    • Database scripts are part of your code base

    14

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    • Commit/push builds – ~50 builds a day •  + 2 times a day – All git repositories – Deploy to dev VM – Automated tests – QA tests

    • Master branched every 2 weeks – All git repositories – Deploy to stage VM – Automated tests – Manual QA – Candidate for production deploy

    – ~Candidate for customers

    Build Process

    Development Production

    15

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Build Tips • Automate notification from builds (prevent “I didn’t know it broke”) – Email, Slack, PagerDuty, etc

    • Require a test script in a build for new capabilities • Regular builds lead to regular testing lead to early issue detection •  There is no such thing as builds overload – Build executors don’t need a rest

    • Builds for monitoring production environments runtime

    16

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    • Get email about new/updated task • Check Sprint for open issues • Git branch for feature work • Work on code – IDE of choice or in the cloud

    • Commit and push changes – Commit associated with specific task

    The Developer’s Day

    17

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    • Runs local build on code •  Submit Merge Request – Initiate code review cycle – Reviewers notified

    • Receive review comments • Modify code, automatically starting builds • When approved merge • Close task

    The Developer’s Day

    18

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    •  Track activity stream •  Issue management – assign, track new issues, • Merge requests • Manage sprint – Track reports and progress

    • Promote staging to production – Create release branches (protected) – Manage show-stoppers check-ins

    Development Manager’s Day

    19

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    • Merge triggers a build • Unit tests are executed • Build produces binaries and deploys to Maven repo •  If build fails – developer is notified

    Ops Automation’s Day

    20

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    •  Scheduled build promotes latest successful artifacts to stage area •  Successful deploy notifies QA team • QA verify closed issues •  Selenium UI test run automatically

    Ops Automation’s Day

    21

    ü Define Build Processes ü Monitor runtime environments – Oracle management tools

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Additional Lessons Learned •  Integrated Agile + DevOps is key • Cloud based environment is so much simpler •  Team collaboration is key – everyone is a committed owner of the product

    22

  • Demo – A Day In The Life Of A Development Team

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    Metrics: Developer Cloud Service Team • One Developer Cloud Service Project •  50 git repositories, 1 binary repository •  170 project members, 50 active contributors •  200 commits a week •  50 builds a day •  23K issues •  3K merge requests •  250 wiki pages

    24

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    •  Full traceability – issue->code change->build->deploy •  Faster feedback on code commits •  Improved team collaboration • One stop shop for Agile + DevOps • Accessibility of project artifacts •  Easy provisioning and scaling

    Summary of DevCS Benefits

    25

  • Questions?

    26

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

    oracle.com/oow19LON Get $500 USD of free credits

  • Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted

    Carry on the Conversation Visit our Stand in the Innovation Station to experience our Autonomous SmartCity Demo Attend our Workshops –