View
15
Download
0
Category
Preview:
Citation preview
DevOpsandAgileMethodology-LessonsLearnedSusanDuncan-@SusanDuncanOrSeniorPrincipalProductManagerOracleCloudDevelopmentToolsApril,2019
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementTheprecedingisintendedtooutlineourgeneralproductdirection.Itisintendedforinformationpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andtimingofanyfeaturesorfunctionalitydescribedforOracle’sproductsremainsatthesolediscretionofOracle.
Confidential–OracleInternal/Restricted/HighlyRestricted 2
DevOpsandAgileMethodology-LessonsLearnedSusanDuncan-@SusanDuncanOrSeniorPrincipalProductManagerOracleCloudDevelopmentToolsApril,2019
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
TheCloudChangedEverything• ReleaseFrequency• QualityofSoftware• SpeedofFixingIssues• DevelopmentTechnologies• DevelopmentProcess
4
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
AgileMethodologyatOracle• Shortdeliverycycles• Deliveryofincrementalsolutions• Focusonhighestprioritytasks• Adaptconstantly
5
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
DevOps–EnablerforAgile• DevOpsisaculture,movementorpracticethatemphasizesthecollaborationandcommunicationofbothsoftwaredevelopersandotherinformation-technology(IT)professionalswhileautomatingtheprocessofsoftwaredeliveryandinfrastructurechanges.Itaimsatestablishingacultureandenvironmentwherebuilding,testing,andreleasingsoftware,canhappenrapidly,frequently,andmorereliably.– Wikipedia
6
HowWeDoIt
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
OracleDevelopmentTeamsOverview
~280DevelopmentOrganisations
Sprints
OracleDeveloperCloudService
8
~23,250Users
~6250Projects
~18000GitRepositories
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• 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©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
OneTeamOverview
~200ProjectMembers
1000sLOCs
2WeekSprints
OracleDeveloperCloudService
10
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
SourceManagement
40GitRepositories
ComponentPerRepositoryTask&Issue
Tracker
11
OneProject–DeveloperCloudServiceTeam
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
TaskWork~200commitsaweek
Master
Newfeature/bugfixes
CompletecodeMergerequest
totarget
Codereview
Iterate,fix&review
Codeapproved Automatebuild
12
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
PreparingforRelease
Master
ReleaseBranch
CriticalBugFix Automatebuild
Release
13
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
CodeManagementTips
• It’soktohavemorethanonegitrepository• Leveragegitflowprocess–provideagility• UnitTests,unittests,unittests• Automatecodereviewprocess• Defaultcodereviewerperarea• Branchmainforarelease– Lockbranchtorequireapprovalforshowstoppersonly
• Databasescriptsarepartofyourcodebase
14
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Commit/pushbuilds– ~50buildsaday• +2timesaday– Allgitrepositories– DeploytodevVM– Automatedtests– QAtests
• Masterbranchedevery2weeks– Allgitrepositories– DeploytostageVM– Automatedtests– ManualQA– Candidateforproductiondeploy
– ~Candidateforcustomers
BuildProcess
Development Production
15
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
BuildTips• Automatenotificationfrombuilds(prevent“Ididn’tknowitbroke”)– Email,Slack,PagerDuty,etc
• Requireatestscriptinabuildfornewcapabilities• Regularbuildsleadtoregulartestingleadtoearlyissuedetection• Thereisnosuchthingasbuildsoverload– Buildexecutorsdon’tneedarest
• Buildsformonitoringproductionenvironmentsruntime
16
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Getemailaboutnew/updatedtask• CheckSprintforopenissues• Gitbranchforfeaturework• Workoncode– IDEofchoiceorinthecloud
• Commitandpushchanges– Commitassociatedwithspecifictask
TheDeveloper’sDay
17
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Runslocalbuildoncode• SubmitMergeRequest– Initiatecodereviewcycle– Reviewersnotified
• Receivereviewcomments• Modifycode,automaticallystartingbuilds• Whenapprovedmerge• Closetask
TheDeveloper’sDay
18
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Trackactivitystream• Issuemanagement–assign,tracknewissues,• Mergerequests• Managesprint– Trackreportsandprogress
• Promotestagingtoproduction– Createreleasebranches(protected)– Manageshow-stopperscheck-ins
DevelopmentManager’sDay
19
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Mergetriggersabuild• Unittestsareexecuted• BuildproducesbinariesanddeploystoMavenrepo• Ifbuildfails–developerisnotified
OpsAutomation’sDay
20
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Scheduledbuildpromoteslatestsuccessfulartifactstostagearea• SuccessfuldeploynotifiesQAteam• QAverifyclosedissues• SeleniumUItestrunautomatically
OpsAutomation’sDay
21
ü DefineBuildProcessesü Monitorruntimeenvironments– Oraclemanagementtools
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
AdditionalLessonsLearned• IntegratedAgile+DevOpsiskey• Cloudbasedenvironmentissomuchsimpler• Teamcollaborationiskey–everyoneisacommittedowneroftheproduct
22
Demo–ADayInTheLifeOfADevelopmentTeam
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
Metrics:DeveloperCloudServiceTeam• OneDeveloperCloudServiceProject• 50gitrepositories,1binaryrepository• 170projectmembers,50activecontributors• 200commitsaweek• 50buildsaday• 23Kissues• 3Kmergerequests• 250wikipages
24
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
• Fulltraceability–issue->codechange->build->deploy• Fasterfeedbackoncodecommits• Improvedteamcollaboration• OnestopshopforAgile+DevOps• Accessibilityofprojectartifacts• Easyprovisioningandscaling
SummaryofDevCSBenefits
25
Questions?
26
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|
oracle.com/oow19LON Get$500USDoffreecredits
Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.| Confidential–OracleInternal/Restricted/HighlyRestricted
CarryontheConversationVisitourStandintheInnovationStationtoexperienceourAutonomousSmartCityDemoAttendourWorkshops–chattousonthestandtosignuporlearnmoreOracleAutonomousDataWarehouse–April30thOracleAnalyticsCloud–May1stOracleMachineLearning–May2ndCloudTrials–chattousonthestandtosignuporlearnmore
https://cloud.oracle.com/tryit
Recommended