With IT Operations worried that SOA performance management is teetering on the brink of chaos, can they find anything to love about SOA?
There is a lot to love about the flexible solution design approach that Service-Oriented Architecture (SOA) represents. SOA facilitates discoverable and reusable software services, which developers love because they need not recreate existing code. Indeed, all sorts of software services, from browser widgets to serious business assets (IBM’s SOA catalog for example) are now easily downloadable. As a result, the rate of software development will continue to rise meteorically.
SOA also facilitates the flexible automation needed to make business process management (BPM) agile. A key aspect of implementing an SOA is a loosely coupled integration platform which allows both processes and services (aka business functions automated by software) to change and evolve without affecting the core integration technology itself. Business process managers love this decoupling because they can redesign, simulate and optimize processes using software services like Lego pieces, while knowing that implementation will not take years to complete.
SOA provides the abstractions required to make enterprise application mashups feasible. Users love this because they can customize their own application interfaces, create their own content portals, and collaborate on their own terms without begging IT development groups for new screens or add-ons. Without an SOA approach, Saleforce.com would still be just an online CRM tool, instead of the enterprise application development platform it is becoming.
As far as I can tell, the only group that is left out of this party is IT operations, because SOA makes everything about their job harder. SOA is eroding the notion of an application as predetermined set of features delivered by a predetermined set of software running on a predetermine set of infrastructure. Instead an application becomes a changeable collection of changeable software services with transaction paths that are determined on-the-fly from business rules created by distant process managers. This sounds like chaos to IT operations, because, the old adage remains true – you cannot manage what you cannot see. It becomes extremely difficult to guarantee performance levels or troubleshoot problems without knowing the composition of a SOA application or the location of the components or specific transaction flows.
So how can IT operations jump on the SOA bandwagon?
I believe that three things must happen. Performance monitoring tools must become smarter, IT analytics must become more sophisticated, and IT processes must be automated flexibly and intelligently integrated.
First, monitoring tools must automatically learn about the SOA environment and understand how transactions are flowing through the composite of services. Most of today’s SOA applications have fairly straightforward business logic, so mapping transaction flows is usually a matter of reconstructing application communications. However these composites will become more sophisticated and when the business logic starts dynamically determining how specific transactions should proceed, then understanding the transaction path gets more complicated. Simply because two services are communicating doesn’t automatically mean that they are related to the same transaction. This were application service modeling solutions (ala ClearApp) step in. They investigate the business logic itself model and monitor all the possible transaction paths.
Monitoring tools must also get smarter about understanding the user environment. Don’t look now, but SOA-enabled Web 2.0 is the return (or revenge?) of client-server. Only this time around, the client is anything with a browser, the server is the Internet, and user interfaces are rich (ie widely varied in what is streaming to the user at any given moment) instead of thick. Troubleshooting end-user problems will be an exercise in determining how different portlets, widgets and feeds are affecting business application performance. Since everyone’s interface will be different, a network sniffer probably won’t accurately reflect the user experience, which makes client-based monitoring (dare I say agent?) necessary.
Secondly, root-cause analysis must become more sophisticated. Many enterprises have taken the first step by implementing solutions that map or model how various technologies interact to deliver a complete application or transaction. Operations teams use these maps to determine whether infrastructure events are impacting application performance. But we need some add-ons, for example, sophisticated “what changed” analysis. Most of the changes that occur in the environment don’t affect performance, the difficultly arises in identifying the few are really an issue – like straining to hear a soft-spoken person through a gaggle of loud conversations. In a recent conversation with Kosten Metreweli, VP of Product Marketing at Tideway Systems, he noted that his customers are asking for more than lists of what changed, they are looking for analysis of whether the configuration drift would affect particular applications. Doing that requires a combination of good application models and good configuration analysis.
Other good add-ons would be performance baselining so that you could rapidly identify abnormal behaviors as they relate to the whole composite application (its why BMC bought ProactiveNet) or automated forensic analysis (ala Integrien) to determine what abnormalities led to problems so you can use them as leading indicators next time around.
Last, but not least, IT’s processes must be intelligently integrated. Performance monitoring needs to be connected with service level management which needs to be connected to problem management which needs to be connected with change management and provisioning. SOA is all about making easier to connect services in different ways – if change is rampant then IT operations needs to know about it to deliver the promised service performance. This means IT processes need to interact with each other. But for this to work management vendors must make the integration between their products less fragile. If only there was a way to loosely couple the management software so that IT processes can be more agile…
…looks like IT operations will have to be on the SOA bandwagon in order to manage SOA applications.