SQL in the City Summit
SQL in the CitySummit
Summit
Building Quality in your Continuous Delivery Process
Agenda
BioDevOps and Continuous DeliveryDBA (and organizational) concernsAdding quality
Steve JonesEvangelist, Redgate Software
Editor, SQLServerCentral
28 years SQL Server data experienceDBA, developer, manager, writer, speaker in a variety of companies and industries
Founder, SQLServerCentralCurrently the editor in chief, with the goal of helping you learn to be a better data professional every day
11 year Microsoft Data Platform MVPI have been honored to be recognized by Microsoft for the as a Data Platform MVP working with SQL Server
@way0utwest/in/way0utwest [email protected]
What is DevOps?
Velocity ‘09 – 10+ Deploys Per Day: Dev and Ops Cooperation at FlickrAn amalgamation of principles describing a better software processGrew out of the Agile movementIs not Agile (or Scrum or Lean or Kanban)Uses The Three Ways
Systems ThinkingAmplify Feedback LoopsA Culture of Learning and Experimentation
What is DevOps?
Velocity ‘09 – 10+ Deploys Per Day: Dev and Ops Cooperation at FlickrAn amalgamation of principles describing a better software processGrew out of the Agile movementIs not Agile (or Scrum or Lean or Kanban)Uses The Three Ways
Systems ThinkingAmplify Feedback LoopsA Culture of Learning and Experimentation
Continuous Stuff
DevOps often includes continuousIntegrationDeliveryDeployment
Continuous Delivery is getting changes to customers as soon as possible
Still manual reviewStill approvalsStill human involvement
DBA Concerns with DevOps
Poor modeling and designLots of technical debt we can't removePoor query performance Breaking other applications
Organizational Concerns with DevOps
Get more doneDeliver more featuresLess DevelopersFix broken things immediately
Speed v Quality
Speed Quality
Speed and QualitySp
eed
Quality
Summit
We Build in QualityUse Feedback
Avoid Unnecessary WorkLearn what works and what doesn't
Use StandardsConsistency for developersLess Learning Time
Evolve the ProcessDevelop patterns for problem domainsLearn anti-patterns
Use AutomationPick one thing and improve itWork through bottlenecks
Use Standards
Choose standards forNamingStyleCoding practicesDocumentation
Static Code Analysis can catch problemsEnable relevant rulesRemove irrelevant rulesRun this often
Use Version Control
Use Version Control
Use Tests
Test early and oftenMake testing a part of development, not a projectSlowly add testsValidate standardsEnsure specifications metDocument your intentions
Validate with Continuous Integration
Evaluation of code from your VCSEnsures all changes are capturedSpecific versions checked
Independent SystemNo machine dependenciesEnsures repeatable build/release
Consistent ProcessEnsures all steps are completedAvoids human tendencies to skip items
Validate with Continuous Integration
Automated Releases
Automation ensures releases are repeatable and reliableWe can release more often with confidenceReleasing more often means
Release smaller changesLower risk of issuesWe learn to toggle/flag items
Monitoring and Learning
We need feedback on our workIs it being used?Does it perform well?
Gather metrics and measurementsFocus on outcomes not outputsSlowly add new itemsDon't forget to measure the people and the software
Use feedback to drive learningPatternsAnti-patterns
Summary
Understand and apply the DevOps principles to the dbThis is a journeyTools and technology can helpA DevOps culture is criticalTake baby steps