Your SlideShare is downloading. ×
0
Database Continuous Delivery
Yaniv Yehuda
Uri Margalit
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 ...
Presenters
Yaniv Yehuda
• CTO, Co-Founder at DBmaestro

Uri Margalit
• Director of Products at DBmaestro

3
DBmaestro: DevOps for Database
Streamline Database
Development Process
Reduce Database
Development Costs
Instill Change Po...
Agile world…
• Doing better with less
• Reacting quickly to market needs
• Getting ahead of competition
• Just can’t wait ...
Continuous *what*?

Continuous Integration
!

Continuous Delivery
?

Continuous Deployment
6
What is Continuous Integration?
• Principles and practices
• Been around for a while
• Focus on streamlining development
•...
And Continuous Delivery?
• Next step after continuous integration
• Becoming lean, and even more Agile
• Make sure each ch...
Continuous Delivery

Fail
Pass

Image from Wikipedia

9
Continuous Deployment
• Automating changes all the way to production
• Develop-> build-> test-> move to staging-> acceptan...
How Do I Measure Success?
•
•
•
•

More rapid changes
Fewer changes backed out
Better collaboration
Fewer defects

• Ultim...
To summarize…
• Automate “everything”
• Move the process upstream
• Create the deployment pipeline

12
But…

13
Database is a Key Component
• The database holds your essential
information
• Changes can impact the entire system
• Need ...
The Weakest Link In a Chain
• Old adage but true
• The database is often “forgotten” and
therefore can become the weakest ...
Reaching Inside the Database
• There is more to a database than SQL scripts
•
•
•
•
•

Schema structure
Code
Content and m...
Developers and DBAs
•
•
•
•

Silos exist…
Don’t always communicate effectively
Need to share knowledge
Need to follow same...
Two isolated Processes
Development Process

Version Control Process
(file based)
Check-Out
Script

?
Check-In
Script

?

A...
Database deployment automation
• Major challenge…
• Risky if done incorrectly…
• Conflicts & Merges
• Code overrides
• Out...
Where Do We Start
•
•
•
•
•
•

Start in the beginning
Build quality in from the beginning
Incremental steps
Move to QA nex...
Traceability

Coordinated Process

Well Defined Processes

Impact Analysis

Dealing with challenges…
Task Based Developmen...
Version Control - One Enforced Process

22
Development Methods

Dev
Dev
Dev

Int

QA

Deploy
Re-Base (due to defects)
Environment

23

Stage

Prod
Built Proof Deployment Automation
Simple Compare & Sync
Source vs.
Target
=
≠

Baseline Aware Deployment
Source vs.
Baseli...
If a Picture is Worth a
Thousand Words…

25
Demo flow
Starting Point
• 3 environments: PROD, Critical Bug Fix Branch, UAT

Flow
• Make critical fixes
•
•
•
•

Change ...
Summary
Dev…
• Enforce best practices for database development
• Closely manage your database development
• Know who can d...
Q&A

28
Links
• http://www.thoughtworks.com/continuous-integration
• http://www.thoughtworks.com/continuous-delivery

• http://mar...
If we broadcast the recording, then is it possible to pause
and add a poll? Who will handle it?

A Quick Poll 

30
Database continuous delivery
Upcoming SlideShare
Loading in...5
×

Database continuous delivery

411

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
411
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×