Download Bringing DevOps to the Database

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Oracle Database wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Open Database Connectivity wikipedia , lookup

PL/SQL wikipedia , lookup

IMDb wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Team Foundation Server wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

Transcript
Bringing DevOps to the
Database
Steve Jones
SQLServerCentral
Redgate Software
Agenda
• Who am I?
• What is DevOps?
• The DevOps Software Development Pipeline
• Principles of DevOps
• Evolving Database Development
Who am I?
Steve Jones
SQLServerCentral founder
Redgate Software Evangelist
www.voiceofthedba.com
[email protected]
@way0utwest
/in/way0utwest
What is DevOps?
• Grew out of the Agile movement
• Velocity ‘09 – 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
• Is not Agile (or Scrum or Lean or Kanban)
• Is an amalgamation of various ideas and principles that describe how
to better build software.
The Three Ways
• Principles underlying DevOps from Gene Kim
• Systems Thinking
• Amplify Feedback Loops
• Culture of Experimentation and Learning
What is DevOps?
“DevOps is the union of people, process, and products to enable
continuous delivery of value to our end users.”
- Donovan Brown
Seven Key DevOps Practices
• Configuration Management
• Release Management
• Continuous Integration
• Continuous Deployment
• Infrastructure as Code
• Test Automation
• Application Performance Monitoring
Seven Key DevOps Habits
• Team Autonomy and Enterprise Alignment
• Rigorous Management of Technical Debt
• Focus on Flow of Customer Value
• Hypothesis Driven Development
• Evidence Gathered in Production
• Live Site Culture
• Manage Infrastructure as a Flexible Resource
DevOps in Practice
• Automation
• Continuous Integration
• Continuous Delivery
• Testing
• Should be automated
• Measurement and Tracking/Auditing
• Logging in the application/database
• Monitoring and baselining
• Communication
• Transparency
• Sharing
10 |
3/25/2017
Thank You Sponsors
Platinum
Gold
Silver
Bronze
Swag
The Application Development Pipeline
Operations
Development
Continuous integration
QA
Build
Production
Trigger
Test
Staging
Report
Sync
Beta
Publish
Artifact
repository
The Database Development Pipeline
Operations
Development
Continuous integration
QA
Build
Production
Trigger
Test
Staging
Shared
Report
Sync
Beta
Publish
Artifact
repository
The Application Development Pipeline
Operations
Development
Continuous integration
QA
Build
Production
Trigger
Test
Staging
Report
Sync
Beta
Publish
Artifact
repository
The Database Development Pipeline
Operations
Development
Continuous integration
QA
Build
Production
Trigger
Test
Staging
Shared
Report
Sync
Beta
Publish
Artifact
repository
Evolving Database Development
• Version Control
• Options for database DDL and DML
• Scripting – SMO in SQL Server
• Third Party Tools
• File | Save
• VCS Organization
• Can be same repo or separate repo
• Keep code separated
Demo
• Store database code in a VCS
Database Continuous Integration
• Use a Build Server
• TFS Build, Bamboo, Team City, Cruise Control, Jenkins, whatever
• Database Build
• Pull code from VCS
• Execute code (in order) on a database
• Database Testing
• Use a framework (next slide)
• Publish
• Generate an Upgrade Script for an existing database (coming soon)
Database Testing
• For SQL Server
•
•
•
•
•
tSQLt
Microsoft Unit Testing Projects
DBUnit
TSQLUnit
Custom scripted tests
* For best results, use curated test data
Demo
• Implement Continuous Integration
Generate the Update Script
• For code (stored procedures, functions, views, modules, etc.)
• Take latest version from VCS
• For tables
• Use Comparison or migration scripts to make changes.
• Tools
• Comparison tools (SQL Compare, etc)
• Migration Tools (ReadyRoll, FlywayDB, Liquibase, etc)
Deploy the Code
• Use a consistent process
• Use automation where you can, use manual steps (documented)
where you cannot
• Slowly and continuously improve the process
• Use a Release Management Server
• Octopus Deploy
• TFS
• Bamboo
Release Issues
• Rollback
• For code (views, procs, functions) – Deploy the previous version
• For tables – Need custom code
• In general, I am a fan of dark deploys and roll forward
• Environment Data
• Data that varies by environment (queue names, security, etc)
• Script and deploy with deploy once scripts
• Use tokens where possible and store config data in the environment
Demo
• Release to Downstream Environments
Summary
• Understand and implement the DevOps principles
• Systems Thinking
• Feedback Loops
• Experimentation and Learning
• Treat the database like application code
• Build the exceptions into your process
• Adapt to your environment
• Do more of what works
• Do less of what doesn’t
The End
•
•
•
•
Thank you for coming
Questions?
More product info at http://www.red-gate.com/products/dlm/
Training: red-gate.com/training
www.voiceofthedba.com
[email protected]
@way0utwest
/in/way0utwest
References
• You’re Doing DevOps Wrong - https://techcrunch.com/2016/07/04/youre-doing-devops-wrong/
• Codifying DevOps Practices - http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
• 3 DevOps Principles to Apply to Your IT Team - http://blogs.atlassian.com/2015/09/3-key-devops-principlesapply-team/
• DevOps Distilled, Part 1: http://www.ibm.com/developerworks/library/se-devops/part1/index.html
• Closing the Gap Between Database Continuous Delivery and Code Continuous Delivery
- http://devops.com/2014/11/19/closing-gap-database-continuous-delivery-code-continuous-delivery/
- Where’s the Database in DevOps - https://www.red-gate.com/library/wheres-the-database-in-devops
- How do Databases Fit into DevOps - https://blog.devopsguys.com/2015/02/19/how-do-databases-fit-intodevops/
Images
•
https://coupongy.files.wordpress.com/2013/06/scratching-head3.gif
•
http://sipsoftlogic.com/qa-testing/
•
http://www.qahipster.com/uploads/8/1/4/4/8144013/417638_orig.gif
•
https://commons.wikimedia.org/wiki/File:Server-blades.svg
•
http://sethkravitz.com/wp-content/uploads/2016/01/culture.jpg
•
http://cdn.electric-cloud.com/wp-content/uploads/2015/04/end_to_end_automation.jpeg
•
https://media.licdn.com/mpr/mpr/p/6/005/0b0/1ca/3876971.jpg
•
http://studyjams.scholastic.com/studyjams/assets/jams/math/measurement/image.jpg
•
http://static1.squarespace.com/static/50e6cb55e4b0404f376ac3a9/t/51001a3ce4b0479a8076a5da/1358961213093/feedback.png
•
https://www.govloop.com/blogs/4001-5000/4920-Experiment.gif
•
http://onlinelearningtips.com/wp-content/uploads/2014/04/worlde-online-learning.gif
•
http://successagency.com/blog/wp-content/uploads/2014/05/5.-Communication-gif.gif
•
https://elizajanee.files.wordpress.com/2015/03/tumblr_n652boc6hf1rpfx57o1_400.gif
•
http://cdn2.totallythebomb.com/wp-content/uploads/2011/09/stopsign.gif
•
http://threesixtysafety.com/wp-content/uploads/effective-communication.jpg
•
http://www.millenniumrecycling.com/wp-content/uploads/2015/01/Process-Gif.gif