Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
T-SQL Deployment and Continuous Integration Best Practices Grant Fritchey – Red Gate Software www.ScaryDBA.com Grant Fritchey | www.ScaryDBA.com Goals Learn the importance of source control for databases in a database team development environment Show how database development can comply with code development best practices Learn how to incorporate testing and support of a continuous integration environment into database development processes Grant Fritchey | www.ScaryDBA.com 2 Grant Fritchey Product Evangelist for Red Gate Software Email: [email protected] Twitter: @gfritchey Blog: scarydba.com Grant Fritchey | www.ScaryDBA.com 3 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” Grant Fritchey | www.ScaryDBA.com 4 The Database “Solution” Treat it as much like code as possible Do the following » Work directly with the 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 Grant Fritchey | www.ScaryDBA.com 5 The Team Roles » Application Developer » Database Developer » Database Administrator » Report Writer »? Communication Collaboration » Remember, it’s a common goal Contention Grant Fritchey | www.ScaryDBA.com 6 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 Grant Fritchey | www.ScaryDBA.com 7 Source Control Known states » Production » Source control Tighter integration with Developers History of changes Auditing But, requires discipline » Always work through source control » Always deploy from source control » Only deploy from source control Grant Fritchey | www.ScaryDBA.com 8 Testing Test Driven development Improved quality Continuous integration Testing needs » Automation » Isolation » Repeatability Grant Fritchey | www.ScaryDBA.com 9 Automation Because you have work to do Multiple developers Multiple servers Tools you know » TSQL » Powershell » Command line » 3rd Party Grant Fritchey | www.ScaryDBA.com 10 Continuous Integration Quality control Identify issues early Build from source control Automatic process Scheduled or Triggered Make the build self-testing Publish the results Grant Fritchey | www.ScaryDBA.com 11 Continuous Integration runs • each Unittime test you database code commit a • Generate database upgrade • change Validate upgrade scripts to database source control scripts• Validate database creation scripts • Generate creation scripts We also buildbuild a database that dev can and be Optionally and update If any part of the CI process fails, the used by the application for its own test environments ‘build’ is deemed broken and Each time the build is successful, publish unit tests developers are alerted immediately updated database documentation Grant Fritchey | www.ScaryDBA.com Tool Set Source Control » Flavors don’t matter » Make it work for you » Use labeling (or equivalent) » Use branching (or equivalent) Build Tool » SSMS » Visual Studio » 3rd Party CI Monitoring Tool » TeamCity » CruiseControl » Custom » Other Grant Fritchey | www.ScaryDBA.com 13 Demo More than one way to do this Grant Fritchey | www.ScaryDBA.com 14 Goals Learn the importance of source control for databases in a database team development environment Show how database development can comply with code development best practices Learn how to incorporate testing and support of a continuous integration environment into database development processes Grant Fritchey | www.ScaryDBA.com 15 Resources Scarydba.com/resources http://knowscrum.com/benefits-of-continuous-integration-inscrum-best-practices-in-scrum/ - Benefits of CI in Scrum http://www.codinghorror.com/blog/2006/10/the-build-serveryour-projects-heart-monitor.html - The Build Server, Your Projects Heart Monitor http://martinfowler.com/articles/continuousIntegration.html Martin Fowler on CI http://en.wikipedia.org/wiki/Continuous_integration - Wikipedia CI http://www.real-sql-guy.com/search/label/Source%20Control – Automated Source Control http://www.simple-talk.com/sql/sql-tools/sql-test-seeing-redchange-to-green/ - Rob Sullivan – Seeing Red Change to Green http://www.simple-talk.com/content/article.aspx?article=1247 – Troy Hunt – Continuous Integration for SQL Server Databases Grant Fritchey | www.ScaryDBA.com 16 Grant Fritchey Product Evangelist for Red Gate Software Email: [email protected] Twitter: @gfritchey Blog: scarydba.com Grant Fritchey | www.ScaryDBA.com 17 Questions? Grant Fritchey | www.ScaryDBA.com 18