cutimage - Fotolia
Onboarding a greenfield application isn't easy, but it's nothing compared to mustering the tangled mess of years of app code, patches, workarounds and customizations into a stable, high-performance production IT deployment.
Starting over with a new transaction processing application or customer resource management system isn't an option for the majority of enterprise IT shops. New apps join the portfolio -- whether added to capture a new market, through acquisition or business initiatives -- and the old apps never quite go away.
Enterprise IT and DevOps pros have developed application operations techniques in dealing with this mix of legacy and new apps running on production IT systems.
How do you choose which app model is best?
Despite the challenges of a diverse application maintenance docket, teams haven't dropped everything, picked up software as a service (SaaS) offerings and moved on with their lives. It's no accident that IT organizations manage a mix of custom-built, customized and off-the-shelf apps, in SaaS, hosted and dedicated deployments, both commercial and open source and in-sourced. Enterprises must choose what's best for a given scenario.
A lack of options for off-the-shelf commercial risk services and claims management applications led to "a fairly significant" custom-built proprietary app footprint for Bart Murphy, CTO at York Risk Services Group in Parsippany, N.J. The insurance services company uses SaaS and commercial software as well, choosing apps based on competitive advantage: build versus buy, and if buying, SaaS versus commercial package.
York Risk Services Group is in the middle of an app and infrastructure standardization initiative to eliminate redundant apps and pull business functions into the ServiceNow service management tool, which Murphy calls "ERP for IT," to make them scalable and automated on the back end.
Other companies maintain legacy apps for the sake of physical equipment.
"You might have to replace entrenched manufacturing equipment," to shed the ancient app that runs it, said Steve Lord, senior product manager for infrastructure at Ensono, an IT infrastructure management services provider in Downers Grove, Ill.
Application portfolios also swell through mergers and acquisitions. When the enterprise buys a company or takes on a new division, IT is usually stuck with their software. It's a management nightmare when everything is different and data is stored in different places, said Stephen Eaton, infrastructure technical lead at Dealertrack Technologies, a holding of Atlanta-based Cox Enterprises.
"What are we giving up? What advantage would we get in the market?" and other questions drive each app choice, Murphy said, warning IT pros to consider how much customization would go into an ostensibly off-the-shelf product. Customized commercial offerings are prohibitive to upgrade and support, so there is no clear advantage over in-house development projects.
How to manage the app zoo
Regardless of how you ended up with this sprawling field of apps of all shapes and sizes, application operations teams must efficiently and securely maintain them all with as little downtime and as much agility as possible.
One option is to standardize on containers. At Cox, Eaton set up all versions of software in custom Docker container images, with a handful of apps migrated to run in containers. His goal is to have 80% of the enterprise's apps standardized on containers within the year.
"The containers run on [Red Hat Enterprise Linux] RHEL Atomic hosts and [VMware] ESXi, with RHEL 7, Java, JBoss [middleware] and whatever that app needs to run," he said. To meet regulations on the enterprise apps, Eaton's team uses all private registries with images built from scratch.
The approach to application operations is two-pronged for York's Murphy. First, understand the business drivers and footprint of apps so that you can eliminate redundancies, and second, build out framework infrastructure to pull custom apps onto standard platforms or replace them. The ServiceNow platform pulls custom apps onto standard platforms or recreates the business functionality within them.
IT shops recognize there's only so much you can do with years of accumulated applications.
Justin Nemmersproduct owner for configuration management tool Ansible, Red Hat
"Legacy apps have challenges. We tackle them by not looking back but, going forward, you apply DevOps," said Vijaya Kokkili, director of quality at CommerceHub in Albany, N.Y. The company, which undertook a DevOps transformation for its e-commerce retailer support offerings, applies microservices and unit tests to app code in the existing portfolio where it makes sense, slowly breaking apart legacy monolithic apps. "You can't change the whole app quickly, but you can take small steps and incorporate standards where you can," she said.
Sometimes, faster commercial apps come out and the business can retire an app and replace its functionality. When you can't simply extract the database from an outdated app and input the data into a SaaS offering, the option is to rewrite the old app, which is painful at best and impossible at worse.
Encapsulating an operating system with virtualization gives enterprises the ability to keep those old systems. But it also makes you keep -- and maintain -- those old systems.
"It's a double-edged sword," Ensono's Lord said, but with encapsulated virtualization, the decision to re-architect an app for cloud or new hardware becomes business-driven and not forced by updates to the IT infrastructure and operating systems.
Sometimes, the right choice is to let the legacy system lie where it is.
"Legacy is a four-letter word in some organizations," said Justin Nemmers, product owner for configuration management tool Ansible at Red Hat. "But that legacy app makes up 80% of our revenue, so don't speak poorly of it."
DevOps to the rescue?
Application operations skills in the IT team are an asset to the application owners, Murphy said, from choosing the app model to maintaining and improving an app's functionality.
"You don't want to be an admin of a SaaS console when that's make or break for your business," he said. "Capability development within IT matters." As-a-service cloud-based apps can slow down the enterprise's ability to adjust to market changes, and the cost might also prohibit innovation.
DevOps is about engineering practices as well as collaborative decision-making. DevOps teams take care of old products in addition to new development at Dealertrack and CommerceHub. Whether software updates move to production every month, every six weeks, every two weeks or faster, the ability to automate builds, test and integration is what increases innovation without creating defects.
Meredith Courtemanche is a senior site editor in TechTarget's Data Center and Virtualization group, with sites including SearchITOperations, SearchWindowsServer and SearchExchange. Find her work @DataCenterTT or email her at [email protected].
Easier ways to maintain legacy apps
Modernize legacy systems with the cloud
A guide for moving away from legacy apps