This document discusses deploying database changes rapidly in production environments. It outlines challenges like time pressure, uncertainty, and outage risks when deploying changes. The authors propose a lightweight change management process using scripts, templates, version control and logging to minimize risks and speed up deployments. They demonstrate deploying changes using SQL*Plus scripts managed through subversion. Their process focuses deployments by defining what changes to deploy, how to deploy them, and when through a minimal set of questions.
1. Deploying Database Changes: Performance Matters Rapidly deploying database code in 24/7 environments Vlado Barun Ed Putkonen Hotsos Symposium 3/2010
2. Disclaimer This presentation IS NOT about Oracle RDBMS internals Cool new features (i.e. edition based redefinition) This presentation IS about Response Time Change Management Process – ultra-light Live SQL*Plus demos In production Proven approach to reduce deployment issues in dev/qa/stage/production
3. Who we are Vlado Barun, M.Sc. 14 years in the Database Arena (Oracle - 9 years) DBA, Database Developer, Database Architect, DBA Manager, Data Modeler, Consultant, … OCP, OCE SQL, MCP Ed Putkonen 20 Years of Relational DB Experience Developer, Designer, DBA
4. Jewelry Television (jtv.com) facts Established 1993 1000+ Employees, HQ in Knoxville, TN Largest retailer of loose Gemstones Broadcast to 70+ million households #4 online Jewelry, #139 online Retail
5. JTV environment Retail operations are 24x7x365 No regularly scheduled maintenance windows In-house developed applications Agile SDLC – Scrum
6. Typical Deployment Scenario Add new and/or change existing objects (tables, triggers, packages, etc.) Driven by an effort to implement a new application feature, bug fix, tuning, etc. Deployment execution time is a small percentage of overall effort Analysis/Design/Dev/QA – days/weeks Deployment duration – seconds/minutes
7. Common challenges - symptoms Time pressure Project is already behind schedule Rapid pace of production deployments Uncertainty Changes are made up to the last minute Which change to deploy, which version? Outage Risk 70% of outages due to human errors* Downtime costs are substantial * Source: “Database Administration: The Complete Guide to Practices and Procedures” by Craig Mullins, pg 238
8. Time-to-Market vs Availability Frequent deployments result in Faster time-to-market => increased business value Higher probability of mistakes => lower system availability Common responses to availability issue Enforce bureaucratic process => reduced frequency of deployments Just complain about it, but make no real changes
14. Change Management – ultra light At a minimum CM has to unambiguously define: What which script(s) need to be deployed which version(s) How which sequence chain of communication When date/time approvals?
15. JTV deployment process/toolset Bugzilla for issue tracking Remedy for approvals Tickets transformed into SQL*Plus scripts Tools for generating scripts include templates, Powerdesigner, TOAD, SQL Developer, OEM Scripts in version control using subversion Approved tickets deployed via SQL*Plus
20. How to get started Before each deployment, ensure* that you have answers to all the questions use existing collaboration tools, if available Minimize manual deployments script your deployments utilize script templates reuse scripts to deploy to dev, qa, prod Version control your scripts Log everything** and publish the logs
21. Change Management – ultra light At a minimum CM has to unambiguously define: What which script(s) need to be deployed which version(s) How which sequence Chain of communication When Date/time Approvals?
22. How to get started Before each deployment, ensure* that you have answers to all the questions use existing collaboration tools, if available Minimize manual deployments script your deployments utilize templates reuse scripts to deploy to dev, qa, prod Version control your scripts Log everything** and publish the logs
23. Deployment Response Time Profile Event Duration ------------------------ ----------------------- Waiting for Information hours/days 95.77% Preparation minutes/hours 4.16% Execution seconds/minutes 0.07% Change Management Templates Standard Tuning Approach +dbms_pipe/dbms_alert
24. Summary Lightweight Change Management Facilitate rapid & reliable deployments Three questions Works regardless of deployment complexity Independent of Development methodology Complete logging and transparency
25. ? Vlado Barun – vbarun@computer.org Ed Putkonen – ed.putkonen@jtv.com