Operations (Middleware)---a Technical Reference Guide for Designing Mission-Critical Middleware Solutions

Want more guides like this one? Go to Technical Reference Guides for Designing Mission-Critical Solutions.

Operational management is critical for ensuring that all stakeholders take a proactive role in maximizing enterprise application health so that the value from investments in enterprise applications can be realized.

Composition, a technique for assembling a logical application across a number of disparate physical applications, leads to increased business agility, but also to new complexity that must be reconciled from an operational management perspective. Left unchecked, organizations will waste precious resources on production support as opposed to adding business value.

It is essential that all roles within an IT organization (and the business units themselves)—not just IT professionals—take ownership for operational management, including development, quality assurance, and decision support, such that the same rigor applied to development and deployment activities is applied to ensuring that the application or system can be managed in the most efficient and cost-effective manner.

When we think of operational management of applications, we think in broad terms of managing, maintaining, and monitoring the applications. High availability and disaster recovery are also typically grouped into operational management, but these are covered elsewhere.

Best Practices

Development

  • Prefer declarative configuration to imperative configuration for WF workflows and WCF services, and establish a change management policy including identification of development versus deployment time roles and responsibilities.

  • Understand governance policies around personally identifiable information, including PII.

  • Review best practices for Monitoring Distributed Applications for monitoring Microsoft .NET applications.

  • Enterprise Library is a suite provided by the Microsoft Patterns & Practice team that addresses many cross-cutting concerns. It is well documented and operations friendly. Consider fielding it with your solution, particularly in the absence of an existing logging, exception management, separation of concerns, and security tool.

Deployment

  • Prefer AppFabric for hosting and management of WCF and WF applications and understand its various capabilities.

  • Windows Server AppFabric support for AutoStart makes it a superior host to Windows NT Service for hosting WCF and WF services in every way. Use it whenever you can. See WCF and AppFabric Auto-Start for info on having your custom start-up initialization code called during process auto-start.

Management and Administration

Performance

Case Studies and References

Examples of successful architectures are described in the following case studies and white papers:

Questions and Considerations

This section provides questions and issues to consider when working with your customers.

Development

  • Consider whether your application is designed for scale-up or scale-out, what load (messages, transactions, requests, and records) your application is expected to be able to process, and at what rate it will grow.

  • Have you conducted capacity planning with the infrastructure team that will be responsible for provisioning and managing the application once it is deployed?

  • Have you considered the nature of the data that you will be persisting or transmitting and its relationship to personally identifiable information?

  • What is your instrumentation and error logging policy? Is this policy documented and well understood by the operational support team?

  • Design your .NET Tracking Profile early, and consider additional tracking profiles for WCF and WF provided by Windows Server AppFabric.

  • Recognize that not all support personnel will be well versed on how to manage, troubleshoot, and verify the health of your BizTalk Orchestrations, WF workflows or WCF services.

Deployment

  • Do you have a repeatable deployment process that is well documented and understood?

  • What is your strategy for patch management and upgrades?

  • How will you manage versioning, particularly for service clients/consumers?

Management and Administration

  • What level of operational management is needed?

  • Are the applications mission-critical, are they departmental applications, or are the applications somewhere in-between? The level of criticality of the applications can help determine the level of operational management needed.

  • Are the applications "out of the box" packaged software, have they been customized, or are they written "from the ground up" on Microsoft application platform foundational technologies? The level of custom work will many times affect the operations of the solutions.

  • Will third-party applications and solutions need to be managed as part of the overall business solution?

  • There should be proven, documented processes in place for the management, maintenance, and monitoring of all applications. This should include roles and responsibilities for escalation paths. Escalation paths should include internal escalations within your organization and external escalations to Microsoft and other third-party vendors on which your applications depend.

Performance

The goals of instrumentation/logging are typically diametric to performance. Think about how your instrumentation and logging policy will impact performance and consider support for verbosity levels to balance JIT information with performance demands.

Appendix

< Full URLS for Hyperlinked Text>