At a recent DevOps presentation
by Gene Kim I was reminded of some startling facts on what differentiates high
performing IT organisations from everyone else.
High performing IT organisations do not have code freezes, in
fact they make more changes during the periods that would otherwise be code
freeze periods. This seems counter
intuitive, how is this even possible? A
code freeze typically occurs at peak periods of customer activity and hence no
one wants to make changes which might upset the running of live
applications. Sounds sensible but what
it really means is that just at the very time when changes could have the most
beneficial impact you don’t make them because of a more fundamental issue, you
are not able to make changes safely, in other words your code release process is fragile.
Agile development advocates that
you can make changes frequently, but for that you must be able to make changes
safe in the knowledge that these changes will not regress the functionality or
performance of live applications. High
frequency changes also means you can experiment and prove the value of
alternative solutions in production, testing not the stability of the change
but the suitability of the change.
Agile development teams don’t
measure releases per year but deployments per day. A deployment is any change to any component
of the application, environment or infrastructure. Which reminds me of another startling
observation, another top predictor of IT performance is “version control for
all production artifacts”. We all know
that there are just as many configuration changes as there are source code
changes and version control allows you to provision, compare and debug
holistically. The first question anyone
asks when something breaks is “what changed?” which is relatively easy to
answer for source code using source code control but is usually difficult and
time consuming to answer for everything else.
So how does Delphix virtual data
help with agile development? A key to
implementing agile development is making environments available early in the
development cycle. For database based
applications that means provisioning a full read write copy of the database for
every developer, tester and batch test activity. A de-sensitised copy of the production
database is a crucial artifact in the set of components which make up a
non-production clone environment. For most
customers this is just not feasible, but with Delphix full database copies can
be version controlled, can be versioned in seconds and can be provisioned or
switched between versions in minutes. Delphix
allows you to manipulate and control databases versions as quickly and easily
as source code files.
The example below shows how Delphix
allows developers to submit regression tests on demand by automating and accelerating
the data provisioning process in line with automated test suites. Making environments available early in the
development lifecycle allows a developer to get fast feedback on the success
and implications of his or her proposed change. You also get better value from your test environments as a greater ratio of time is spent running tests rather than preparing to run tests.
With more tests run more frequently and earlier in the cycle, the net result
is that problems are discovered early and fixed more quickly, as illustrated
below.
Virtual databases are a key
enabler to Agile Development, allowing IT to produce higher quality releases,
faster. Be Agile not Fragile.
No comments:
Post a Comment