By Matthew
Romero, Technical Product Evangelist at SkytapMany enterprises rely on business-critical
applications running on IBM Power (IBM i (AS/400), AIX, Linux on Power) systems
in their on-prem data centers. Often, these applications have been modified or
customized over years or even decades to meet the unique needs of the business.
Moreover, the people that developed them may in many cases no longer work at
the organization. These factors not only make these applications more difficult
to migrate to the cloud as part of a modernization or digital transformation
strategy, but they also require organizations to consider how they will deal
with accumulated technical debt.
Recent third-party product offerings have made
a new solution possible in public clouds: migrate legacy or business-critical
applications to the cloud and run them there natively without extensive
modification. This can enable organizations to take advantage of cloud
scalability and agility for these workloads while also creating an opportunity
to slowly adapt and update those applications, paying off technical debt
incrementally and without the disruption or expense of widescale changes.
But first, let's talk about technical debt,
how it accumulates and how it can impact an organization's infrastructure and
operations.
While we'd all like to believe that technical
decisions are made in a completely rational manner, with an eye on the
downstream consequences, in reality, that's not always the case. Organizations
make changes to their software infrastructure in both planned and highly reactive
ways - to address a market need, to fix problems or adapt to changing customer
requirements or technology. While the implications of those changes may be
understood, sometimes they're not. Often near-term benefits or problem fixes
get prioritized over long-term consequences.
The distinction between intentional and
unintentional technical debt is important. By definition, intentional technical debt is incurred by
choice and normally documented, so IT teams down the line understand what the
issues are and what compromises may have been made to solve for an immediate
need in the past. Unintentional technical debt, on the other hand, could be the
result of mistakes, misunderstandings or just poorly written code. It's most
likely not obvious what the consequences are when changes are made, they may
not be easily discoverable and are, more than likely, undocumented.
Much like financial debt, technical debt must
be paid off. If it's not, then the debt can compound over time as additional
changes are made. The result? Problems become progressively harder to fix. For
older systems and platforms (like the IBM i/AS/400) technical debt carries an
additional complication: the teams that managed those systems may have long
since moved on or retired. The loss of institutional knowledge means that even
documented changes may not be simple for newer teams to comprehend.
Whether intentional or not, technical debt
carries costs and operational risks. It can impact the performance of
applications. And as more debt accrues, it can limit the ability of developers
to add new features and updates.
All of these issues add up over time. And it
leads many organizations to become reluctant to even try to migrate legacy
applications to the cloud.
But as mentioned previously, there are
solutions that enable organizations to extend - or "rehost" - applications by
moving them to the public cloud with minimal changes to code. Once in the
cloud, they can be updated incrementally using more modern software development
practices to start paying off technical debt. The essentially unlimited
capacity to replicate applications and data and test updates in a controlled
environment minimizes the risk posed by unforeseen or unknown problems lurking
in legacy code.
Over time, as technical debt is paid off,
those applications can even be modernized, with individual parts rebuilt and
adapted to take advantage of cloud native services and capabilities, including
increased performance and capacity on demand.
In the everyday world, financial debt can
limit your options; you may not be able to buy a house, finance an education or
start a family. Technical debt carries different but equally serious
consequences. Migrating legacy applications to the cloud can make it easier to
finally pay down that debt and build a stronger foundation for the future.
##
ABOUT THE AUTHOR
Matthew
Romero is the Technical Product Evangelist at Skytap, the leading cloud service
to run IBM Power and x86 workloads natively in the public cloud. Matthew has
extensive expertise supporting and creating technical content for cloud
technologies, Microsoft Azure in particular. He spent nine years at 3Sharp and
Indigo Slate managing corporate IT services and building technical demos, and
before that spent 4 years at Microsoft as a program and lab manager in the
Server and Tools Business unit.