46
Requirements Gathering for a Successful Rugged DevOps Implementation Hasan Yasar | Technical Manager | Software Engineering Institute - CMU

Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Embed Size (px)

Citation preview

Page 1: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Requirements Gathering for a Successful Rugged DevOps Implementation

HasanYasar|TechnicalManager|SoftwareEngineeringInstitute- CMU

Page 2: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Getmyslidesimmediately

[email protected]

Page 3: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Copyright2017CarnegieMellonUniversity

ThismaterialisbaseduponworkfundedandsupportedbytheDepartmentofDefenseunderContractNo.FA8721-05-C-0003withCarnegieMellonUniversityfortheoperationoftheSoftwareEngineeringInstitute,afederallyfundedresearchanddevelopmentcenter.

Anyopinions,findingsandconclusionsorrecommendationsexpressedinthismaterialarethoseoftheauthor(s)anddonotnecessarilyreflecttheviewsoftheUnitedStatesDepartmentofDefense.

NOWARRANTY.THISCARNEGIEMELLONUNIVERSITYANDSOFTWAREENGINEERINGINSTITUTEMATERIALISFURNISHEDONAN“AS-IS”BASIS.CARNEGIEMELLONUNIVERSITYMAKESNOWARRANTIESOFANYKIND,EITHEREXPRESSEDORIMPLIED,ASTOANYMATTERINCLUDING,BUTNOTLIMITEDTO,WARRANTYOFFITNESSFORPURPOSEORMERCHANTABILITY,EXCLUSIVITY,ORRESULTSOBTAINEDFROMUSEOFTHEMATERIAL.CARNEGIEMELLONUNIVERSITYDOESNOTMAKEANYWARRANTYOFANYKINDWITHRESPECTTOFREEDOMFROMPATENT,TRADEMARK,ORCOPYRIGHTINFRINGEMENT.

[DistributionStatementA]Thismaterialhasbeenapprovedforpublicreleaseandunlimiteddistribution.PleaseseeCopyrightnoticefornon-USGovernmentuseanddistribution.

Thismaterialmaybereproducedinitsentirety,withoutmodification,andfreelydistributedinwrittenorelectronicformwithoutrequestingformalpermission.Permissionisrequiredforanyotheruse.RequestsforpermissionshouldbedirectedtotheSoftwareEngineeringInstituteatpermission@sei.cmu.edu .

CarnegieMellon® and CERT® areregisteredmarksofCarnegieMellonUniversity.

DM-0004478

Page 4: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

TopicsBackgroundCommonPitfallsCurrentStateAssessmentRequirementsAnalysisandevaluation

People,Process,PlatformAutomatedIntegratedDevelopmentPipeline

Page 5: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Background

• TheSoftwareEngineeringInstitute(SEI)isaFederallyFundedResearchandDevelopmentCenter(FFRDC)

• Researchandpracticeinsoftwaredevelopment,acquisition,andmaintenancepractices

• AssistednumerousgovernmentorganizationsinmodernizingtheirsoftwaredevelopmentpracticesinthespiritofDevOpsprinciples.

• Applicationsecurityistheprinciplequalityattributeofthesoftwaretheyproduce.

Page 6: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

CommonquestionHowcanIimplementedRuggedDevOpsprocessandplatforminmyteam/directorate/project/organization/unit… ?

Howtoassessthecurrentstate?Wherearetheproductivitybottlenecks?Whomtotrainonwhat?Whatandhowtomeasure?Howtomonitor?

Page 7: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

TheRuggedManifestoIamruggedand,moreimportantly,mycodeisrugged.

Irecognizethatsoftware hasbecomeafoundationofourmodernworld.

Irecognizetheawesomeresponsibility thatcomeswiththisfoundationalrole.IrecognizethatmycodewillbeusedinwaysIcannotanticipate,inwaysitwasnotdesigned,andforlonger

thanitwaseverintended.

Irecognizethatmycodewillbeattackedbytalentedandpersistentadversaries whothreaten ourphysical,economicandnationalsecurity.

Irecognizethesethings– andIchoosetoberugged.

IamruggedbecauseIrefusetobeasourceofvulnerabilityorweakness.IamruggedbecauseIassuremycodewillsupportitsmission.

Iamruggedbecausemycodecanfacethesechallengesandpersistinspiteofthem.

Iamrugged,notbecauseitiseasy,butbecauseitisnecessary andIamupforthechallenge.

Page 8: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

TopicsBackgroundCommonPitfallsCurrentStateAssessmentRequirementsAnalysisandevaluation

People,Process,PlatformAutomatedIntegratedDevelopmentPipeline

Page 9: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

CommonPitfalls

HELP!

Page 10: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Whatwentwrong?

• DevOpsis– AFAD– Onlyabouttooling– AProduct– OnlyaboutDevandOps– Sameforallorgs– Onlycontinuesintegration/deployment– Neworganizationalunit

Page 11: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

TopicsBackgroundCommonPitfallsCurrentStateAssessmentRequirementsAnalysisandevaluation

People,Process,PlatformAutomatedIntegratedDevelopmentPipeline

Page 12: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

CurrentStateAssessment

• InterviewwithfunctionalleadsfromkeyareasrelatedtoApplicationDevelopment.

• Reviewof:– Validationofstatements(e.g.,throughobservations

oftheworkenvironmentorshadowing)– Demonstrationsofanysoftwaretoolsusedfor

automationofsoftwaredevelopmentanddeployment

– Culturalperspectiverelatedto developmentevolutionandSecurityteam

– Legal,RiskManagementandallstakeholders

Page 13: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

AssessmentPlan

1. Agreeondefinitions(DevOps,DevSecOps)andprocess2. Identifystakeholders3. Performinterviewoneachteam4. Identifyandanalyzetechnicaltoolstack5. Collectkeymetricsandestablishmeasurement6. Identifygapareasanddeveloparoadmap7. Selectsuitableprojecttoimplement:Build,Learn,evaluate

Page 14: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

AssessmentProcess

• Schedulinganinterviewwithteams• AnonymousSurvey• Analyzeoutcomes• Providefeedbacktotheteams• Brief theexecutiveteam

Page 15: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

IdentifyStakeholders

Page 16: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

DevelopersDeployment

Maintenance

Security

Programming

Infrastructure

Scalability

Networks

FunctionalRequirements

Performance

Testing

UserInterface

TechnicalDocumentation

Updates

CodeReview

ReleaseReview

UserDocumentation

DataPrivacy

IntrusionDetection

UserRequirements

BusinessConstraints

LegalIssues

MarketNeeds

Budgets/Timelines

Monitoring

Incidentresponse

Page 17: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

ITOperations

Deployment

Maintenance

Security

Programming

Infrastructure

Scalability

Networks

FunctionalRequirements

Performance

Testing

UserInterface

TechnicalDocumentation

Updates

CodeReview

ReleaseReview

UserDocumentation

DataPrivacy

IntrusionDetection

UserRequirements

BusinessConstraints

LegalIssues

MarketNeeds

Budgets/Timelines

Monitoring

Incidentresponse

Page 18: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

QualityAssurance

Deployment

Maintenance

Security

Programming

Infrastructure

Scalability

Networks

FunctionalRequirements

Performance

Testing

UserInterface

TechnicalDocumentation

Updates

CodeReview

ReleaseReview

UserDocumentation

DataPrivacy

IntrusionDetection

UserRequirements

BusinessConstraints

LegalIssues

MarketNeeds

Budgets/Timelines

Monitoring

Incidentresponse

Page 19: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

BusinessAnalyst

Deployment

Maintenance

Security

Programming

Infrastructure

Scalability

Networks

FunctionalRequirements

Performance

Testing

UserInterface

TechnicalDocumentation

Updates

CodeReview

ReleaseReview

UserDocumentation

DataPrivacy

IntrusionDetection

UserRequirements

BusinessConstraints

LegalIssues

MarketNeeds

Budgets/Timelines

Monitoring

Incidentresponse

Page 20: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

InformationSecurity

Deployment

Maintenance

Security

Programming

Infrastructure

Scalability

Networks

FunctionalRequirements

Performance

Testing

UserInterface

TechnicalDocumentation

Updates

CodeReview

ReleaseReview

UserDocumentation

DataPrivacy

IntrusionDetection

UserRequirements

BusinessConstraints

LegalIssues

MarketNeeds

Budgets/Timelines

Monitoring

Incidentresponse

Page 21: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Assessment– BusinessAnalyst/PM

• Requirementsdevelopment&management• Acquisition&contractingprocess• Riskmanagementprocess• Compliancesrequirements• ProjectPlanningandtracking

Page 22: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Assessment– Developer

• Developmentmethodology– agile,waterfall,SAFe,EP,Lean,orcowboycoding

• Developmentenvironments• Taskassignment/management/completion• Collaborationwithother(internal/external)teams

Page 23: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Assessment– QualityAssurance

• Softwaretestingmethodologies• Software{quality}assurance• Compliancesverification• Auditrequirements• Feedbacktodevteam

Page 24: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Assessment– Deployment/Release

• Softwareconfigurationmanagement• Integrationprocess• Softwareverificationandvalidationprocess• Softwarereviewandauditprocess• Securing thedeploymentpipeline

Page 25: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Assessment– ITOperations

• Softwareoperationalprocess• Teamengagement• Policyknowledgemanagement• Assetsmanagement• ITgovernance• Servicemanagement• Auditandmonitoring

Page 26: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Assessment– InformationSecurity

• Management andauditingsupplychain• Securitycontrols• Securitypolices(compliancerequirements)• Applicationsecuritytesting• Productsecuritymanagement(PSIRT)• Securityawarenesstrainingandknowledgemanagement

Page 27: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Assessment– TechnologyStack

• Developmentlanguageandtools• ITsolutionstack• Enterprisesupportservices• Legacysystems• Applicationdevelopmentsupporttools• Softwarereuseprocess• Accreditationandapprovalprocess

Page 28: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

IdentifyMetricsandMeasurement

• Softwaremetrics• Qualitymetrics• Checkpointdiagnostic

– Qualitativeprocessbaseline– Quantitativeperformancebaseline– Benchmarkperformancecomparison

• Defineend-goalasbeingRugged:Whatthatmeanstoallstakeholders

Page 29: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Identify SuitableProject

• Select{neworexisting}projectaspilot– Moststakeholdersinvolvement– Minimizerisktobusiness– Abilitylearn/develop/implementsecurityintheprocess– Scalabletotheorganization

Page 30: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

TopicsBackgroundCommonPitfallsCurrentStateAssessmentRequirementsAnalysisandEvaluation

People,Process,PlatformAutomatedIntegratedDevelopmentPipeline

Page 31: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Feedbacktotheteam

• Collaborateallteamleads• Shareidentifiedrequirements• Categorizeandprioritizethe

requirements• Collectivelydevelopan

implementationplan:People+Process+Platform

Page 32: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

People

• Heavycollaborationbetweenallstakeholders– SecureDesign/Architecturedecisions– SecureEnvironment/Networkconfiguration– SecureDeploymentplanning– SecureCodeReview

• Constantlyavailableopencommunicationchannels:– DevandOpSec togetherinallprojectdecisionmeeting– Chat/e-mail/Wikiservicesavailabletoallteam

members

Page 33: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Process• Establishaprocess toenablepeople tosucceed

usingtheplatformtodevelopRuggedapplication

• Suchthat;• Constantcommunicationandvisibletoall• Ensuresthattasksaretestableand

repeatable• Freesuphumanexpertstodochallenging,

creativework• Allowstaskstobeperformedwithminimal

effortorcost• Createsconfidenceintasksuccess,afterpast

repetitions• Fasterdeployment,frequentqualityrelease

Page 34: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Platform

• Wherepeople useprocess tobuildruggedsoftware

• Automatedenvironmentcreationandprovisioning

• Automatedinfrastructuretesting• ParitybetweenDevelopment,QA,Staging,

andProductionenvironments• Sharingandversioningofenvironmental

configurations• Collaborativeenvironmentbetweenall

stakeholders

Page 35: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

RuggedContinued…

• Culture– NOTatool,SDLC,ororgstructure

• Rugged!=Secure- secureisonlyaninstantintime

• Proactivesecurityisbetterthanreactive– Reactivewillfaileventually

Page 36: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Culture

ProcessandPractices

SystemandArchitecture

Automationand

Measurement

RuggedDevOpsonSecurity Culture• Developer and OpSec

collaborate • Developers and OpSec

support releases beyond deployment

• Dev and OpSec have access to stakeholders who understand business and mission goals

Security Automation /Measurement• Automate repetitive and error-

prone tasks (e.g., build, testing, and deployment maintain consistent environments)

• Static and dynamic security analysis automation

• Performance dashboards

Security in Process and Practices• Secure Pipeline streamlining• Continuous-delivery practices (e.g.,

continuous integration; test automation; script-driven, automated deployment; virtualized, self-service environments)

Secure System and Architecture• Architected to support test

automation and continuous-integration goals

• Applications that support changes without release (e.g., late binding)

• Scalable, secure, reliable, etc.

Page 37: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

TopicsBackgroundCommonPitfallsCurrentStateAssessmentRequirementsAnalysisandEvaluation

People,Process,PlatformAutomatedIntegratedDevelopmentPipeline

Page 38: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

ContinuousIntegration(CI)Model

Page 39: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Integrationandcommunication,evenamongtools,isthekey!

Page 40: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar
Page 41: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Humanactions/inputstothesoftwaredevelopmentprocess

Page 42: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Actionsperformedbyautonomoussystems

Page 43: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

TaketheDevSecOps Surveybit.ly/DevSecOps-2017

Page 44: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

Oursponsorsspeakyourlanguage…DevOps.

Page 45: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

MoreonSEIDevOpsBloghttps://insights.sei.cmu.edu/devops

Page 46: Requirements Gathering for a Successful Rugged DevOps Implementation - Hasan Yasar

ThankYou!

HasanYasarTechnicalManager,[email protected]@securelifecycle

WebResources(CERT/SEI)

http://www.cert.org/

http://www.sei.cmu.edu/