Cross-cutting concerns may be the next big step for IT

The term "cross-cutting concerns" has been around for a long time in the computing world, and it may be on its way back into IT infrastructure.

As data centers invest in modern infrastructure -- virtualization, the cloud, DevOps, etc. -- perhaps it's time to give another look to cross-cutting concerns that need to intertwine.

For my money, that's where the next set of systematic IT improvements will appear. Cross cutting is a longstanding concept in computer science that refers to the concerns or parts of a system that are interwoven with, and distributed among, other concerns or parts of the system.

Cross-cutting is often seen as a negative, a label for things that work against a clean separation of concerns such as security, data integrity, transaction management and logging. Cross-cuts are, to some, necessary evils. We dislike their tangled-up, spread-out nature, but we haven't figured out how to do without them.

But there's another way to see these cross-cutting concerns: They can improve multiple areas in one fell swoop. Done right, cross-cuts are unifying, multipurpose tools that reduce the number of different skills, products and efforts we need. As I look at modern data centers, I see cross-cutting opportunities and wins all the time.

Cross-cuts go beyond standardization. Look at how data centers now use system virtualization, point-in-time storage snapshots and software version control systems. In the last ten years, they've massively overflowed their original banks and come to underpin broad swaths of how apps and services are developed, delivered, deployed and managed. And that's been a very good and helpful thing.

One of my recent projects, for example, used the Mercurial distributed version control system. In addition to its primary labeled use (saving revisions to application code), Mercurial helped the team deploy new production servers, clone development and testing servers and replicate the primary database. It aided in in-house and off-site backup and in restore of production data, as well as change management, performance scaling, availability failover, system and app configuration management, and last but not least, security auditing.

While some of these uses overlap, it's still a remarkable range of operational tasks—especially for a developer tool. And note its off-label uses weren't low-quality shoehorns. It did incremental backup and data replication as well as (and according to one benchmark, actually faster than) a popular, well-regarded tool for just that one purpose.

On the hunt for cross-cutting concerns

In today's interconnected IT world, there are many opportunities to have a technology from one domain (storage deduplication, say) be a credible solution to a problem in another domain (virtual machine proliferation, for example). Also, the virtualization, consolidation, cloud and shared service infrastructure models have broken down IT silos. IT's different tribes now have the motivation and ability to genuinely cooperate.

Instead of looking for problems that you could solve with a specialist tool, take a broader view and look for situations with similar issues that could be solved with a common tool. Then focus on the common tool, which you can learn from and invest in for multiple beneficial outcomes.

Why have a different management console for every separate thing being managed? Why have a different hardware frame for compute, storage, networking and other functions? Does it add value, or just variation and complexity? Why have an app supporting many different, platform-specific graphical user interface toolkits, each with its own platform-specific developer tools? In the era of rich Internet applications, couldn't a single Web app suffice?

The cloud gang clearly has this down. They eagerly devise new core services -- Google's BigTable as just one example -- that cross-cut many application concerns. Web frameworks like Ruby on Rails and Django have the same bent. It's time to reimagine and re-factor many other IT infrastructure and operational issues.

Finding interconnected requirements from diverse activities isn't entirely trivial, but they aren't hard to find either. Shops virtualizing servers, for example, mostly wanted to save money; they discovered a dozen or so subsidiary uses and advantages after the fact. If you want to wait for their natural emergence, just be open and ready to take advantage. But if you want to see benefits sooner, go looking for those cross-cuts. Happy hunting!

Let us know what you think. Write to us at [email protected]

Dig Deeper on Data center capacity planning