Best Practices for Database Deployments
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Best Practices for Database Deployments

  • 368 views
Uploaded on

Best Practices for Database Deployments. SQL In The City Cambridge presentation by Grant Fritchey, Red Gate Software

Best Practices for Database Deployments. SQL In The City Cambridge presentation by Grant Fritchey, Red Gate Software

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
368
On Slideshare
368
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Changes are made in development, then move to qa, then to production
  • Need to think about it differently, start with production and define what has to go there, then figure out how to move up to there from each preceding environment.

Transcript

  • 1. #sqlinthecity Best Practices for Database Deployments Grant Fritchey Red Gate Software
  • 2. #sqlinthecity Goals • Understand how to create your own deployment mechanisms • Learn about the tools available for automation of the deployment process • Acquire the knowledge of how to test your deployments
  • 3. #sqlinthecity The Database “Problem” • Information persistence layer • Businesses like their data • Keeping that data in place can be work – Which is the start of the “problem” • Object Relational Impedance Mismatch – Which is the rest of the “problem” 3
  • 4. #sqlinthecity The Database “Solution” • Treat it as much like code as possible • Do the following – Work directly with the development team – Define a repeatable process – Put the database into source control – Put tests in place to validate the database – Automate as much of the process as possible • Follow the local development paradigm as much as possible 4
  • 5. Process: Team Glue • You must define a process – It’s your process, you define it • Management buy-in • Write the process down – And publish it • Review process regularly • Follow the process – Exceptions have to be exceptional • The process applies to everyone – No, DBAs, you’re not that special 5
  • 6. #sqlinthecity Development Process Production QA/Testing Development
  • 7. #sqlinthecity Building a Deployment Process Production QA/Testing Development
  • 8. #sqlinthecity Building a Deployment Process • • • • • • • Production deployment script Test script on copy of production Generate script for production from label Label code in source control Add changes to source control Make changes to code Get code from source control
  • 9. #sqlinthecity Source Control • Two known states – Production – Source Control • Ensures coupling between application and database • History of changes • Auditing
  • 10. #sqlinthecity Demo
  • 11. #sqlinthecity Testing Deployments • ABCD – Always Be Continuously Deploying • Unit Testing • Continuous Integration • Copies of production
  • 12. #sqlinthecity Demo
  • 13. #sqlinthecity Deploying to Multiple Environments • Multiple moves between multiple environments • Every deployment is practice
  • 14. #sqlinthecity Deploying to Multiple Environments • Multiple moves between multiple environments • Every deployment is practice
  • 15. #sqlinthecity Deploying to Multiple Environments • Multiple moves between multiple environments • Every deployment is practice
  • 16. #sqlinthecity Deploying to Multiple Environments • Multiple moves between multiple environments • Every deployment is practice
  • 17. #sqlinthecity Demo
  • 18. #sqlinthecity Integrating Database with Application • • • • Coupled through source control Labeled together Deployed together Database is deployed first
  • 19. #sqlinthecity Demo
  • 20. #sqlinthecity Deployment Automation • • • • Remove humans from the equation Speed the process Make the process repeatable Take advantage of the tools you know
  • 21. #sqlinthecity Summary • • • • • • Define a process Work backwards from production All database code in source control Integrate tightly with development team Test and validate all code Automate as much as possible
  • 22. #sqlinthecity Goals • Understand how to create your own deployment mechanisms • Learn about the tools available for automation of the deployment process • Acquire the knowledge of how to test your deployments