Database continuous delivery

833 views

Published on

Wikipedia defines Continuous Delivery as a design practice used in software development to
automate and improve the process of software delivery. That is well known and very true, but less known and still very true is that the same practices should be applied on to the database development, by using Database Enforced Change Management.

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

No Downloads
Views
Total views
833
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Database continuous delivery

  1. 1. Database Continuous Delivery Yaniv Yehuda Uri Margalit
  2. 2. Before We Begin • You will be on mute for the duration of the event • We are now talking so please type a message in the Questions box in the Control Panel if you can’t hear us (please check your speakers and GoToWebinar audio settings first) • There will be a Q+A session at the end, you can start submitting you questions on the Q&A bar on your gotowebinar dashboard. • A recording of the full webinar will be put up online 2
  3. 3. Presenters Yaniv Yehuda • CTO, Co-Founder at DBmaestro Uri Margalit • Director of Products at DBmaestro 3
  4. 4. DBmaestro: DevOps for Database Streamline Database Development Process Reduce Database Development Costs Instill Change Policy Enforcement Mitigate Deployment Risks Automate Deployment Process Reduce Deployment cost by 95% YY
  5. 5. Agile world… • Doing better with less • Reacting quickly to market needs • Getting ahead of competition • Just can’t wait 6 months for that next release… • Agile Development • Process Automation • DevOps 5
  6. 6. Continuous *what*? Continuous Integration ! Continuous Delivery ? Continuous Deployment 6
  7. 7. What is Continuous Integration? • Principles and practices • Been around for a while • Focus on streamlining development • • • • • Developers integrate code into shared repository Each check-in is verified Automated builds Automated tests High visibility • Easier & quicker to find problems, less back tracks => short integrations 7
  8. 8. And Continuous Delivery? • Next step after continuous integration • Becoming lean, and even more Agile • Make sure each change is releasable • Develop-> build-> test-> move to staging-> acceptance test • Build a process to release with a push of a button • Deploy to production-> test production • Actual deployment to production in manually actuated => Ensure risk mitigation and high efficiency 8
  9. 9. Continuous Delivery Fail Pass Image from Wikipedia 9
  10. 10. Continuous Deployment • Automating changes all the way to production • Develop-> build-> test-> move to staging-> acceptance test-> deploy to production-> test production • Makes sense for Facebook, Amazon, i.e. - for large SAAS solutions. • A/B test new features • Stream traffic to new releases etc… • Not for everyone… 10
  11. 11. How Do I Measure Success? • • • • More rapid changes Fewer changes backed out Better collaboration Fewer defects • Ultimately better service • Happy customers • Profitability 11
  12. 12. To summarize… • Automate “everything” • Move the process upstream • Create the deployment pipeline 12
  13. 13. But… 13
  14. 14. Database is a Key Component • The database holds your essential information • Changes can impact the entire system • Need to be synchronized with other changes • Often overlooked 14
  15. 15. The Weakest Link In a Chain • Old adage but true • The database is often “forgotten” and therefore can become the weakest link • Essential from a compliance point of view • Should be the strongest link • “Using NoSQL can eliminate the step of data migrations and schema changes, often manual steps or exceptions to a continuous delivery workflow” http://en.wikipedia.org/wiki/Continuous_delivery (Rarely a practical option…) 15
  16. 16. Reaching Inside the Database • There is more to a database than SQL scripts • • • • • Schema structure Code Content and meta-content Internal dependencies … • Ensure that changes are not made without authorization • Ensure no out-of-process changes 16
  17. 17. Developers and DBAs • • • • Silos exist… Don’t always communicate effectively Need to share knowledge Need to follow same procedures & best practices 17
  18. 18. Two isolated Processes Development Process Version Control Process (file based) Check-Out Script ? Check-In Script ? A Modify Script Get updated Script from DB ? 18 ? Compile Script in DB A’ Debug Script in DB
  19. 19. Database deployment automation • Major challenge… • Risky if done incorrectly… • Conflicts & Merges • Code overrides • Outdated update scripts • Need Impact analysis processes • Traceability and transparency • Audit and compliance • Automating problems into production is a major risk!!! 19
  20. 20. Where Do We Start • • • • • • Start in the beginning Build quality in from the beginning Incremental steps Move to QA next… Take a complete lifecycle approach Iterative approach to improving process 20
  21. 21. Traceability Coordinated Process Well Defined Processes Impact Analysis Dealing with challenges… Task Based Development Start in the Beginning No Out-of-Process Changes Automation 21
  22. 22. Version Control - One Enforced Process 22
  23. 23. Development Methods Dev Dev Dev Int QA Deploy Re-Base (due to defects) Environment 23 Stage Prod
  24. 24. Built Proof Deployment Automation Simple Compare & Sync Source vs. Target = ≠ Baseline Aware Deployment Source vs. Baseline Action No Action Target vs. Baseline Action = = Override = ≠ Ignore ≠ You do not have all of the information No Action ≠ ? = ≠ Merge With Baselines and 3 way analysis the unknown is now known 24
  25. 25. If a Picture is Worth a Thousand Words… 25
  26. 26. Demo flow Starting Point • 3 environments: PROD, Critical Bug Fix Branch, UAT Flow • Make critical fixes • • • • Change the dedicate branch Test Promote to PROD Test PROD • Promote the UAT to PROD • Test • Promote to PROD • Test PROD 26
  27. 27. Summary Dev… • Enforce best practices for database development • Closely manage your database development • Know who can do what, where, when & why …Ops • Build a safety net to catch problems early • Reduce deployment issues • Enable automated deployments 27
  28. 28. Q&A 28
  29. 29. Links • http://www.thoughtworks.com/continuous-integration • http://www.thoughtworks.com/continuous-delivery • http://martinfowler.com/articles/continuousIntegration.html • http://puppetlabs.com/blog/continuous-delivery-vs-continuousdeployment-whats-diff • http://refcardz.dzone.com/refcardz/continuous-delivery-patterns • http://en.wikipedia.org/wiki/Continuous_integration • http://en.wikipedia.org/wiki/Application_release_automation • http://en.wikipedia.org/wiki/Continuous_delivery 29
  30. 30. If we broadcast the recording, then is it possible to pause and add a poll? Who will handle it? A Quick Poll  30

×