dbMaestro on Version Control Database Development. A discussion on App development vs. DB development, the gap between them and how to bridge that gap.
2. About the presenter
• Director of Products at DBmaestro
• +20 years experience in enterprise management
• R&D Director at Precise / VERITAS / Symantec
About DBmaestro…
5. Yesterday – Version Control
• Version Control becomes standard de-facto
• Files are Checked-Out & Checked-In to
reflect the change
• All changes are documented
• Ability to tag a version crossing different revisions
• Ability to compare changes across the history
• Know Who did What, When and Where
6. Yesterday – ALM
• Application Lifecycle Management not only:
• Version Control
• Test Management
• Application Lifecycle Management consists of:
• Requirement Management
• Version Control
• Change Management
• Test Management
• Release Management
7. Today – Agile
• Adopted quickly by many organizations
• Allows development teams to present working
products every couple of weeks
8. Tomorrow – DevOps
• Agile already adopted quickly by many organization
• Collaborate development teams and operations to
ensure highest quality deployments
“Every developer must think of the end user. Committing a piece of code is
far from being done. It needs to work in all kinds of weird use cases. And
it’s not only QA’s job to find all the bugs. Good developers want to ensure
that the new features are not only coded, but tested and ultimately
released to their users. Only then the task is really done.” Matthias
Marschall
9. Poll – What do you utilize
• Which method does your organization utilize?
• Application Version Control
• Database Version Control
• Application Lifecycle Management
• Agile
• DevOps
10. Methods & Processes Evolution
DevOps
Agile
ALM
Version
Control
Keep Track
of Changes
Link the
Change to the
Reason
Quick
Development
of Small
Requirements
High Quality &
Quick
Deployment of
Development
Products
12. Poll – Database Version Control
• What is the main feature you see in database version
control?
• Working directly in the Oracle IDE
(required to Check-Out the object)
• No need to maintain change scripts
• Generating the deployment scripts
• Integration with Change Management System
(ALM)
• Merge & Deploy automation
15. Benefits We Do NOT Have
Visibility into the Lifecycle of Releases
Concurrent Database Development
Consistent Database Environments
Meeting Release Schedules
with Desired Quality
Automated Tasks
Agility in Responding to
Scope Changes
17. Version Control: App vs. DB
App Development
DB Development
Text Based
Many types of objects and
syntax
Knowledge of the content
change is not relevant
Reference data has many
formats
No relationship between files
Central resource
Store locally
No Change Policy Enforcement
Changes published only in
Check-In
Changes affect immediately
Deploy done by copy & replace
previous executable
Deploy must preserve existing
data
18. DB Development – The Future
One enforced process as exists in App
Development
18
19. Poll – Oracle IDE
• Which Oracle IDE do you use?
• Oracle SQL Developer
• Oracle PL/SQL Developer
• TOAD
• SQL Navigator
• SQL*Plus
19
20. Database & Version Control
• Same Version Control Principles:
Object Locking
Check out / in for PL/SQL Code,
Structure & Data
Baseline
Tag / Label / Golden Copy
Compare / Merge
Deploy / Build
20
21. Database & ALM
• Integration with Change Management System
Know the Reason (Why) for any change
Ability to Deploy changes by Tasks
Better reports on the work for each Requirement
21
22. Database & Agile
• More then just Compare & Sync
• Merge Changes from several environments
Automation (web services, command line)
Deploy based on Version Control Repository
3-Way analysis
22
23. Baseline in Deployments
Simple Compare & Sync
3-way Analysis & Deploy
You do not have all
the information
With Baseline the
unknown
is now known
23
24. DevOps Deployment
• Many small deployments deployed frequently
Generate on-the-fly deploy scripts
3-Way Analysis – prevents wrong decisions
• Application Deployment
• Copy & Replace
• Error Recovery – Replace new binary,
fixed quickly
• Database Deployment
• Alter objects
• Error Recovery – New deploy script,
long down time
24
25. Benefits - Development
• Database Change Repository
• Follow SCM best practices
(Check-Out/Check-In)
• All Changes are documented
• Manage Who can do What, Where, When & Why
25
27. Summary
• Implement ALM, Agile & DevOps methods
in database development
• Manage Who can do What, Where, When and Why
• Build Safety net to reduce issues in production
27