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.
Have a solid, repeatable deployment process in place.
See Deploying an Application for AppFabric deployment.
See Deploying an Application in the BizTalk Server Operations Guide for BizTalk applications.
Have an application update and versioning strategy in place.
See Versioning NET4 Workflow Services in Windows Server AppFabric and AppFabric Reference Implementation: Managing the LifeCycle of a WorkFlow Service for AppFabric.
See Updating an Application in the BizTalk Server Operations Guide for BizTalk applications.
Let Windows Server AppFabric manage workflow and durable service Persistence.
Understand locking strategies for workflow applications and workflow services, particularly Instance Lock Retry policies.
The Windows Server AppFabric Architecture Guide provides guidance on how to optimize the architecture of a Windows Server AppFabric system. This guide also includes information on the components of an AppFabric solution and the platform dependencies involved.
Understand scale-out scenarios and refer to the BizTalk Scale Out Guidance to comprehend the scale-out topologies and management considerations.
Refer to the SQL Service Broker Planning and Architecture Guidance and Deploying SQL Service Broker when considering Microsoft SQL Service Broker for pub-sub.
Refer to the SQL Service Broker Planning and Architecture Guidance and Deploying SQL Service Brokerwhen considering Microsoft SQL Service Broker for pub-sub.
Management and Administration
AppFabric delivers a superb management and administration experience when compared to self-hosting or IIS/WAS hosting. See Managing Windows Server AppFabric for more information.
Use PowerShell Cmdlests for Windows Server AppFabric as an alternative to the UI, or as a way to automate routine management tasks.
Always prefer Windows Server AppFabric for Monitoring and Troubleshooting your WCF services and WF services. See Monitoring Applications in the AppFabric documentation as well as the following blog entries:
MSMQ is still pervasive in the enterprise. Understand key operational scenarios by referring to guidance for Managing MSMQ.
- For using MSMQ with WF workflows, see Fronting long-running WF Services with MSMQ, the right way.
Do not underestimate the complexity of maintaining a BizTalk Server footprint. See Managing BizTalk Server and Operations Checklists for guidance.
Microsoft System Center enables IT organizations to better manage their servers and applications and automate many management tasks. System Center Operations Manager helps provide for end-to-end service management of your applications. Most Microsoft products, and many third-party products, have a System Center Operations Manager Management Pack available:
Management Pack for BizTalk Server
Management Pack for Windows Server AppFabric (which includes monitoring for AppFabric Cache)
AVIcode technologies (enable in-production, always-on root-cause monitoring and analysis of Microsoft .NET Framework-based applications).
Your custom applications can also have their own, Customized Management Packs built by your development and/or IT organizations.
The BizTalk Server Operations Guide provides BizTalk Operations checklists for operational readiness, routine maintenance, and routine performance tasks. The Operational Readiness checklists cover platform configuration (including the applications that BizTalk Server depends on for services), deployment, availability, monitoring, and testing. The BizTalk Server Operations Guide also has individual sections for managing, monitoring, and maintaining BizTalk Server.
Performance
Event Tracing for Windows (ETW) will provide the absolute best performance for monitoring your applications, but configuration can be complex. Review ETW FAQ for common questions and solutions.
For instrumenting high-performance BizTalk solutions using ETW, see Instrumentation Best Practices for High Performance BizTalk Solutions.
Throttle WCF and Workflow Services to align load with available resources and prevent denial of service attacks by adjusting Concurrent Calls, Sessions and Instances on the Service Host.
Opting for compression or non-text encoders to optimize wire transfer is always at the expense of the ability to easily troubleshoot message payloads on the wire. Understand this liability and consider a toggle that allows for inspection of message payload.
Transport security performs better than message security. See WCF Security Guidelines for implications involved in security choices.
Case Studies and References
Examples of successful architectures are described in the following case studies and white papers:
BizTalk Server architecture, configuration, and capabilities posters
Jettainer (AppFabric)
Aderant (AppFabric)
Expertime (AppFabric)
QLogitek (BizTalk)
British Energy (BizTalk)
Unilin (BizTalk)
Microsoft (System Center Operations Manager)
Tine (System Center Operations Manager)
BizTalk in a multi-tenant environment
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>