I sometimes think how difficult our job is, with constantly changing technologies, new tools, new versions of old tools, new and old vendors, acquisitions, all coming out on different schedules, more or less often than each other. IT infrastructure folks like us have to keep up with all of this, figure out how to make stuff work together and help form a strategy about how to make the best of it all, how do we keep up with it all?!?
One method I've always found useful when I'm learning a new tool or technology, is to break things down into building blocks. What are the tiers of an application? Client, server, agent etc. What function or functions does each component perform? For each component, how does it function? How does it start, run and stop? How do you configure it? Does it depend on any other technologies or tools? If so, you can break those down too.
So, rather than seeing a complex array of tools across an IT environment that seems to daunting to deal with, you see a myriad of individual components that are actually each pretty simple.
The other thing that I've realized is that there is actually very little that is truly "new" in any "new" technology. An operating system is an operating system, whether it's Windows, Linux, UNIX, OS/400 or z/OS. When you break them down into components, they do the same types of things - starting, managing and running processes; handling various types of hardware; receiving input from users and sending output to them. Is TCP/IP really that different to SNA on the mainframe? Well, obviously in many ways, yes, but in the sense that it manages how applications and devices talk to each other, not really. Similarly with a concept that's on everybody's lips these days - virtualization. IBM and many other mainframe vendors had hypervisors and virtual machine concepts decades ago. Obviously newer iterations of a technology bring an innovation to bear, combine a concept that's been around a while with other, newer, technologies to differentiate themselves, but at a high level it's really the same thing.
Why does this matter? Well, when you've broken something down into its components, most likely you'll realize that you've already seen most of them in some other guise. So, all of a sudden that daunting collection of IT stuff is mostly a set of building blocks you've seen before.
Then it dawned on me that this reminded of something else - how we approach automation. The configuration object dictionary in Bladelogic Server Automation breaks servers down into the building blocks that make up that server. A BLPackage is a way of representing the components that make up a piece of software or business application. Component templates are similar. This can also extend into Atrium Orchestrator - adapters, adapter modules, operations actions and so on, are based on breaking an automated IT process down into its' component functions. Once you have a module that performs a function, you can recycle it in many other workflows and processes.
So that's how I approach understanding the complex universe of technology we all face every day. And by a handy coincidence, the same approach helps in designing solutions to simplify that universe!