A couple of months ago, I was at an Oracle event in Redwood Shores. The event brought together some of Oracle’s marquee customers & Fusion middleware product management team to discuss challenges/issues with regards to SOA, BPM, infrastructure management... and provide an opportunity to learn more details about FMW roadmap and offer feedback…
I seized the opportunity to talk to several customers about their SOA implementation. Most of the customers (small –> large) had passed the initial stage of SOA readiness assessment, transition planning, and initial service portfolio development. They had already implemented and deployed multiple enterprise services into production. The most common issue related to SOA infrastructure management, and making sure it offers the level of resiliency and availability their customers demanded.
SOA introduces additional layers in the already multi-tier distributed applications. First, you have the SOA management layer that handles performance management and policy enforcement. Next, you have the Enterprise Service Bus (ESB) that abstracts service endpoints, and offers integration logic intermediation between service consumers and providers. Finally, there may be integration adapters used to facilitate semantic and protocol integration with backend applications (i.e. SAP). During a service request, all of these components must be available and fully functional. Otherwise, the request fails and either the infrastructure must handle automatic management of the exception and re-routing of the service request message to maintain SLAs or the client must re-try the request upon receiving the exception.
Another area of concern is related to capacity management. It is common practice to use high volume / peak load metrics to calculate capacity. The result is over-provisioning of resources (AKA server proliferation) and low utilization of assets. In terms of IT financial management, the impact is monumental from increased hardware and software licensing costs to additional FTEs to configure & maintain the assets, and finally data center floor space, power consumption, …
So, many customers are already in their next level of SOA maturity. They are focused more sharply on SOA operational governance. This is where “Cloud” and SOA converge.
Before we get to that, let’s do a quick review of “SOA business value”.
SOA promises lower IT costs, reduction of IT complexity, business agility, etc… However, rarely is SOA business value measured against metrics related to the above. The universal measurement for SOA in many organizations continues to be “service reuse”. The more reuse, the better…Often, it is not even clear at what level of the organization reuse occurs to map and measure the value more clearly, but that’s a whole different blog…
For SOA to deliver lower IT costs, reduction of IT complexity, and agility, it is required to change the infrastructure to be more adaptive and resilient. Unfortunately, in my experience, this is often not properly considered in SOA programs. The vendors give you an ESB, and you’re good to run :-[
The “cloudification of SOA” involves the following capabilities:
- Dynamic Resource Management – Rather than over-provisioning to meet peak demand, a private Cloud infrastructure can enable demand-based provisioning. This enables the enterprise to utilize IT assets more effectively and realize reduction of IT costs in terms of HW/SW/datacenter. For some workloads, policies can be established to spill over to public Clouds like Amazon (hybrid Cloud).
- Automation – Automation is a key component of Cloud infrastructure. Automation is used in a variety of scenarios from automatic scaling to align with resource demands as well as automatic error/exception recovery. This is a key enabler for service level management.
- Performance Management – Performance visibility and management across different layers of the stack is fundamental to any Cloud infrastructure. Without it, there is no DRM or automation. Once the organization is able to capture and correlate performance metrics across different layers and map them to a service request, they can do a better job of capacity management. This also helps SOA with service performance management and SLA.
- Self-Service capabilities – Finally, this is an area that may not be readily consumable in all organizations, but it is a vision. The idea is simple. The goal is to bring the same self-service capabilities available in public Clouds to the enterprise (i.e. self-service service registration, self-service provisioning, self-service resource configuration and policy specification, etc…) Imagine an environment where you can go to a self-service portal and request a server from a list of pre-configured images, click a button to provision a server in a few minutes rather than a few weeks that typically takes for IT request review/approval, procurement, HW installation and configuration, and delivery… Many companies are looking at this approach or have already implemented initial self-service portals to enable self-service capabilities. In this scenario, it is possible to communicate IT agility using concrete metrics (i.e. average time to provision a server, # of demands serviced / week, etc)
Here is a conceptual diagram to illustrate the above:
So, to summarize, SOA operational governance and management poses difficult challenges in the enterprise. The common approach to SOA does not address infrastructure issues to enable realization of SOA business values. A Cloud Computing approach can help organizations with that.
I would be very curious how many are looking at Cloud as a progression of their SOA programs, and if they are looking at self-service capabilities. Look forward to comments or questions.