* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Bringing DevOps to the Database
Oracle Database wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Relational model wikipedia , lookup
Database model wikipedia , lookup
Team Foundation Server wikipedia , lookup
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