Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Web Development

Real Users Really Matter


Building a Glass Wall

With the growing complexity of web applications, having a process for continued performance improvement and problem avoidance is critical. Yes, performance issues occur and are sometimes unavoidable due to situations beyond the control of developers or operations personnel. Again, the key is to bake in performance through a culture of cooperation where developers and operations work together so that performance problems can either be resolved proactively, or detected and resolved quickly before they impact user satisfaction.

The Information Technology Infrastructure Library Framework (ITIL; www.itil-officialsite.com) segregates the software development lifecycle into six phases: requirements, design, build, deploy, operate, and optimize (Figure 1). The last two phases of the lifecycle are particularly important when dealing with complex web applications. On the one hand, web applications are never truly "completed" because complexity, lack of control over third-party infrastructure service providers, and the ever increasing time-to-market pressure for web applications prevents an exhaustive testing of all possible use scenarios.

To deal with the complexity of web applications, there has to be a linkage between the traditionally discrete development and operations functions. In other words, development and operations have to have a common view of business impact, real user performance, application infrastructure performance, incidents, and problems. Ideally there is a single tool and set of metadata that can bridge these two functional groups and offer developers opportunities for optimization, and operations personnel ability to efficiently identify and remedy problems.

[Click image to view at full size]

Figure 1: ITIL application lifecycle.

For complex web applications, developers are constantly called on to deal with production problems, whether to patch code-level problems that impact performance, or infrastructural problems that require workarounds. And because of their knowledge of the application, they are also called on to serve on triage teams attempting to recreate or diagnose potential or real performance problems. In fact, Gartner Group reports that nearly 40 percent of a developer's time is consumed by production problems. This activity has a tremendous impact on the development schedule and developer productivity.

The automated and continuous monitoring and diagnosis of transactional problems from a real user perspective performs three important functions in a production setting:

  • Provide a common case-management tool and relevant set of data such that developers and operations personnel can collaborate to quickly pinpoint the cause of performance issues pursuant to the workflow. The benefit of this approach is to eliminate, in a majority of cases, the need to organize cross-discipline triage teams to debate, reproduce, and diagnose problems. The bottom-line effect is improved developer efficiency and quicker time to problem resolution.
  • Afford a continuous feedback loop whereby developers can gain insight into how the application's performance is being impacted by actual usage, features, and infrastructural issues. For example, if a feature turns out to be a major consumer of computational resources such that it impacts the service level of more critical features, then development might consider allocating resources to reengineer this problematic feature. Having this information gives developers the foresight to proactively make modifications to the application and/or code-level implementation trade-offs, so that performance issues are not just considered in hindsight.
  • Assist in regression testing based on real user traffic after code-level and/or infrastructural changes.

To facilitate the cooperation between development and operations in matters of web application performance, there has to be a common platform for the sharing of performance information (metadata) that's relevant to both teams and a defined process for acting on the information. In a way, this is akin to replacing the traditional "Chinese Wall" that separates development from operations with a "glass wall." A metaphorical wall, or predefined and enforceable set of business policies, is important so that developers cannot arbitrarily modify released code or the underlying database or infrastructure running the code without following proper release, change, and configuration management protocols. Instead of being opaque, this "wall" should be a transparent, so there is informational exchange between the two functional groups.

Both development and operations utilize different tools. Data collected or generated by development tools has no meaning to system management or DBA tools used by operations personnel and vice versa. This Tower of Babel situation, if not remedied through the use of a common tool and metadata, makes the implementation of the ITIL process impractical.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.