everythingpossible - Fotolia
The challenge with new and shiny ways to execute against DevOps-centric operational models is that they're often devoted to applications and services built for cloud-native environments. While I certainly embrace this change and see it as the ideal strategy here on out, there's still a rather large elephant in the room: traditional enterprise applications.
Based on the ever-popular "80/20 rule" and my own experiences, most data center applications weigh the operations team down with care-and-feeding requirements. Plus, the historically caustic relationship between software developers and application owners can create friction around efficient service delivery. So, to modernize legacy applications, find ways to introduce DevOps -- people, process and tools -- at a scope in which data is both protected and recoverable across the enterprise and cloud landscapes in a positive and impactful way.
Data manage the DevOps way
Data management has long since been a thankless job, often devoid of financial investment or operational focus. It's no wonder that when pursuing the Zen of DevOps, engineers across development and operational teams get frustrated and hit many speed bumps in the form of declarative, policy-centric approaches for backup, recovery and retention of their data. If you've not had to deal with this, I can sum it up in two words: not fun.
To modernize legacy applications with a DevOps twist requires action:
- Start simple. Pick a small number of simple applications you consider to be operational low-hanging fruit. For some reason, folks always want to start with the hardest applications that require the most effort.
- Get social. Hold a small, informal event in which there is a clear agenda to discuss the current state and desired state of the simple application with stakeholders. I usually do this over pizza, since it's easy to satisfy both carnivores and vegetarians.
- Shared vision. As you express the pain points and desired vision for the application, the creative juices will get going. In many cases, no one at the table actually designed or configured any part of the currently running system and everyone has frustrations with the current state. A shared vision to modernize legacy applications lets you approach the architecture with fresh eyes and new focus.
- Amplify the buzz. Going back to my pizza example, I first started "Pizza Fridays" by inviting three ops engineers and five developers. It was awkward initially, but as we came to enjoy the food and conversation, others took notice of our positive vibes and inclusive culture. We didn't invite any managers and so kept politics out of the room. Soon, folks attended Pizza Fridays with a mark of honor. Pull models really work.
Data management options
Once team members start discussing how to modernize legacy applications and their vision for the future, the next step is to bring in smart, forward-thinking technology options. Sadly, the data management ecosystem is rife with services that are counterculture to DevOps' holistic goal to deliver services in an ongoing basis.
Legacy organizations typically construct services for highly trained, deeply technical operators with little to no allowance made for documentation, open RESTful APIs or other table-stakes items needed for highly automated and self-service needs.
Give your APIs a break
I strongly suggest seeking out vendors laser focused on data protection. They need to approach traditional applications as simple objects that can have intelligent policy constructed out of business-language service-level agreements (SLAs). To modernize legacy applications, the entire service should sit on a fully developed and completely open set of RESTful APIs, so it is simple -- and elegant -- to integrate into any tool set, framework, language or management platform you need. To do otherwise is to shoot your DevOps initiative in the foot and stall the forward momentum.
Here are some other data points to assess and tackle:
- Break enterprise silos. Operational teams often struggle to work across their technical domains of expertise. Part of the root cause is teams have a high volume of work with little transparency between them.
- Transparency, transparency, transparency. Keeping your ops staff in the dark is another mistake. Trust is earned through sharing.
- No project end date. Working on your DevOps model, especially as it relates to ongoing operations and tough culture issues, is a project that is literally never finished.
- Remove the friction. Developers find infrastructure a point of friction and simply want to test, iterate and deploy against a looming list of backlog items for their sprint. Try to offer them a self-service catalog of simple SLAs that can be programmatically applied to both traditional applications and cloud-native workloads.
What's the net result of modernizing legacy applications? The operations team can then offload the vast majority of their lever-pulling grunt work. Ops can hand this load over to a system that works with intelligent policies across multiple workloads. A modern legacy application should foster a culture in which data management visibility is the new normal.
Every enterprise I've worked at has required a constant balancing act to embrace digital transformation while still keeping the lights on. And to modernize legacy applications, you need to start now.