DEVOPS PRACTICES FOR THE
DATABASE TEAM
Pramod Sadalage
@pramodsadalage
WHAT IS DEVOPS?
“a cross-disciplinary community of practice dedicated
to the study of building, evolving and operating rapidlychanging resilient systems at scale.”
-Jez Humble
Co-Author: Continuous Delivery
2
WHAT IS DEVOPS?
DevOps is the practice of operations and development
DevOps isparticipating
improved collaboration
between
Software
engineers
together in
the entire
service
lifecycle,
from design
through
the development
process
Development,
QA,
IT Operations
and services.
to production support.
3
WHY DEVOPS
n/w, DBA,
SysAdmin
Code behavior,
bugs, UI
Design
Development
Testing
Integration
QA
Release and
Operation
Dev
Team
QA
IT Operations
4
MOTIVATIONS FOR DEVOPS
Failure due to
differences in
dev and ops
environments
Dev
Time to market
pressure for
more frequent
releases
Manual process
for release, lack
of repeatability/
speed
Major releases
take days, many
people managed
by spreadsheet
Let me order
breakfast
Who did
it last?
Dave
Who wants
dinner?
Prod
Dave’s
not here
now
5
THE CONFLICTING REQUIREMENTS
Developers:
Create/Evolve features, fix bugs and make software better
Its not my code, its your machine
Measured how fast they can respond to changes
Ops:
Run software on production boxes, owns availability and
performance, interrupt driven
Its not my machine, its your code
Is measured on how stable the system is
6
THE CONFLICTING REQUIREMENTS
Developers:
Create/Evolve features, fix bugs and make software better
Respond to Changes
Its not my code, its your machine
Measured how fast they can respond to changes
Ops:
Run software on production boxes, owns availability and
performance, interrupt driven
Keep the system stable
Its not my machine, its your code
Is measured on how stable the system is
7
In Reality, everyones job is to
enable business to evolve to
changing market needs
8
But..Change causes outage in
most situations.
Discourage change? Allow
changes as often as needed?
9
DevOps values
!
People over Process over Tool
Over all service over Working software
10
DevOps principals (CAMS)
!
C: Culture of DevOps, without which automation fails
A: Automation, infrastructure, database deployment etc
M: Measure, things that are not measured cannot be
improved
S: Sharing of ideas, problems, success improves
everyone
11
DevOps Practices
!
Continuous Integration
Continuous Deployment
Virtualization
Infrastructure as code
12
DevOps Tools
!
Continuous Integration (Jenkins, Travis, Teamcity)
Virtualization (AWS, Openstack, vagrant, docker)
Infrastructure as code (Chef, Puppet, ansible, cfengine)
13
HOW DOES DEVOPS
CHANGE THE
DATABASE TEAM?
DBA’s get involved earlier in the lifecycle
14
Pair the DBA’s with
Developers
15
Put all database
artifacts in version
control
16
Version control database
17
Generate as much boiler
plate code as possible.
18
namespace :db do!
desc 'Generate Grants and synonyms for all tables'!
task grants: :environment do!
sql = 'SELECT table_name tablename FROM user_tables'!
tables = ActiveRecord::Base.connection.exec_query(sql)!
tables.each do |table|!
name = table['tablename']!
File.open("generated/#{name}_grants.sql", 'w') do |gfile|!
gfile.puts "GRANT UPDATE, SELECT, INSERT, DELETE !
! ! ! ! ! ! ! ON #{name} TO #{read_write_role};"!
end!
File.open("generated/#{name}_synonym.sql",'w') do |sfile|!
sfile.puts "CREATE OR REPLACE SYNONYM #{name} FOR BLUE.#{name};"!
end!
end!
puts "Generated grants, synonyms for tables"!
end!
end!
19
Let developers provision
application database
20
Write database
migration during
development time.
22
Use database migration
frameworks
23
MIGRATION FRAMEWORKS
Flyway
Liquibase
DBDeploy
DBMaintain
IBatis migrator
Rails Migrations
!
DBMaestro
RedGate
24
Put database under
continuous integration
26
Database changes applied by DBA Team
Check in application code and
database migration scripts
Local dev
environment
Migration
scripts
Package
Migration
scripts
Migration
scripts
(DBA)
ANT
Maven
Gradle
Rake
Dev
DB
Apply
Migration
scripts
Integration environment
Continuous
Integration Engine
Source
Control
Update
and build
Artifacts
War
Jar
Dev
Database
Integration
Database
PROD
UAT
QA
PROD
UAT
QA
Environment
Apply
migration
scripts
War
Jar
DATABASE DEVELOPMENT WORKFLOW
•Joe creates a new migration (e.g. create a new
table and add FK) pairs with DBA.
•Joe commits the new migration script into
source control system (e.g. GIT, SVN)
•CI server applies new migration to CI database
•Emily updates from source control system and
receives new migration and applies migration
to their local development database
•David(DBA/Dev/SysAdmin) can apply same
migration to QA database
28
DB artifacts in CI
application artifact for
build <<n>>
database artifact for
build <<n>>
Automate database
change deployment
30
Deployment should be easy
ant -propertyfile qa.properties upgrade
ant -propertyfile live.properties upgrade
DEPLOY FREQUENTLY
More frequent deploys reduce risk and stress
on the team
THANK YOU
Pramod Sadalage
sadalage.com
@pramodsadalage
© Copyright 2026 Paperzz