5 Steps to Eliminating Database Change Risk

WHITE PA PER
5 Steps to Eliminating
Database Change Risk
5 Steps to Eliminating
Database Change Risk
In new research conducted by Simon Management Group (SMG) among Fortune 1000
companies, we’ve learned that two-thirds of change requests require a schema update.1
Updating the schema carries a 78% probability that your application will “break”
somewhere along the release path to production.
If you are currently managing your schema changes manually, you are setting
yourself up for unnecessary risk in your application lifecycle.
Enterprise Risk Management has gained a lot of attention
recently, especially since the financial crisis of 2008. Groups
like the Committee of Sponsoring Organizations (COSO), a joint
initiative between accounting organizations, and the International
Organization for Standardization, ISO, have published frameworks
for managing risk in the enterprise. These frameworks bear
many similarities to the U.S. Army’s process for managing risk—
Composite Risk Management.2
Intuitively this makes sense—why expend the effort to analyze the
nature of risk as it applies to the enterprise, when one can adapt
a comprehensive methodology that combat leaders have successfully
employed for centuries?
Updating the schema
carries a 78%
probability that your
application will “break”
somewhere along the
release path to
production.
This white paper presents an overview of Composite Risk Management (CRM), and
discusses the process of updating your database schema within the application release
process as a practical example.
1 Simon Management Group (2012). Datical Market Validation Study. Austin, TX.
2 United States Army (2006). FM 5-19, Composite Risk Management. Washington D.C. Headquarters,
Department of the Army.
5 Steps to Eliminating Database Change Risk
2
Overview: Composite Risk Management
There are several guiding principles for applying the framework—how do they apply to your
application lifecycle?
•
Integrate CRM into all phases of missions and operations – Every phase of your
application lifecycle has unique risks associated with it.
•
Make risk decisions at the appropriate level – Manage risk at the appropriate level,
and know when an issue must be elevated.
•
Accept no unnecessary risk – Accept no level of risk unless the potential gain or
benefit outweighs the potential loss.
•
Apply the process cyclically and continuously – The process of managing risk is
never complete.
•
Do not be risk averse – At the heart of risk lies uncertainty, which also carries an equal
chance for opportunity.
The CRM framework consists of five steps:
1.
2.
3.
4.
5.
Identify hazards
Assess hazards to determine risk
Develop controls and make risk decisions
Implement controls
Supervise and evaluate
Identify the Hazards
Some common hazards that organizations typically face when
updating their database include:
Risk occurs when the
state of the database
is unknown. Will
the changes that
“worked” in your dev
environment also
work in QA, staging or
production?
HAZARD: Misalignment of version numbers between application and database code
• Risk occurs when only certain changes or feature requests will be deployed in a
release—someone must manually determine what gets deployed.
5 Steps to Eliminating Database Change Risk
3
HAZARD: Database configuration “mismatches” across
environments
• Risk occurs when the state of the database is unknown—will the
changes that “worked” in your development environment also
work in QA, staging or production?
HAZARD: Too much information in a single database release
• Risk occurs when single changes contain too much
information—have you ever run across an SQL script containing
2,000 lines of code? If a problem occurs, someone will have
to manually inspect those lines to locate and troubleshoot
the issue.
Have you ever run
across a SQL script
containing 2,000 lines
of code? If a problem
occurs, someone will
have to manually
inspect those lines
to locate and troubleshoot the issue.
HAZARD: Troubleshooting the database manually
• Risk occurs when an issue is identified and you can’t easily
eliminate the database as a cause—productivity is decreased
and all too often the project is delayed.
HAZARD: Uncertainty about the impact of database changes
• Risk occurs when there is drift between environments—how do you know that what
you intended to occur in production will actually execute correctly?
Assess Hazards to Determine Risk
Hazards are assessed and risk is assigned in terms of probability and severity
of adverse impact of an event/occurrence.
So, there are two key inputs—the probability of a hazard occurring, and the hazard’s
impact on the task at hand. The intersection of these variables determines the level of risk.
The military employs a tool called a Risk Assessment Matrix for this purpose (see Figure 1).
Risk Assessment Matrix
PROBABILITY
SEVERITY
Frequent
Likely
Occasional
Seldom
Unlikely
Catastrophic
Extremely High
Extremely High
Critical
Extremely High
High
High
High
Moderate
High
Moderate
Low
Marginal
High
Negligible
Moderate
Moderate
Moderate
Low
Low
Low
Low
Low
Low
Figure 1
5 Steps to Eliminating Database Change Risk
4
Probability should be scientific, based on industry benchmarks or metrics from your
organization. Severity is largely subjective and should be defined according to the impact
to your organization. Now, let’s assign risk to each hazard according to the matrix (see
Figure 2).
TASK - Update the Database Schema
HAZARD
PROBABILITY
SEVERITY
RISK LEVEL
Frequent
Negligible
Moderate
Likely
Marginal
Moderate
Too much information
Occasional
Critical
High
Manual troubleshooting
Likely
Critical
High
Uncertainty about impact of changes
Likely
Critical
High
Misalignment of version numbers
DB configuration “mismatches”
Figure 2
When assigning risk to the task (i.e. updating the database schema), the rule of thumb is to
use the highest level identified from individual hazards—updating the schema is assigned a
risk level of “High.”
Develop Controls and Make Risk
Decisions
Controls are developed which will either reduce the risk of a hazardous event occurring, or
eliminate the risk entirely. To be effective, each control must meet the following criteria:
1. Suitability: The control must remove the hazard or mitigate residual risk to an
acceptable level.
2. Feasibility: The organization must have the capability to implement the control
3. Acceptability: The benefit gained must justify the cost in resources and time.act
5 Steps to Eliminating Database
Change Risk
Hazards are reassessed to determine the residual risk level (i.e. level of risk after the control
has been implemented). Risk decisions are based on residual risk only. If residual risk is
higher than acceptable by management, additional controls are developed and the hazards
reassessed.
5 Steps to Eliminating Database Change Risk
5
HAZARD: Misalignment of version numbers between application and DB code
CONTROL: Treat database changes like Tier 1 artifacts
• Check database changes into your source control repository
• Synchronize database changes with application code
HAZARD: Database configuration “mismatches” across environments
CONTROL: Maintain awareness about the state of the database
• Maintain a log that tracks the current state of the database
• Maintain a log that tracks what changes have been made to specific databases
HAZARD: Too much information in a single database release
CONTROL: Deploy database changes as atomic units—cohesive units with your
application code
• Break database changes down into the smallest units possible
HAZARD: Troubleshooting the database manually
CONTROL: Provide proof that the database is not at fault
• Require reporting within your organization to build an audit trail which can be quickly
referenced
HAZARD: Uncertainty about the impact of database changes on production
CONTROL: Maintain awareness concerning drift in your environments
• Employ automation that provides a log of changes made to specific environments
• Strive to ensure environment integrity and consistency
Now, we reassess each hazard and determine the residual risk (see Figure 3). Once
again applying our rule of thumb, updating the database now carries a residual risk of
“Moderate.” If management decides that this is acceptable, then we are complete with our
risk assessment.
TASK - Update the Database Schema
HAZARD
INITIAL RISK
LEVEL
CONTROLS
RESIDUAL
RISK LEVEL
Misalignment of version numbers
Moderate
• Check DB changes into source repository
• Synchronize DB changes with app code
Low
DB configuration “mismatches”
Moderate
• Log the current state of the DB
• Log what changes have been made
Low
Too much information
High
• Break DB changes down into atomic units
Low
Manual troubleshooting
High
• Require reporting to provide an audit trail
Moderate
Uncertainty about impact of changes
High
• Log environmental changes
• Ensure environment integrity/consistency
Moderate
Figure 3
5 Steps to Eliminating Database Change Risk
6
Implement Controls
[Datical DB] empowers
This is why your manager makes the big bucks—he’s the one
who has to enforce the controls. We’re betting that he tells you
that you’re now in charge of your organization’s risk management
process.
your developers to
Supervise and Evaluate
application updates,
Now, all you have to do is design and implement four daily logs and
approach so they don’t
accurately and efficiently
update the schema
simultaneously with their
using an object-oriented
a reporting system. Oh, and you’ll also have to go to everyone every
have to worry
day for at least three months to make sure that they’re using the
SQL syntax.
logs and reporting system correctly. After a period of time, you’ll
also have to check all of the logs against actual data to evaluate
whether the system is working. If it worked, you should immediately buy a Powerball ticket.
If it didn’t work quite the way you planned, it’s time to troubleshoot the process, identify
the discrepancies, and begin anew…
about
Repeating a key point:
“...controls are developed which will either reduce the risk of a hazardous event occurring,
or eliminate the risk entirely.”
Updating schemas is inherently risky. Developing a robust logging and reporting system is
time-consuming and frustrating in addition to being risky. Why not avoid the heartache and
eliminate the risks entirely? That’s where Datical comes in.
Datical DB
Datical DB is a database change management solution, based on Liquibase, specifically
developed to help you eliminate risk and uncertainty when updating your database as
part of the application release process. Unlike the current DBA tools available, Datical DB
employs a holistic approach while seamlessly integrating with your current process and
tools. It standardizes the process of updating your database schema so that you can keep
application and database code in synch throughout the application release process:
•
Maintains an automated running log of all executed database changes and compares
database configurations to provide instant visibility into the current state of your
database.
•
Organizes and tracks your SQL scripts while providing the entire team with visibility into
what’s happening in the database.
5 Steps to Eliminating Database Change Risk
7
•
Empowers your developers to accurately and efficiently update the schema
simultaneously with their application updates, using an object-oriented approach so
they don’t have to worry about SQL syntax.
•
Augments your DBA’s ability to facilitate the process, troubleshoot problems, and
recover from disaster.
•
Enables you to eliminate configuration drift between databases and perform fresh
installations in a matter of seconds.
•
Most importantly, it provides you with proactive environmental intelligence concerning
the impact of changes on the database, before you deploy.
Instead of providing yet another framework that requires you
to spend a lot of money, time and effort to change your existing
systems but still doesn’t provide change integration, Datical DB
simply works with the systems you have. Whether that’s Source
Control, Build Systems, Testing Systems and existing Automation
Frameworks—Datical DB makes it very easy to reduce errors
and application downtime, speed time to market and lower your
cost by:
Datical DB makes it
very easy to reduce
errors and application
downtime, speed
time to market and
lower your cost.
•
Eliminating database change risk and bottlenecks in your
develop-test-deploy process
•
Accelerating releases and automating deployment processes
•
Knowing how changes will impact production and any other environment
•
Improving compliance with auto-documenting change management processes
•
Increasing quality of service with a holistic, repeatable, database-agnostic approach
We invite you to learn more at www.datical.com.
5 Steps to Eliminating Database Change Risk
8
About Datical
Datical solves critical business pains by leveraging proven open source projects, such as
Liquibase. We enhance and extend open source projects while removing complexity. We
make them easy to use. We make them open. We make them flexible, secure and fully
supported.
But first, we complete extensive market validation research so we know we’re solving the
right problems and adding the right features, in an easy to use, non-disruptive way.
We’re not interested in checking off boxes on a feature comparison checklist. We’re focused
on solving our customer’s most complex database change problems, protecting critical data
and reducing risk.
That’s how we deliver serious value. And our customers see quick results.
We believe it’s because we’re fanatically market driven and have taken a different, modelbased approach in architecting our solutions. This makes it possible to fuel automation with
environmental intelligence, visibility and flexibility—extending the very best open source
projects for a future proof enterprise.
www.datical.com | [email protected] | Tel: 949.DATICAL
Copyright ©2017 Datical, Inc. Datical, all products prefaced by the word Datical and the Datical logos are either registered trademarks or trademarks of
Datical, Inc. in the United States and/or other countries. All other products mentioned are either registered trademarks or trademarks of their respective
corporations. 201701
5 Steps to Eliminating Database Change Risk
9