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,...
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
DevOpsandAgileMethodology–LessonsLearned
SusanDuncan-@SusanDuncanOrSeniorPrincipalProductManagerOracleCloudDevelopmentToolsJune,2019
Confidential–OracleInternal/Restricted/HighlyRestricted 1
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirection.Itisintendedforinformationpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andtimingofanyfeaturesorfunctionalitydescribedforOracle’sproductsremainsatthesolediscretionofOracle.
Confidential–OracleInternal/Restricted/HighlyRestricted
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted
TheCloudChangedEverything
• ReleaseFrequency• QualityofSoftware• SpeedofFixingIssues• DevelopmentTechnologies• DevelopmentProcess
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 4
AgileMethodologyatOracle
• Shortdeliverycycles• Deliveryofincrementalsolutions• Focusonhighestprioritytasks• Adaptconstantly
4
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
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
Howwedoit
Confidential–OracleInternal/Restricted/HighlyRestricted 6
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 7
OracleDevelopmentTeamsOverview
~280DevelopmentOrganisations
Sprints
OracleDeveloperCloudService
7
~23,250Users
~6250Projects
~18000GitRepositories
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
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 9
~200ProjectMembers
1000sLOCs
2WeekSprints
OracleDeveloperCloudService
OneTeamOverview
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 10
SourceManagement
40GitRepositories
ComponentPerRepositoryTask&Issue
Tracker
10
OneProject–DeveloperCloudServiceTeam
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 11
TaskWork• ~200commitsaweek
Master
Newfeature/bugfixes
CompletecodeMergerequest
totarget
Codereview
Iterate,fix&review
Codeapproved Automatebuild
11
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 12
PreparingforRelease
Master
ReleaseBranch
CriticalBugFix Automatebuild
Release
12
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 13
CodeManagementTips
• It’soktohavemorethanonegitrepository• Leveragegitflowprocess–provideagility• UnitTests,unittests,unittests• Automatecodereviewprocess• Defaultcodereviewerperarea• Branchmainforarelease– Lockbranchtorequireapprovalforshowstoppersonly
• Databasescriptsarepartofyourcodebase
13
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
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
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted 16
AdditionalLessonsLearned
• IntegratedAgile+DevOpsiskey• Cloudbasedenvironmentissomuchsimpler• Teamcollaboration–everyoneisacommittedowneroftheproduct
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
DemoADayInTheLifeOfADevelopmentTeam
Confidential–OracleInternal/Restricted/HighlyRestricted 17
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
Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|
Questions?
Confidential–OracleInternal/Restricted/HighlyRestricted 19