Top Banner
No Surprises Development and Environment Management Stewart Bryson, Rittman Mead & Kellyn Pot’Vin, Enkitec
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.

No Surprises Development and Environment Management

Stewart Bryson, Rittman Mead
& Kellyn PotVin, Enkitec

About This Session

Other programming disciplines have taken advantage of collaborative development principles to achieve quality code faster, such as:Agile methods

rapid feedback

What techniques are available to enable higher levels of visibility and traceability when developing database code and schema objects.

Deployment Strategies in the Workplace

Formal Strategy?




Database World View


The GULF In between



The ability to constantly build and deploy code into identical environments is one of the core essentials to ensuring successful releases.

There is incredible value in constant environmental comparisons which can reduce potential deployment problems between:

Developer Database Copies

Central Development Databases

Integration Environments

Reporting Environments


Secondary Objectives

Know more about Oracle's built-in capabilities for tracking database changes.

Learn how different tools can can support Oracle deployments to facilitate development, deployment, and quality peer reviews.

Learn about how to leverage compare tools to reduce potential code movement and deployment issues.

Performing a Release, Can you answer:

1. Exactly what is being changed in the database?2. If they're using scripts to make the changes, have the scripts been run against a copy of the production schema anywhere before attempting them in production?3. How long will the scripts take to run?4. Are all of the scripts documented? 5. Is there a run-book /install guide that lists each script?

So Much Can Change.

5. Which scripts can be "pre-deployed" or "dark-launched"? (i.e. won't affect a running system.)6. Which scripts require an outage?7. Which scripts can be run post-outage?8. If we need to abort, what is the minimum set of things we need to revert back to pre-deployment versions?

What do We Need to Be Successful?

What do we want?

What do we need?

To Ensure You are able to Answer These Question, it will Require:

Following Environments:

2 in Development

2 in Integration

2 in QA

1 in Production Reporting

1 in Production

1. They don't have a production copy.

a) Skills/Resource to Create a Production Copyb) Lack Disk Space to Create Production Copy c) Inability/Lack Resources to Utilize Snap Mirrors/Re-Silveringd) Logical Data Guarde) Golden gatef) Delphix

2. Restrictive security prevents comparing schemas across Environments

Restricts comparisons between development, test, QA and production..

a) Ask why, demand a logical answer.b) Find a way around it, there are tools to extract baselinesc) Write a sql script to dump details to a .txt file and just diff themd) Find a process to constantly verify that the structure in Production is what you expect it to be.

3. They don't practice deployments in the environments they have

a) From Development to Integration or from schema to schemab) From Integration to QA Does QA file bugs when the installation scripts fail?c) From QA to Production Reporting

4. They think that small structural differences "don't matter"

a) The index names are different, how could this impact a release?b) The columns are in a different order, what is the big deal?c) Storage clauses are assumed, its an issue?d) They run RAC and DG in production, but nowhere else, it matters?

Internal Database Tips

DDL Auditing turned on, considered default in environments.

It is FREE, has almost no overhead and grants the administrator a list of structural changes occurring as the changes happen.All change scripts should be generated at the object level, (SQL Developer is already equipped to handle this.)

Take advantage of schema compare tools repeatedly to weed out and eliminate any structural differences prior to deployments.

Test, test and re-test deployment scripts, preference is always against a production copy.

Tips for Simplifying Environments

Tablespace names the same across ALL environments.

Storage clauses all AUTO ALLOCATE

Column ordering the same.

Index checks to verify all the same across all environments.

Remove ALL DIFFERENCES that can impact simplicity when duplicating.

Consider differences to be bugs that require fixing.

If production is RAC, all environments that support it, (dev, test, QA) should also be RAC!

Cost Effectiveness

Price of implementation vs. the cost of failure.

Track accumulated savings in shortened outage windows.

Consider more frequent deployments, which can be performed quickly and confidently.

Tools that Can Assist You

SQL Developer, (Oracle)

Pl/SQL Developer, (All Around Automation)

TOAD Software, (Quest Software)

Redgate Deployment Suite for Oracle

DB Artisan, (Embarcadaro)

Object Level Scripting

Schema Comparison

Plug-in for many version control software pkgs.

Oracle Deployment Tools

Oracle Technology Network Website has documentation for a plug-in. applications possess the Weblogic Deployment tool.

Oracle Warehouse Builder


Use Middleware as a service as to rapidly deploy J2EE applications.

Auto deploy options for patching, upgrading, etc of Oracle internal code.

Production Deployments Best Practice Review

A practiced task before the actual event, at least 2-3 occurrences before going production.

All issues/bugs should be ironed out before ever going to production so

The Production Deployment is then a NON- EVENT!

Click to edit the title text formatClick to edit Master title style


Click to edit the title text formatClick to edit Master title style


Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline Level

Ninth Outline LevelClick to edit Master text styles

Second level

Third level

Fourth level

Fifth level