<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Application Performance Engineering Blog - Shunra Software &#187; Performance Engineering</title>
	<atom:link href="http://www.shunra.com/shunrablog/index.php/tag/performance-engineering/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shunra.com/shunrablog</link>
	<description>Supporting application performance management for IT professionals</description>
	<lastBuildDate>Wed, 08 Feb 2012 21:51:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>A Data Driven Transactional Application A glossary post</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/11/05/a-data-driven-transactional-application-a-glossary-post/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/11/05/a-data-driven-transactional-application-a-glossary-post/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 18:57:31 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Staff Posts]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Application Testing]]></category>
		<category><![CDATA[glossary]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[WAN Performance]]></category>
		<category><![CDATA[Web Performance]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=1704</guid>
		<description><![CDATA[A data driven transactional application supports the execution of business processes. Each business process (such as book sale, update employee status, submit work hours, etc.) is comprised of multiple business transactions. A business transaction is described as the interaction and managed outcome of a well-defined step within a business process. A transaction is usually triggered [...]]]></description>
			<content:encoded><![CDATA[<p>A data driven transactional application supports the execution of business processes. Each business process (such as book sale, update employee status, submit work hours, etc.) is comprised of multiple business transactions. A business transaction is described as the interaction and managed outcome of a well-defined step within a business process. A transaction is usually triggered by user interaction and its outcome can be measured and verified. The following is an example of a business process for updating an employee record and its underlying transactions as it is presented as part of a test plan for that business process:</p>
<p>Business Process Test Plan &#8211; Update employee record</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="128" valign="top"><strong>Transaction name</strong></td>
<td width="125" valign="top"><strong>Trigger</strong></td>
<td width="126" valign="top"><strong>Expected outcome</strong></td>
<td width="90" valign="top"><strong>Response time for a remote user</strong></td>
<td width="121" valign="top"><strong>Service Level Objective</strong></td>
</tr>
<tr>
<td width="128" valign="top"><strong><em>Sign in</em></strong></td>
<td width="125" valign="top">User enters his credentials into the sign in page and clicks submit</td>
<td width="126" valign="top">The user is signed in and the application displays the home page</td>
<td width="90" valign="top"></td>
<td width="121" valign="top">7 seconds</td>
</tr>
<tr>
<td width="128" valign="top"><strong><em>Navigate to company address book</em></strong></td>
<td width="125" valign="top">Click on “Company address book tab”</td>
<td width="126" valign="top">The company address book page is displayed</td>
<td width="90" valign="top"></td>
<td width="121" valign="top">3 seconds</td>
</tr>
<tr>
<td width="128" valign="top"><strong><em>Find employee</em></strong></td>
<td width="125" valign="top">Enter employee name in the search box</td>
<td width="126" valign="top">Employee search results are displayed</td>
<td width="90" valign="top"></td>
<td width="121" valign="top">7 seconds</td>
</tr>
<tr>
<td width="128" valign="top"><strong><em>Select employee</em></strong></td>
<td width="125" valign="top">Click on employee link</td>
<td width="126" valign="top">Employee data page is displayed</td>
<td width="90" valign="top"></td>
<td width="121" valign="top">7 seconds</td>
</tr>
<tr>
<td width="128" valign="top"><strong><em>Edit employee data</em></strong></td>
<td width="125" valign="top">Click on edit</td>
<td width="126" valign="top">Employee edit data page is displayed</td>
<td width="90" valign="top"></td>
<td width="121" valign="top">3 seconds</td>
</tr>
<tr>
<td width="128" valign="top"><strong><em>Update employee records</em></strong></td>
<td width="125" valign="top">Click on submit</td>
<td width="126" valign="top">Employee records are updates</td>
<td width="90" valign="top"></td>
<td width="121" valign="top">7 seconds</td>
</tr>
<tr>
<td width="128" valign="top"><strong><em>Sign out</em></strong></td>
<td width="125" valign="top">Click on sign out</td>
<td width="126" valign="top">Sign in page is displayed</td>
<td width="90" valign="top"></td>
<td width="121" valign="top">3 seconds</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/11/05/a-data-driven-transactional-application-a-glossary-post/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building Applications for a Remote Datacenter Part 1. The network impact</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/10/13/building-applications-for-a-remote-datacenter-part-1-the-network-impact/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/10/13/building-applications-for-a-remote-datacenter-part-1-the-network-impact/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 20:00:00 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Featured Post]]></category>
		<category><![CDATA[Staff Posts]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Application Testing]]></category>
		<category><![CDATA[Bandwidth]]></category>
		<category><![CDATA[glossary]]></category>
		<category><![CDATA[Jitter]]></category>
		<category><![CDATA[Latency]]></category>
		<category><![CDATA[Network Emulation]]></category>
		<category><![CDATA[Network Emulator]]></category>
		<category><![CDATA[Network Performance]]></category>
		<category><![CDATA[Packet Loss]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[WAN Emulation]]></category>
		<category><![CDATA[WAN Optimization]]></category>
		<category><![CDATA[WAN Performance]]></category>
		<category><![CDATA[WAN Simulation]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Performance]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=1666</guid>
		<description><![CDATA[This series of posts is about the day after a data center move. Now that the data center is remote, how does this paradigm shift impact the way we should develop, test, deploy, monitor and troubleshoot applications. I will try to cover as many topics as possible, but the main focus is still going to be around the role application performance management plays in this new paradigm.]]></description>
			<content:encoded><![CDATA[<p>Ten years ago most organizations still had their data center located next to headquarters. Then 9/11 happened and the east cost blackout happened and Katrina, along with heavy increases in energy prices and real estate prices, Sarbanes-Oxley storage requirements, HIPAA security requirements and suddenly it didn&#8217;t make a lot of sense to keep the data center in proximity to headquarters. Therefore, in the past 10 years the IT world has experienced a growing trend of more and more companies migrating their data centers to remote locations (south and central US seem to be popular destinations for hosting data centers for North American companies). I wrote a lot about the impact that such a move has on application performance, there is even a whitepaper here: <a href="http://www.shunra.com/predicting-the-impact-of-data-center-moves-on-application-performance-whitepaper.php">http://www.shunra.com/predicting-the-impact-of-data-center-moves-on-application-performance-whitepaper.php</a></p>
<p>However this series of posts is about the day after a data center move. Now that the data center is remote, how does this paradigm shift impact the way we should develop, test, deploy, monitor and troubleshoot applications. I will try to cover as many topics as possible, but the main focus is still going to be around the role application performance management plays in this new paradigm.</p>
<p>I will start by covering the key reasons behind the performance impact that is experienced when applications are hosted in a remote data center? Those reasons are fairly intuitive, but it is important to understand them in depth in order to adequately plan for those new conditions. Two main things impact how applications perform when application servers are hosted in a remote data center vis a vis their application clients :</p>
<p>1. <strong>The performance of the network link between the client and the remote data center. </strong>This performance is defined by a set of network performance metrics that are <strong>application independent </strong>(for now we will ignore application aware networks, however the following basic concepts still hold in this scenario as well).</p>
<p>2. <strong>The application efficiency, specifically how efficient the application is when transferring data between the client and the remote server </strong>(and other tiers if applicable). This is an application attribute (and some time an attribute of a specific business process within the application). These attributes are <strong>application specific </strong>and are <strong>independent of any underlying network.</strong></p>
<p>Let&#8217;s start with understanding the network performance metrics. Consider the following scenario:</p>
<p>An application is hosted in a NYC data center, with users in 2 places, some are in a NYC headquarters next to that NYC data center and some are in a remote branch that is located in San Francisco. The question is: &#8220;will the application perform the same for both type of users (local users in headquarters and remote users in SF)? In other words will the application be as responsive to the San Francisco user as it is to the NYC user?”</p>
<p>Well the obvious answer is NO, in most cases a NYC user will enjoy a faster more responsive application. What is less obvious is why? What is it about the network that causes remote users to experience a slower application than local users? The rest of this post will cover that question, future posts will address the application specific attributes. Once we cover that we will be ready to examine best practices in building applications for a remote data center.</p>
<p>When I ask this question during my training seminars, I get a variety of answers, many of them are the right ones, but I would like to address one wrong answer that keeps repeating itself for some reason.</p>
<p><strong>Collisions</strong> – there is a general conception that collisions are common phenomena on the network which can explain any bad thing that happens to applications. The truth is that collisions are almost a thing of the past (on Enterprise LANs anyhow) and even when they happen they can’t explain why a remote user has a worst experience than a local user as both will experience a similar collision chance since collisions is a phenomenon that happens on local area Ethernet networks. If there are collisions on the Enterprise LAN it usually points to a configuration issue on a network device (like a duplex miss-match) but is still unrelated to the answer to our question.</p>
<p>Now to the right answers to the question, what is it about the Wide Area Network that causes applications to slow down:</p>
<p>There are 5 key conditions that predominately exist on Wide Area Networks and impact application performance, each in their own way:</p>
<p>1. <a href="http://www.shunra.com/shunrablog/index.php/2009/06/25/network-latency/"><strong>N</strong></a><strong><a href="http://www.shunra.com/shunrablog/index.php/2009/06/25/network-latency/">etwork Latency</a> </strong>– the time it takes a packet to traverse from a source to the destination across the network, measured in milliseconds [msec]. A typical WAN link will introduce latency in the range of 10msec – 500 msec.</p>
<p>2. <a href="http://www.shunra.com/shunrablog/index.php/2009/06/25/bandwidth-a-glossary-post/"><strong>Bandwidth constraints</strong></a> – how fast can data be processed by the network link, measured in bits per second [bps, Kbps, Mbps, Gbps]</p>
<p>3. <a href="http://www.shunra.com/shunrablog/index.php/2009/06/25/bandwidth-a-glossary-post/"><strong>B</strong><strong>andwidth utilization</strong></a><a href="http://www.excellingit.com/?p=14" target="_blank"> </a>(background traffic) – the percentage of bandwidth that is utilized by traffic that already exists on the link (background traffic).</p>
<p>4. <a href="http://www.shunra.com/shunrablog/index.php/2009/06/25/jitter-a-glossary-post/" target="_blank"><strong>Jitter</strong> </a>– the deviation of the inter packet gap of sequential packets across a network link, it is a result of the deviation of the network latency and is sometimes used interchangeably with that standard deviation, measured in milliseconds [msec].</p>
<p>5. <a href="http://www.shunra.com/shunrablog/index.php/2009/06/25/packet-loss-a-glossary-post/" target="_blank"><strong>Packet Loss</strong> </a>– the chance to drop a packet across an end to end network link, measured in %. Sometimes presented as the inverse metric called packet delivery rate.</p>
<p>The above are called network impairments, you can click on each one of the links to learn more about them and their causes.</p>
<p>Network impairments are performance conditions that inhibit the flow of data across a network. Each impairment type has an impact on the performance of business applications and network services. Some applications may be very sensitive to network impairments and some may be almost network agnostic. Sorting applications based on their network sensitivity is one of the important steps in performance engineering</p>
<p>In the next post we will discuss how application design can impact performance across the network. But in the mean time I would like to introduce a question for the group:</p>
<p>“We identified network latency as one of the key reasons that impact application performance; we also said that a typical WAN link will introduce 10 – 500 msec of latency. The question is, why does network latency have a big impact on application performance? surely a user doesn’t notice an increase of a few msec in response time, even 500 msec = ½ second goes by in a flinch. So think about it and let me know what you found based on your experience, why does network latency have such a big impact on application performance?”</p>
<p>Until next time,</p>
<p>Amichai Lesser</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/10/13/building-applications-for-a-remote-datacenter-part-1-the-network-impact/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cloud computing adoption rises so what should you do about it?</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/09/11/cloud-computing-adoption-rises-so-what-should-you-do-about-it/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/09/11/cloud-computing-adoption-rises-so-what-should-you-do-about-it/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 19:12:13 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Featured Post]]></category>
		<category><![CDATA[Staff Posts]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[HP LoadRunner]]></category>
		<category><![CDATA[Network Analysis]]></category>
		<category><![CDATA[Network Simulation]]></category>
		<category><![CDATA[Packet Loss]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Shunra]]></category>
		<category><![CDATA[Shunra Software]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[WAN Optimization]]></category>
		<category><![CDATA[WAN Performance]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=1623</guid>
		<description><![CDATA[I have been meaning to address the impact that cloud computing has on performance engineering but haven&#8217;t had the time to rigorously tackle this issue. After all, there are serious implications both for vendors that deliver applications and services from the Cloud as well as enterprises that are rapidly migrating more and more services to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been meaning to address the impact that cloud computing has on performance engineering but haven&#8217;t had the time to rigorously tackle this issue. After all, there are serious implications both for vendors that deliver applications and services from the Cloud as well as enterprises that are rapidly migrating more and more services to both internal and external computing clouds.</p>
<p>Which is why I was glad to stumble upon Shamus McGillicuddy article in www.searchenterpriseWAN.com titled &#8220;WAN engineers prepare networks as cloud computing adoption rises&#8221; that can be found <a href="http://searchenterprisewan.techtarget.com/news/article/0,289142,sid200_gci1366102,00.html?track=sy444">here.</a></p>
<p>There are some good observations in the article, I especially appreciate the comment on how application architecture best practices such as minimizing application turns become key when developing applications for the Cloud as well as testing applications for network latency becomes critical as the enterprise is migrating more and more applications to the Cloud.</p>
<p>Many questions still remain though and the impact of Cloud computing on performance engineering is still to be determined. Some of the questions that are on my mind are: (and feel free to chime in with more questions or attempts at answers)</p>
<p>1. How do you manage the performance of an application in the Cloud?</p>
<p>2. What changes if any are needed to the service deployment model and version upgrades?</p>
<p>3. How do you conduct a performance test for an application or a service in the Cloud (internal clouds and external clouds)?</p>
<p>4. How do you troubleshoot a performance issue in the Cloud?</p>
<p>Something to think about&#8230;</p>
<p>Best,</p>
<p>Amichai Lesser</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/09/11/cloud-computing-adoption-rises-so-what-should-you-do-about-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Microsoft Quietly Providing an Alternative to WAN Acceleration</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/09/04/is-microsoft-quietly-providing-an-alternative-to-wan-acceleration/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/09/04/is-microsoft-quietly-providing-an-alternative-to-wan-acceleration/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 13:08:54 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Featured Post]]></category>
		<category><![CDATA[Amichai Lesser]]></category>
		<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Application Testing]]></category>
		<category><![CDATA[HP LoadRunner]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Network Emulation]]></category>
		<category><![CDATA[Network Emulator]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Shunra]]></category>
		<category><![CDATA[Shunra Software]]></category>
		<category><![CDATA[WAN Acceleration]]></category>
		<category><![CDATA[WAN accelerators]]></category>
		<category><![CDATA[WAN accleration]]></category>
		<category><![CDATA[WAN Emulation]]></category>
		<category><![CDATA[WAN Optimization]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=1607</guid>
		<description><![CDATA[As part of our service offerings at Shunra&#8217;s professional services, we help our clients analyze the performance ROI of WAN acceleration. We also wrote a best practices paper about it here http://www.shunra.com/uploads/pdf/WAN-acceleration-whitepaper-031909.pdf. Which is why I was very interested in learning about 2 new developments from Microsoft. These developments provide  improved performance for branch office [...]]]></description>
			<content:encoded><![CDATA[<p>As part of our service offerings at Shunra&#8217;s professional services, we help our clients analyze the performance ROI of WAN acceleration. We also wrote a best practices paper about it here <a href="http://www.shunra.com/uploads/pdf/WAN-acceleration-whitepaper-031909.pdf">http://www.shunra.com/uploads/pdf/WAN-acceleration-whitepaper-031909.pdf</a>.</p>
<p>Which is why I was very interested in learning about 2 new developments from Microsoft. These developments provide  improved performance for branch office users with a Windows 7 client accessing applications hosted on a Windows Server 2008 in a remote data center.</p>
<p>The first development is the improved TCP stack and improved SMB implementation which mitigates one of the biggest performance problems at remote branch offices around file access and web access (internal web access). More on the TCP stack performance improvements can be found here: <a href="http://en.wikipedia.org/wiki/Windows_Vista_networking_technologies#Network_performance">http://en.wikipedia.org/wiki/Windows_Vista_networking_technologies#Network_performance </a>and on the file transfer performance improvements (namely SMB2 improvements) you can read here: <a href="http://en.wikipedia.org/wiki/Server_Message_Block#SMB2">http://en.wikipedia.org/wiki/Server_Message_Block#SMB2</a>. and more evidence to these performance enhancement for remote branch users can be found here: <a href="http://blogs.technet.com/josebda/archive/2008/11/11/file-server-performance-improvements-with-the-smb2-protocol-in-windows-server-2008.aspx">http://blogs.technet.com/josebda/archive/2008/11/11/file-server-performance-improvements-with-the-smb2-protocol-in-windows-server-2008.aspx</a></p>
<p>A 2nd development that couples the next generation TCP stack is the new BranchCache feature. You can read more about it here: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=EE07308F-7C53-4C76-9ED9-670BC25A4C9D&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=EE07308F-7C53-4C76-9ED9-670BC25A4C9D&amp;displaylang=en</a></p>
<p>Why is this so interesting? Well, for many of my clients, slow file transfers and slow access to static data are big pain points. It is also one of the drivers behind the WAN acceleration industry. If the new Windows 7 &#8211; Windows 2008 R2 lives up to its promise we may see it being an interesting alternative to WAN accelerators, curious to hear what you think, especially if you had any experience with deploying any of these new solutions.</p>
<p>Talk to you soon,</p>
<p>Amichai Lesser</p>
<p>P.S. peer to peer torrent access to cached data inside the branch, really? !! I challenge the first IT engineer to share his experience with implementing this option.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/09/04/is-microsoft-quietly-providing-an-alternative-to-wan-acceleration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Performance Engineering Why so many companies don&#8217;t get it &#8211; Part 3</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/05/29/performance-engineering-why-so-many-companies-dont-get-it-part-3/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/05/29/performance-engineering-why-so-many-companies-dont-get-it-part-3/#comments</comments>
		<pubDate>Fri, 29 May 2009 15:02:29 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Staff Posts]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Load testing]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Shunra]]></category>
		<category><![CDATA[The Goal]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=1208</guid>
		<description><![CDATA[In the previous 2 posts we described several ways in which sub optimal performance engineering practices manifest themselves, as well as identified the lack of goal commonality between developers and performance engineers as one of the key reasons behind these sub optimal practices. In this post I want to look at the problem from a [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="http://www.shunra.com/shunrablog/index.php/2009/05/performance-engineering-why-so-many-companies-dont-get-it-part-2/">previous 2 posts </a>we described several ways in which sub optimal performance engineering practices manifest themselves, as well as identified the lack of goal commonality between developers and performance engineers as one of the key reasons behind these sub optimal practices. In this post I want to look at the problem from a more holistic and organizational perspective.</p>
<p><strong>Loosing site of the goal</strong><br />
What happens when IT departments lose site of the performance engineering goal? (Reminder in short the goal is to improve the end user’s quality of experience and productivity, while maintaining system costs within budget).</p>
<p>Well what happens is that each department gets lost in its own tactical goal:</p>
<p>The Capacity planning team focuses on efficient and accurate hardware provisioning<br />
The load testing team focuses on test coverage and scale requirements<br />
The network engineering team focuses on the speed and capacity of the pipes<br />
The data base team focuses on the performance of the data bases<br />
The server team focuses on the performance of the backend servers<br />
Desktop team is focusing on the performance of the desktop clients<br />
…<br />
What the organization ends up with is a set of local optimums, but in many cases those local optimums don’t amount to an optimal system. What’s missing in the above list is at least one department that is responsible for meeting the goal, it is very rare to find a team that oversees the end to end responsiveness and performance of the application across all its components from the end user’s perspective. It is even harder to find a team that is held accountable to end user performance.</p>
<p>But is it wrong for each team to improve its domain and make sure it is optimal? Well the counter intuitive answer is yes, it is wrong and for the following reasons:</p>
<p><strong>Focusing on the wrong bottlenecks<br />
</strong>Let’s consider the following transaction as an example: this transaction generates a time sheet report for global employees. This transaction is served by a client (web browser with java widgets) a few web servers behind a load balancer, a few application servers and a data base server. Now lets see what happens if there are performance issues with this transaction. Naturally each team will spend time in improving its own domain, so the data base team may index the employee’s data base to reduce the data base response time in half, the server team adds more web servers behind the load balancer to increase the application’s scalability and the network team adds more bandwidth to the data center router. All these steps sound like they should help, no? Well the realistic answer is that in some cases none of these steps help, in fact 3 negative things happen here:</p>
<p>a. The teams spent time and money on the wrong bottlenecks</p>
<p>b. The real bottleneck is still out there</p>
<p>c. Increasing the speed of none bottleneck components places more strain on the real bottleneck, slowing things down even further</p>
<p>In future posts I will give specific examples of several problems that can not be addressed in the realm of one IT department. Those problems usually result from interdependencies between the different systems (servers, networks and data bases). It takes a holistic and multi-disciplinary process to find the right bottleneck let along find a solution for the problem. It may sound complicated, but the concept is quite simple, when dealing with performance, it does little good to focus on local optimums, any optimization effort that is not spent on the actual bottleneck is counter productive and a waste of IT resources and money. Remember, the goal is to improve end user response time at the desktop, not optimize a specific component that is part of a bigger system.</p>
<p>Even though the concept is simple, the solution isn’t always as simple. In future posts, I will offer practical ways to find application performance bottlenecks, I have used them in many engagements and they haven’t failed me yet. But before we can talk about the solutions, it is important to understand the problems so in the next several posts we will cover a few basic performance engineering concepts.</p>
<p>Talk to you soon…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/05/29/performance-engineering-why-so-many-companies-dont-get-it-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance Engineering &#8211; Why so many companies don&#8217;t get it &#8211; Part 2</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/05/07/performance-engineering-why-so-many-companies-dont-get-it-part-2/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/05/07/performance-engineering-why-so-many-companies-dont-get-it-part-2/#comments</comments>
		<pubDate>Thu, 07 May 2009 21:37:15 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Featured Post]]></category>
		<category><![CDATA[Staff Posts]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Shunra]]></category>
		<category><![CDATA[Shunra Software]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=1140</guid>
		<description><![CDATA[Part 2 (for part 1 click here) Anyone who was ever part of a performance engineering process should be able to relate to the following story: “…Version 3.5 of a critical application is scheduled for release in 6 weeks, the latest stable build (internal version) of the application finally made it to the hands of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.shunra.com/shunrablog/index.php/2009/05/performance-engineering-why-so-many-companies-don%e2%80%99t-get-it/"></a></p>
<p><strong>Part 2 <a href="http://www.shunra.com/shunrablog/index.php/2009/05/performance-engineering-why-so-many-companies-don%e2%80%99t-get-it/" target="_blank">(for part 1 click here)</a></strong></p>
<p>Anyone who was ever part of a performance engineering process should be able to relate to the following story:</p>
<p>“…Version 3.5 of a critical application is scheduled for release in 6 weeks, the latest stable build (internal version) of the application finally made it to the hands of the performance engineering team 1 week ago. The team ran a few performance tests and found that this new version performs much slower than the previous 3.0 version. The team even identified potential tuning opportunities, but they require changes in the code. Trying to get time from the developers to address these issues was nearly impossible as they some are already working on a patch that adds more functionality to this version and some are already deployed at another project. The application ends up being deployed as is, clients begin complaining about the poor performance and the business unit points fingers at the performance engineering team for not delivering on its goal…”</p>
<p>Why does this happen?<br />
<strong>Lack of goal commonality</strong></p>
<p>The main reason behind this kind of story and others like it is the lack of goal commonality. The development team which has the biggest impact on application performance is measured on timely delivery of specified functionality and is rarely measured on the performance and responsiveness of those applications. While application performance is the goal of the performance engineering team, who can usually just verify the compliance of applications with their performance goals, but can rarely impact any changes that will actually improve performance. The performance engineering team can oversee performance improvement projects but the changes have to be driven through the development team, which as already established is not measured on performance, hence will be somewhat reluctant to spend time on these performance improving projects. There are other examples of lack of goal commonalities within IT (Network Ops and Application development is another common example), but none impact application performance (or lack there off) more than the above.<br />
Performance vs.Functionality: Lack of goal commonality makes this a tough choice</p>
<p>But even if the development team isn’t measured on performance, don’t developers care about the performance and responsiveness of their applications?</p>
<p>Well off course they do.</p>
<p>I come from a development background and I can tell you first hand that developers want to take pride in the code they write, but when faced with the choice of spending time on performance improvements or on functionality enhancements, they are usually forced to choose the later.</p>
<p><strong>Lack of tools and expertise</strong></p>
<p>To make things worst, the lack of goal commonality prevents developers from being able to address performance problems even if they set the time for it, since for the most part developers are not equipped with the right tools, best practices and expertise to address potential performance issues. When development managers make their hiring decisions and development tool selections, they tend to make choices that will improve the team’s ability to deliver functionality fast and tend to focus less on tools and expertise that are performance oriented.<br />
<strong></strong></p>
<p><strong>Performance later</strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;">There is a tendency in the development world to push performance to the last stage in the development life cycle, also known as “performance last” or “performance later”. While this approach may make sense initially, since you can’t test for performance before you have runable code that passed functional testing, it is one of the reasons behind many of the performance problems that exist in applications today. As we will see in future posts, many performance problems are a result of decisions made very early in the development process, such as platform selection, development language selection and even mundane things such as the type of user interface container selected for a specific web page.</p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;">
<p class="MsoNormal" style="margin: 0in 0in 0pt;">In summary we identified the lack of goal commonality between application development teams and performance engineering groups as one of the reasons behind a sub optimal performance engineering practice. In the next post we will look into the lack of a clear goal as a fundamental roadblock in achieving efficient performance engineering.</p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;">
<p class="MsoNormal" style="margin: 0in 0in 0pt;">In the mean time I am interested in your feedback, check within your company’s software specification documents, how many have performance requirements documented in the specifications? How many end up into the test plan? Curious to hear what you find.</p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;">
<p class="MsoNormal" style="margin: 0in 0in 0pt;">Talk to you soon…</p>
<p><!--[if gte mso 10]&gt;--></p>
<div class="MsoNormal" style="margin: 0in 0in 0pt;">
<div class="MsoNormal" style="margin: 0in 0in 0pt;">
<div><em></p>
<p></em></div>
<div class="MsoNormal" style="margin: 0in 0in 0pt;">
<div class="MsoNormal"></div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/05/07/performance-engineering-why-so-many-companies-dont-get-it-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Performance Engineering &#8211; Why so many companies don’t get it</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/05/07/performance-engineering-why-so-many-companies-dont-get-it/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/05/07/performance-engineering-why-so-many-companies-dont-get-it/#comments</comments>
		<pubDate>Thu, 07 May 2009 21:34:58 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Featured Post]]></category>
		<category><![CDATA[Staff Posts]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Application Performance Monitors]]></category>
		<category><![CDATA[enterprise application]]></category>
		<category><![CDATA[IT Performance]]></category>
		<category><![CDATA[IT ROI]]></category>
		<category><![CDATA[Load testing]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Shunra Software]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=1136</guid>
		<description><![CDATA[Many of you may read the headline and wonder, with so much money spent on performance engineering tools and personnel, surely most companies are getting it right. Well, most companies do get some performance engineering tasks right, but anyone familiar with the industry would agree that all or part of the following happens in almost every IT organization...]]></description>
			<content:encoded><![CDATA[<p>The following is a series of posts that I originally wrote in www.excellingit.com but the issues raised are very relevant in this context as well. If anything, the time that past since I originally wrote this only reconfirmed the following statements.</p>
<p>Curious to hear your feedback on the following:</p>
<p><strong>Performance Engineering &#8211; Why so many companies don’t get it</strong></p>
<p>Many of you may read the headline and wonder, with so much money spent on performance engineering tools and personnel, surely most companies are getting it right. Well, most companies do get some performance engineering tasks right, but anyone familiar with the industry would agree that all or part of the following happens in almost every IT organization:</p>
<p><strong>Applications are slower than initially expected</strong><br />
This story should sound familiar to anyone who ever dealt with deploying an enterprise application. The application goes through rigorous testing, first functional and later load and stress. Baselines are generated and average response times are predicted or estimated (and sometimes guestimated), only to find out that real end users, mostly remote but sometimes even local users experience a much slower application. It is relatively easy to verify the existence of this problem in your organization, simply compare the pre deployment response time baselines with the Application Performance Monitors (APM) statistics about the user experience post deployment. You are sure to find anything from a 2X up to over a 10X difference in response times, especially in applications that are deployed globally. Another way to validate the existence of this situation is by asking the IT department to predict how an application will perform once deployed globally, 99 times out of 100 you will not find a confident answer to that question.</p>
<p><strong>Return on Investment is Hard to Show</strong><br />
In my line of business I get to work with a variety of organizations with different attitudes towards performance. In general there is a growing understanding that improved application performance has a positive impact on the financial bottom line. As a result more and more companies invest in performance engineering processes, tools and personnel in order to get from thinking about performance to actively addressing performance requirements (reaching the goal). However, even the most sophisticated organizations where performance is treated as a product with specific goals and objectives, even those cutting edge IT departments have a hard time showing the return on investment from their performance initiatives.</p>
<p><strong>Performance Engineering becomes Load Testing</strong><br />
Effective performance engineering is hard to achieve. A practice that meets the performance engineering goal must address application performance from end to end. Very few organizations have the tools and expertise required to gain visibility into all the factors that impact application performance. As a result many organizations tend to focus on what can be measured and predominately that means focusing on load testing. Now don’t get me wrong, assessing an application’s ability to perform under load is critical to any successful deployment, but it is certainly not enough. Focusing on load testing is analogous to looking for a lost coin under the street lamp, load testing will highlight a set of potential performance problems, but many other may lurk in the dark and may have a bigger impact on performance than anything that comes up during the load test alone.</p>
<p>There are many other examples of how a suboptimal performance engineering practice manifests itself, in the 2nd part of this post we<br />
will cover the reasons why most companies have a hard time implementing an efficient performance engineering practice.</p>
<p>Talk to you soon…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/05/07/performance-engineering-why-so-many-companies-dont-get-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Will be Teaching at the Next Shunra University in Philadelphia &#8211; April 14 &#8211; 16</title>
		<link>http://www.shunra.com/shunrablog/index.php/2009/03/11/i-will-be-teaching-at-the-next-shunra-university-in-philadelphia-april-14-16/</link>
		<comments>http://www.shunra.com/shunrablog/index.php/2009/03/11/i-will-be-teaching-at-the-next-shunra-university-in-philadelphia-april-14-16/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 17:28:05 +0000</pubDate>
		<dc:creator>Amichai Lesser</dc:creator>
				<category><![CDATA[Featured Post]]></category>
		<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[HP LoadRunner]]></category>
		<category><![CDATA[HP Performance Center]]></category>
		<category><![CDATA[Load testing]]></category>
		<category><![CDATA[Performance Engineering]]></category>
		<category><![CDATA[Performance Triage]]></category>
		<category><![CDATA[Shunra Certified Performance Engineer]]></category>
		<category><![CDATA[Shunra University]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Transaction Analysis]]></category>
		<category><![CDATA[VE Analyzer]]></category>
		<category><![CDATA[VE Desktop for HP Software]]></category>
		<category><![CDATA[VE Predictor]]></category>
		<category><![CDATA[VE Profiler]]></category>

		<guid isPermaLink="false">http://www.shunra.com/shunrablog/?p=871</guid>
		<description><![CDATA[One of the highlights of my work at Shunra is being able to teach at the Shunra University. I get to work with a handful of great IT professionals as we drill down into the best practices and challenges of making applications perform well across networks. As much as I love teaching, the biggest value [...]]]></description>
			<content:encoded><![CDATA[<p>One of the highlights of my work at Shunra is being able to teach at the Shunra University. I get to work with a handful of great IT professionals as we drill down into the best practices and challenges of making applications perform well across networks. As much as I love teaching, the biggest value I get from this program comes from learning from my students, as do all the other participants. This program encourages Shunra users, staff  and other IT professionals to share best practices and discuss daily challenges with their peers.</p>
<p>So here&#8217;s my shameless plug for the certificate program.</p>
<p>This 2 and half day certification program covers everything an IT engineer needs to know about Shunra&#8217;s technology, including:</p>
<ul>
<li>Performance Engineering Best Practices</li>
<li>Deep Transaction Analysis and Performance Triage</li>
<li>Network Capacity Planning with Shunra VE Predictor, VE Profiler, VE Analyzer and HP LoadRunner</li>
<li>Advanced Network Topics</li>
<li>Network Aware Load Testing with VE Desktop for HP Software</li>
</ul>
<p>Completing this program provides a SCPE certification (Shunra Certified Performance Engineer) which comes in very handy in today&#8217;s global performance world.</p>
<p>This year will be even more interesting as we will, for the first time, cover the new VE Desktop for HP Software. This product was co-developed by Shunra and HP to transform LoadRunner and Performance Center test beds into virtual network test beds for testing application performance from remote sites. The training session will provide expertise on combining load testing and network performance analysis in a single tool.</p>
<p>Another new addition to the curriculum is the Deep Transaction Analysis and Performance Triage which covers tips and tricks for effective triage and troubleshooting of application performance issues.</p>
<p>There are still some seats open which are sold on a first come first serve basis, so make sure to go <a href="http://www.shunra.com/shunra-university-overview.php" target="_blank">here </a>if you are interested in participating.</p>
<p>See you on the 14th at the DoubleTree Hotel in Center City, Philadelphia.</p>
<p>Amichai</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shunra.com/shunrablog/index.php/2009/03/11/i-will-be-teaching-at-the-next-shunra-university-in-philadelphia-april-14-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

