Operating .NET-based Applications
Download |
Introduction
This book gives you the best information available about monitoring and operating applications based on the Microsoft .NET Framework. If you are an administrator with responsibility for application operation and monitoring, then this book is for you. However, although the primary focus is infrastructure and operations, developers involved in designing and creating applications that use the .NET Framework should find much of the information useful.
This book covers three main areas:
• | Monitoring |
• | Security |
• | Sizing and Capacity Planning |
The information in this book is both practical and prescriptive. Rather than discuss all the different approaches that you could use, it concentrates on a describing a single solution that works.
This book includes material from consultants working in the field and from early implementers and contains current best practice for operating .NET-based applications. We hope you enjoy reading this book and that you find the material contained within it helpful, informative, and interesting.
Chapters
This book consists of three modules, each of between four and six chapters. The three modules are as follows:
• | Monitoring .NET-Based Applications |
• | Securing .NET-Based Applications |
• | Sizing and Capacity Planning for .NET-Based Applications |
Let's look at each of these in detail.
Chapter 1 – Introduction
Due to the prescriptive nature of this book, the chapters cover a sample application that highlights the common scenarios. This chapter defines the sample application and business scenario. In addition, this chapter covers the prerequisites, document conventions, and provides an overview of the Microsoft Operations Framework and the .NET Framework.
Top of page
Monitoring .NET-Based Applications
This section covers how you can monitor the functioning of your applications. This includes defining healthy and unhealthy applications and taking appropriate action based on the information you gather. This material gives you the definitive answers on how you can implement effective monitoring and notification of issues affecting .NET-based applications. The following chapters make up this section.
Top of page
Chapter 2 – Monitoring Concepts
Discusses the idea of application health and distinguishes between healthy and unhealthy applications. You consider issues such as monitoring load and the importance of balancing information detail against monitoring overhead. You look at monitoring terminology and concepts that you review in later chapters.
Top of page
Chapter 3 – Selecting Data Sources
The main factor in effective monitoring is collecting data about your application's health to provide you with the feedback on what is happening. In this chapter, you will look at the various sources of data that you can collect about your application's health. You will be introduced to the concepts of coarse-grained and fine-grained monitoring, which allow you to choose how much information you need to gather and how much you are willing to pay for it, in terms of either hardware or human resources.
Top of page
Chapter 4 – Instrumenting .NET-Based Applications
The next part of this module looks at how you can implement application instrumentation in order to gather specific information that you cannot measure using system-provided monitors. You look at code samples that you can adapt to provide monitoring information for your own applications.
Top of page
Chapter 5 – Configuring Management Applications
Addresses the issues that relate to the integration of Microsoft Operations Manager (MOM), Application Center 2000 Server, and Appmetrics™ from Xtremesoft Inc. into your application environment. In particular, you look at how you can use MOM to collect the information selected in Chapters 3 and 4, and then collate this information centrally using MOM management packs.
Top of page
Chapter 6 – Notifying and Reporting
Shows you techniques for translating generated events either into immediate notifications or into longer-term reports. You cover what sort of information you want to collect, define your audience, and decide how you want to use the gathered data. You also look at ways in which you can deliver notifications, either immediately or on a schedule.
Top of page
Securing .NET-Based Applications
Security has never had a higher profile than in the current climate and it is only appropriate that this subject receives detailed coverage. In this section, you see how to maximize the security of your environment and still allow your .NET-based applications to function properly. You cover how to use Group Policy to lock down computers and examine how to secure the network traffic generated by the application. The following chapters make up this module:
Top of page
Chapter 7 – General Security Recommendations
Covers the steps to ensure that your environment is secure. One of the most important steps is to make sure that your computers all run the latest patches and service packs. This chapter shows measures you can take to ensure that your IT environment remains fully up to date.
Top of page
Chapter 8 – Managing Security with Windows 2000 Group Policy
Windows 2000 defines many security settings through Group Policy, which controls the behavior of objects on the local computer and in the Active Directory directory service. You must set these policies appropriately, and monitor the policies to ensure that no changes take place without prior authorization. This chapter looks in detail at managing security using Group Policy.
Top of page
Chapter 9 – Securing Servers Based on Role
Different server roles involved in your Active Directory environment will require different settings to make them secure. This chapter looks at domain controller and member server roles showing the steps you should take to ensure that each of these roles are as secure as possible.
Top of page
Chapter 10 – Securing Servers Running .NET-Based Applications
Once you have defined overall security settings for your environment, you need to secure the specific servers running .NET-based applications. This chapter defines the settings you will require to allow your .NET-based applications to run as securely as possible.
Top of page
Chapter 11 – Network Considerations for Servers Running .NET-Based Applications
Applications built on the .NET Framework can span multiple computers. In order to ensure that the applications are secure, you need to examine the communication between client and server and between servers, and then secure the traffic flow. This chapter shows you how to increase the security of network traffic flow generated by .NET-connected applications.
Top of page
Chapter 12 – Customizing the Security Environment for Specific Applications
Following the general recommendations listed in the previous chapters will give you guidelines for securing any .NET-based application. However, you may need to make changes to the environment to allow your specific application to function. In this chapter, using the sample FMStocks application as an example, you see how to configure settings to allow specific applications to run.
Top of page
Sizing and Capacity Planning for .NET-Based Applications
The sizing and capacity planning section provides you with the tools to model the demands that an application makes either before you deploy it (sizing) or when it is in production (capacity planning). Sizing allows you to make accurate forecasts about server scaling during concurrent code development. Capacity planning allows you to anticipate different load profiles and to plan for greater user numbers using current data without incurring excessive costs. Finally, this section looks at performance analysis, helping to understand how the components of the .NET Framework affect application performance.
Top of page
Chapter 13 – Sizing and Capacity Planning for .NET-Based Applications
This chapter provides an introduction to the concepts behind sizing and capacity planning, looking at how this process differs for .NET-based applications. It defines and investigates the concepts behind queuing theory, highlighting areas such as application overload and corresponding service level agreement violations. This chapter goes on to illustrate the issues that you face when increasing load on a .NET-based application and how to identify when an application reaches maximum capacity.
Top of page
Chapter 14 – Sizing a .NET-Based Application
Sizing is the process of determining application capacity during application development and linking that capacity to planned hardware levels. This chapter concentrates on using the sizing benchmarking methodology to define the characteristics of your expected workload. After testing with this representative workload, you analyze the resulting data to extract useful indicators of application behavior. You can then specify hardware resources consistent with the level of service that you require from your application, and identify whether you need to scale up or scale out your environment.
Top of page
Chapter 15 – Capacity Planning
With capacity planning, you have production environment data from your application. You can now take this production data and use either predictive analysis or Microsoft's Total Cost Analysis (TCA) to forecast application behavior. With predictive analysis, you use tools such as Microsoft Operations Manager, Data Transformation Services and Microsoft Excel to analyze application data and then generate predictions by extrapolating current usage levels into the future. With TCA, you calculate the cost of each operation and then aggregate costs for different user profiles and usage scenarios. This allows you to build up an accurate and comprehensive study of application behavior that you can then use for loading scenarios or as the basis of service costing.
Top of page
Chapter 16 – Performance Analysis
The final chapter concentrates on performance issues within .NET Framework components, and how to address these. It covers areas such as ASP.NET, the common language runtime and just in time compilation. Although this chapter does not cover performance tuning, it provides useful information on how to identify and resolve bottlenecks with .NET-based applications, with the aim of maximizing application capacity. It provides useful best practice recommendations for distributed applications that use .NET Remoting and how to ensure that your application returns acceptable performance at all times.
Give Us Your Feedback
We would like you to give us feedback on this material. In particular, we would be grateful for any guidance on the following topics:
• | How useful was the information provided? |
• | Were the step-by-step procedures accurate? |
• | Were the chapters readable and interesting? |
• | Overall, how would you rate the series? |
Send your feedback to the following e-mail address: netopfbk@microsoft.com. We look forward to hearing from you.
Top of page
Who We Are
The team that produced Operating .NET-based Applications came from a wide range of areas within Microsoft and from many of our partner organizations. The following people make a substantial contribution to the writing, developing, and testing of this content.
Development
Greg Bott, Bott Inc
John Camargo, Microsoft Consulting Services
Linda Kasparek, Microsoft Consulting Services
Warren Kerby, Microsoft Consulting Services
Brian Komar, Komar Consulting Inc.
Peter Laudati, Microsoft Consulting Services
William Loeffler, Microsoft Prescriptive Architecture Group
Andrew Mason, Microsoft Prescriptive Architecture Group
Scott Matsumoto, Xtremesoft, Inc
Filiberto Selvas Patino, Microsoft Prescriptive Architecture Group
Paul Slater, Content Master LTD
Anthony Steven, Content Master LTD
Test
Ashish Babbar, Infosys Technologies LTD
Somsubhra Ghosh, Satyam Computer Services
Philomena Lobo, Infosys Technologies LTD
Ed Lafferty, Microsoft Prescriptive Architecture Group
Chris Sfanos, Microsoft Prescriptive Architecture Group
Sameer Tarey, Infosys Technologies LTD
William Wade, Wadeware LLC
Edit
RoAnn Corbisier, Microsoft Prescriptive Architecture Group
Sharon Smith, Microsoft Prescriptive Architecture Group
Review
Robert Abraldes
Rick Anderson
Stuart Bonell, Attenda Limited
James Cirone
Steve DeLuca
Cyrus Gray
David Guimbellot
Chris Hallum
Casey Jacobs
David Keogh
Thomas Marquardt
Erik Olson
Todd Weeks