Dcm for ilOUG

359 views
285 views

Published on

The History of DCM (Database Change Management) and what are the requirements of a good DCM

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
359
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dcm for ilOUG

  1. 1. CONTROL.DEPLOY.PROTECT.COMPLY DCM & SCM ilOUG .NET forum 2012 Footer www.dbmaestro.comCONTROL.DEPLOY.PROTECT.COMPLY
  2. 2. DCM  DCM – Database Change Management  Part of ALM (Application Lifecycle Management) solutions Footer www.dbmaestro.com 2CONTROL.DEPLOY.PROTECT.COMPLY
  3. 3. Applications & Databases  Database is a Major Part of the Application  Schema Structure  PL/SQL Code  Lookup Content  Database is a Central Resource  Business Data Must be Saved Footer www.dbmaestro.com 3CONTROL.DEPLOY.PROTECT.COMPLY
  4. 4. SCM Concepts  Structure of a repository & gained functionality  File based  Separation of Working environment and repository  File Locking  Check out / in  Baseline  Tag / Label  Head / Latest  Rollback  Compare / Merge  Deploy / Build Footer www.dbmaestro.com 4CONTROL.DEPLOY.PROTECT.COMPLY
  5. 5. SCM Concepts did not apply tothe database world  Traditional SCM concept doesn’t fit the Database world…  A database is not a collection of files  DDL (Data Definition Language)  DML (Data Manipulation Language)  DDL extraction  No debug environment  Content ?  Database duplication – constant synchronization Footer www.dbmaestro.com 5CONTROL.DEPLOY.PROTECT.COMPLY
  6. 6. SCM Concepts did not apply tothe database world  Moving changes…  Development to QA, integration and production  Code – simple file copy & registration  DB objects cant just be “moved” – content…  What do we do with db content changes ?  So the whole thing was neglected for years...  Manual process where created to deal with eal life situations Footer www.dbmaestro.com 6CONTROL.DEPLOY.PROTECT.COMPLY
  7. 7. Manual process  Lists depicting database changes are created Post-it SCM Don’t forget to add the index…  Detailed documents in SCM  Code is written to alter database structure without content loss Footer www.dbmaestro.com 7CONTROL.DEPLOY.PROTECT.COMPLY
  8. 8. Manual process  But:  Lists are usually not part of an SCM process  Not mandatory  Not policy enforced  Code developed for deployment is not part of ALM  Not following the same restrictions (QA, code review…)  No simple solution for content change management (backups? Database duplications?)  Clearly, automation is required! Footer www.dbmaestro.com 8CONTROL.DEPLOY.PROTECT.COMPLY
  9. 9. Automation – First Generation databasechange management  A new concept is created  Compare & Sync  Automated tools compare different environments  Reports are generated, and differences are found  Automatic code generation  Some products can even analyze content and propagate content changes  Deployment became more stable and less prone to human mistakes  We where happy for a while… Footer www.dbmaestro.com 9CONTROL.DEPLOY.PROTECT.COMPLY
  10. 10. Automation – First Generation databasechange management  But:  What if test environment has undergone changes?  What happened while in development cycle?  Anyone privileged can update the database, even if it is not required…  How can we match database development with application development?  Partial deployments?  Team synchronization?  Who did What, When and Why?  So, a lot of the traditional SCM goals are not answered  Footer www.dbmaestro.com 10CONTROL.DEPLOY.PROTECT.COMPLY
  11. 11. Automation – First Generation databasechange management   File Locking   Check out / in   Baseline *   Tag / Label   Head / Latest, but this it the DB itself, so actually  …   Rollback   Compare /  Merge   Deploy / Build * * Partial Footer www.dbmaestro.com 11CONTROL.DEPLOY.PROTECT.COMPLY
  12. 12. SCM without DCM Business Req. Conflict code Automated Continuous SCM Native Code Integration Resolver Deployment IntegrationFile Based Change Merge Agile Any ChangeVersion Management Code Tested OverControl: Systems Quick NightJava, .NET, IterationsC#, C++ Correlate Change with Reduce Activity Overhead Increase Team Satisfaction Footer www.dbmaestro.com 12CONTROL.DEPLOY.PROTECT.COMPLY
  13. 13. DCM Lack of Inherent Risks  Falling Behind Deadlines  Code Overrides  No Tracking Changes  Release Rollback  Lack of Recovery  Release Unreliability  Lack of Automation  Audit Compliance  Security Breaches Footer www.dbmaestro.com 13CONTROL.DEPLOY.PROTECT.COMPLY
  14. 14. Correction This is not Database Change Management This is Database Deployment Management So, We still need to Manage Change Footer www.dbmaestro.com 14CONTROL.DEPLOY.PROTECT.COMPLY
  15. 15. Next generationdatabase change management Requirements  Follow traditional SCM concepts  Check-Out / Check-In / Tagging / …  Support Any Database client IDE  Enforce a well disciplined change process (no out of process updates)  Synchronize team work  Support entire life cycle (development, testing, going to production) Footer www.dbmaestro.com 15CONTROL.DEPLOY.PROTECT.COMPLY
  16. 16. Next generationdatabase change management Requirements  Manage content changes  Good, stable repository  Save all development  Auditing  Link / embed to traditional SCM projects  Enable deployment based on SCM tasks Footer www.dbmaestro.com 16CONTROL.DEPLOY.PROTECT.COMPLY
  17. 17. Follow SCM ConceptsNG database change management Requirements   File Locking   Check out / in   Baseline   Tag / Label   Head / Latest   Rollback   Compare /  Merge   Deploy / Build Footer www.dbmaestro.com 17CONTROL.DEPLOY.PROTECT.COMPLY
  18. 18. Without DCMTwo unrelated Processes Compile Script Check-Out in DB Script Check-In Script Modify Script Debug Script Get updated in DB Script from DB Footer www.dbmaestro.com 18CONTROL.DEPLOY.PROTECT.COMPLY
  19. 19. With DCMOne Enforced Process Check-Out Object Modify Object in Check-In Object DB Run Applications’ Tests Footer www.dbmaestro.com 19CONTROL.DEPLOY.PROTECT.COMPLY
  20. 20. NG database change managementHow is it done?  Challenges:  Creating a new type of repository  A problem - central resource vs. replicated resource Enforcing change process  Synchronizing development teams   Linking to traditional SCM Linking versions  Linking change sets   Leveraging deployments Footer www.dbmaestro.com 20CONTROL.DEPLOY.PROTECT.COMPLY
  21. 21. Benefits & Risk Avoidance  Policy enforcement  Concurrent development  Preventing collisions and conflicts  Standards  Check-in and check-out  Labels  Complete audit trail of all changes Footer www.dbmaestro.com 21CONTROL.DEPLOY.PROTECT.COMPLY
  22. 22. Benefits & Risk Avoidance  Lookup tables data management  Automated Roll back of changes  Development  Production systems  Automated deployments between multiple databases  Three way analysis  Requirement based deployment Footer www.dbmaestro.com 22CONTROL.DEPLOY.PROTECT.COMPLY
  23. 23. It’s all about a Safety Net DCM Business Conflict code Automated Continuous SCM Native Code Database Req. Resolver Deployment Integration Code IntegrationFile Based Database Change Merge Agile Any ChangeVersion Version Management Code Tested OverControl: Control Systems Night QuickJava, .NET, IterationsC#, C++ Change Correlate Policy Change with Reduce Activity Overhead Automatic Deployment Increase Script Team Satisfaction Footer www.dbmaestro.com 23CONTROL.DEPLOY.PROTECT.COMPLY
  24. 24. Demo Footer www.dbmaestro.com 24CONTROL.DEPLOY.PROTECT.COMPLY
  25. 25. Baseline in Deployments Source vs. Action Source vs. Target vs. Action Target Baseline Baseline = No Action = = No Action ≠ = Override ≠ ? = ≠ ≠ ≠ Ignore Merge You do not have all With Baseline the the information unknown is now known Footer www.dbmaestro.com 25CONTROL.DEPLOY.PROTECT.COMPLY
  26. 26. DCM & Development Methodologies  Agile  Branches  Multiple Development – short & long development  Shared Environment  Teams’ Environment  Design tools  ORM tools Footer www.dbmaestro.com 26CONTROL.DEPLOY.PROTECT.COMPLY
  27. 27. Summary  SCM works well with File-Based objects  DCM created for Databases objects  Support ALL IDEs working with the Database  Support ANY development methodology  Prepare yourself to the deployment phase Footer www.dbmaestro.com 27CONTROL.DEPLOY.PROTECT.COMPLY
  28. 28. Thank you Thank you for your time Uri Margalit urim@dbMaestro.com Footer www.dbmaestro.com 28CONTROL.DEPLOY.PROTECT.COMPLY

×