DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant,...
Transcript of DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant,...
![Page 1: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/1.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
DevOpsandAgileMethodology–LessonsLearned
SusanDuncan-@SusanDuncanOrSeniorPrincipalProductManagerOracleCloudDevelopmentToolsJune,2019
Confidential–OracleInternal/Restricted/HighlyRestricted 1
![Page 2: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/2.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirection.Itisintendedforinformationpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andtimingofanyfeaturesorfunctionalitydescribedforOracle’sproductsremainsatthesolediscretionofOracle.
Confidential–OracleInternal/Restricted/HighlyRestricted
![Page 3: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/3.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted
TheCloudChangedEverything
• ReleaseFrequency• QualityofSoftware• SpeedofFixingIssues• DevelopmentTechnologies• DevelopmentProcess
![Page 4: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/4.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 4
AgileMethodologyatOracle
• Shortdeliverycycles• Deliveryofincrementalsolutions• Focusonhighestprioritytasks• Adaptconstantly
4
![Page 5: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/5.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 5
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
DevOps–EnablerforAgile
• DevOpsisaculture,movementorpracticethatemphasizesthecollaborationandcommunicationofbothsoftwaredevelopersandotherinformation-technology(IT)professionalswhileautomatingtheprocessofsoftwaredeliveryandinfrastructurechanges.Itaimsatestablishingacultureandenvironmentwherebuilding,testing,andreleasingsoftware,canhappenrapidly,frequently,andmorereliably.– Wikipedia
5
![Page 6: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/6.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
Howwedoit
Confidential–OracleInternal/Restricted/HighlyRestricted 6
![Page 7: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/7.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 7
OracleDevelopmentTeamsOverview
~280DevelopmentOrganisations
Sprints
OracleDeveloperCloudService
7
~23,250Users
~6250Projects
~18000GitRepositories
![Page 8: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/8.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 8
• Code/CIManagement– VersionManagement–Git– BuildAutomation
• Ant,Maven,Gradle,npm,Grunt,Bower,Gulp,SQLcl,Shell
– TestAutomation• Selenium,JUnit,Findbugs,Sonar,utPLSQL,others
– Deployment&ProvisioningAutomation• Docker,K8S,Terraform,PSM,OCICLI
– ContinuousIntegrationEnginewithPipelines
• Team/AgileManagement– IssuesTracking– AgileProcessManagement– PeerCodeReview– Wiki– Activitystream
OracleDeveloperCloudService–What’sInside
![Page 9: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/9.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 9
~200ProjectMembers
1000sLOCs
2WeekSprints
OracleDeveloperCloudService
OneTeamOverview
![Page 10: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/10.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 10
SourceManagement
40GitRepositories
ComponentPerRepositoryTask&Issue
Tracker
10
OneProject–DeveloperCloudServiceTeam
![Page 11: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/11.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 11
TaskWork• ~200commitsaweek
Master
Newfeature/bugfixes
CompletecodeMergerequest
totarget
Codereview
Iterate,fix&review
Codeapproved Automatebuild
11
![Page 12: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/12.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 12
PreparingforRelease
Master
ReleaseBranch
CriticalBugFix Automatebuild
Release
12
![Page 13: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/13.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 13
CodeManagementTips
• It’soktohavemorethanonegitrepository• Leveragegitflowprocess–provideagility• UnitTests,unittests,unittests• Automatecodereviewprocess• Defaultcodereviewerperarea• Branchmainforarelease– Lockbranchtorequireapprovalforshowstoppersonly
• Databasescriptsarepartofyourcodebase
13
![Page 14: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/14.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 14
• Commit/pushbuilds– ~50buildsaday
• +2timesaday– Allgitrepositories– DeploytodevVM– Automatedtests– QAtests
• Masterbranchedevery2weeks– Allgitrepositories– DeploytostageVM– Automatedtests– ManualQA– Candidateforproductiondeploy
– ~Candidateforcustomers
BuildProcess
Development Production
14
![Page 15: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/15.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 15
BuildTips
• Automatenotificationfrombuilds(prevent“Ididn’tknowitbroke”)– Email,Slack,PagerDuty,etc
• Requireatestscriptinabuildfornewcapabilities• Regularbuildsleadtoregulartestingleadtoearlyissuedetection• Thereisnosuchthingasbuildsoverload– Buildexecutorsdon’tneedarest
• Buildsformonitoringproductionenvironmentsruntime
15
![Page 16: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/16.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 16
AdditionalLessonsLearned
• IntegratedAgile+DevOpsiskey• Cloudbasedenvironmentissomuchsimpler• Teamcollaboration–everyoneisacommittedowneroftheproduct
![Page 17: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/17.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
DemoADayInTheLifeOfADevelopmentTeam
Confidential–OracleInternal/Restricted/HighlyRestricted 17
![Page 18: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/18.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 18
SummaryofCombinedToolBenefits
18
• Fulltraceability–issue->codechange->build->deploy• Fasterfeedbackoncodecommits• Improvedteamcollaboration• OnestopshopforAgile+DevOps• Accessibilityofprojectartifacts• Easyprovisioningandscaling• IntegratedAgile+DevOpsiskey• Cloudbasedenvironmentissomuchsimpler• Teamcollaborationiskey–everyoneisacommittedowneroftheproduct
![Page 19: DevOps and Agile Methodology – Lessons Learned · 2019-06-24 · – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium,](https://reader033.fdocuments.us/reader033/viewer/2022060515/5f8bc57608e4e02b2c111044/html5/thumbnails/19.jpg)
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
Questions?
Confidential–OracleInternal/Restricted/HighlyRestricted 19