Identifying and overcoming monitoring and management challenges in the SOA
The very nature of an SOA involves the implementation of services that are distributed and loosely coupled, and thus monitoring these services is complex due to the involvement of disparate systems that may include external systems and external resources (for example, messaging queues, databases, and so on). Tracing transactions across a loosely coupled implementation, particularly if it involves invocations to external applications, is extremely complicated.
The reusable nature of a SOA increases the importance of managing availability and performance of these services and greatly increases the need for a closed loop governance. In order to achieve the desired quality of service (QoS), each service endpoint must literally be managed like a resource. Managed services should have near zero downtime, measurable performance metrics, and a defined service-level agreement. In a composite service infrastructure, it is required that you monitor and manage the end-to-end view of the systems as well as provide detailed information about performance and availability metrics of individual services. Each part of the overall SOA system can appear healthy while individual service transactions can appear like they are suffering.
Note
Tracing transactions across a loosely coupled implementation, particularly involving multiple external systems and resources, is extremely complicated.
Another important aspect of SOA monitoring is auditing and logging. The distributed nature of SOA makes a standardized auditing/logging approach difficult to implement. In addition to monitoring services in real time, an administrator is also required to perform standard administrative duties such as health checks, taking backups, deploying code, tuning performance, purging old instance data, and more. In general, SOA infrastructure administrators are swamped with the following tasks and activities:
- Performing health checks of servers and infrastructure
- Managing multitier transaction flows some of which are as follows:
- Spanning shared components/services
- Deploying multitier transactions across several tiers in different containers
- Managing multitier transactions across the enterprise
- Obtaining performance metrics and visibility of SOA services:
- Obtaining performance metrics beyond generic Java classes and methods
- Obtaining framework and metadata visibility
- Obtaining specific knowledge of the Oracle platform
- Maintaining control over configuration changes
- Tuning the performance of a service infrastructure
- Performing time-consuming administrative tasks, which include:
- Setting up, provisioning, and patching environments
- Code deployments
- Cloning and scaling up
- Backups and restores
- Purging and cleanup
- Troubleshooting faults and exceptions
- Policy and security administration
This book intends to provide a thorough understanding of how to perform each of these tasks and activities as an Oracle SOA Suite 12c administrator.