Successfully reported this slideshow.

Database Version Control Development by dbMaestro

1,362 views

Published on

dbMaestro on Version Control Database Development. A discussion on App development vs. DB development, the gap between them and how to bridge that gap.

Published in: Technology

Database Version Control Development by dbMaestro

  1. 1. Version Control Database Development Uri Margalit DBmaestro
  2. 2. About the presenter • Director of Products at DBmaestro • +20 years experience in enterprise management • R&D Director at Precise / VERITAS / Symantec About DBmaestro…
  3. 3. Agenda • • • • • Yesterday, Today & Tomorrow App development vs. DB development Exploring the gap Short demo Benefits
  4. 4. Yesterday, Today & Tomorrow
  5. 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. 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. 7. Today – Agile • Adopted quickly by many organizations • Allows development teams to present working products every couple of weeks
  8. 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. 9. Poll – What do you utilize • Which method does your organization utilize? • Application Version Control • Database Version Control • Application Lifecycle Management • Agile • DevOps
  10. 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
  11. 11. App development vs. DB development
  12. 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
  13. 13. App Development One enforced process Check-Out File Check-In File Modify File Run Applications’ Tests
  14. 14. DB Development – Today Two isolated processes
  15. 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
  16. 16. App & DB GAP
  17. 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. 18. DB Development – The Future One enforced process as exists in App Development 18
  19. 19. Poll – Oracle IDE • Which Oracle IDE do you use? • Oracle SQL Developer • Oracle PL/SQL Developer • TOAD • SQL Navigator • SQL*Plus 19
  20. 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. 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. 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. 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. 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. 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
  26. 26. Benefits - Operation • Integrated Deployment Engine • Business Level Audit • Roles & Responsibilities Enforcement 26
  27. 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
  28. 28. Q&A Uri Margalit urim@dbmaestro.com 28
  29. 29. Thanks for listening

×