|By Gary Kaiser||
|July 7, 2014 08:15 AM EDT||
As a network professional, one of your newer roles is likely troubleshooting poor application performance. For most of us, our jobs have advanced beyond network "health," towards sharing - if not owning - responsibility for application delivery. There are many reasons for this more justifiable than the adage that the network is first to be blamed for performance problems. (Your application and system peers feel they are first to be blamed as well.) Two related influencing trends come to mind:
- Increased globalization, coupled with (in fact facilitated by) inexpensive bandwidth means that the network is becoming a more critical part of the business at the same time its constraint is shifting from bandwidth to latency.
- Many of the network devices - appliances - that sit in the path between remote offices and data centers are application-fluent, designed to enhance and speed application performance, often by spoofing application behaviors; in fact, many of these have evolved in response to problems introduced by increased network latency.
In an ideal world, your application performance management (APM) solution or your application-aware network performance management (AANPM) solution would automatically isolate the fault domain for you, providing all the diagnostic evidence you need to take the appropriate corrective actions. The reality is that this isn't always the case; intermittent problems, unexpected application or network behaviors, inefficient configuration settings, or just a desire for more concrete proof mean that manual troubleshooting remains a frequent exercise. Although it may seem like there are a near-unlimited number of root causes of poor application performance, and that trial and error, guesswork and finger-pointing are valid paths toward resolution, the truth is much different. In a series of network triage blog posts, I'll identify the very limited realm of possible performance constraints, explain how to measure and quantify their impact, illustrate these using network packet trace diagrams, and offer meaningful and supportable actions you might evaluate to correct the problem. Understanding how to detect these possible performance problems (there are twelve altogether) will help you troubleshoot faster, more accurately, with greater insight, while collaborating more effectively with your application and system peers.
In this introductory entry, I present the request/reply application paradigm assumption upon which most of the analyses depend, illustrate key packet-level measurements, and provide a list of the 12 bottleneck categories we'll discuss in future blog entries to the series.
Packet Flow Diagrams
Throughout the blog series I will be using packet flow diagrams to illustrate message flows on the network, often to emphasize TCP's influence on these flows. Some are drawings to illustrate concepts and theory, others are screenshots from Compuware's Transaction Trace Analysis that illustrate the pertinent performance bottleneck. The diagram conventions are simple:
- Each arrow represents one TCP packet
- Blue arrows are used to represent data packets
- Red arrows are used to represent TCP ACK packets
- The slope of the arrow represents network delay
- Time flows from top to bottom
We will frequently use the term "operation," which we define as the unit of work that an application performs on behalf of a user; we sometimes describe it as "Click (or Enter key) to screen update." Business transactions are made up of one or more operations; for example, a user may click through a series of screens (operations) to complete a customer order update. Operations are an important demarcation point, as they represent the unique performance dimension important to the business, to the user, and to IT. The time a user waits for the system to execute an operation impacts business transaction performance and therefore productivity, and is dictated by the performance of lower-level IT-managed hardware, software and services. Note that this terminology may differ somewhat from network probes that often use the term "transaction" to reference session-layer request-response exchanges, which we discuss next.
We assume a client/server or request/reply paradigm, with TCP as the transport; this covers virtually all of what we might refer to as interactive business applications. It would include, for example, web-based apps, "fat client" apps, file server access, file transfers, backups, etc. It specifically excludes voice and video streaming as well as the presentation tier of thin-client solutions that use protocols such as ICA and PCoIP.
For each operation, there will be at least one application-level request and one corresponding application-level reply. These can be considered application messages, sometimes referred to as application-layer protocol data units (PDUs). Consider a simple client-server operation. At the application layer, a request message is passed to the client's TCP stack (TCP socket) for segmentation (into packets), addressing, and transmission; these lower layer TCP stack functions are essentially transparent to the application. At the receiving end (the server), the data from the network packets is reassembled into the application layer message and delivered to the listener service for processing. Once processing is complete, the server application passes the reply message to the server's TCP stack, and the message contents are similarly segmented and transferred across the network to the client. The performance of these request/reply message exchanges is constrained by two factors; message processing (at the server or client) and message transmission (across the network).
It is helpful, then, to consider this request/reply message exchange as the basis for performance analysis; the reassembled messages represent our network-centric insight into the application, while the packets visible in the trace file inform us how efficiently the network transports these messages.
For further insight click here for the full article, and stay tuned for Part II.
Virgil consists of an open-source encryption library, which implements Cryptographic Message Syntax (CMS) and Elliptic Curve Integrated Encryption Scheme (ECIES) (including RSA schema), a Key Management API, and a cloud-based Key Management Service (Virgil Keys). The Virgil Keys Service consists of a public key service and a private key escrow service.
Oct. 23, 2016 09:45 AM EDT Reads: 999
Apache Hadoop is a key technology for gaining business insights from your Big Data, but the penetration into enterprises is shockingly low. In fact, Apache Hadoop and Big Data proponents recognize that this technology has not yet achieved its game-changing business potential. In his session at 19th Cloud Expo, John Mertic, director of program management for ODPi at The Linux Foundation, will explain why this is, how we can work together as an open data community to increase adoption, and the i...
Oct. 23, 2016 09:45 AM EDT Reads: 1,869
What do dependency resolution, situational awareness, and superheroes have in common? Meet Chris Corriere, a DevOps/Software Engineer at Autotrader, speaking on creative ways to maximize usage of all of the above. Mark Miller, Community Advocate and senior storyteller at Sonatype, caught up with Chris to learn more about what his team is up to.
Oct. 23, 2016 09:30 AM EDT Reads: 1,393
All clouds are not equal. To succeed in a DevOps context, organizations should plan to develop/deploy apps across a choice of on-premise and public clouds simultaneously depending on the business needs. This is where the concept of the Lean Cloud comes in - resting on the idea that you often need to relocate your app modules over their life cycles for both innovation and operational efficiency in the cloud. In his session at @DevOpsSummit at19th Cloud Expo, Valentin (Val) Bercovici, CTO of So...
Oct. 23, 2016 09:30 AM EDT Reads: 2,118
Monitoring of Docker environments is challenging. Why? Because each container typically runs a single process, has its own environment, utilizes virtual networks, or has various methods of managing storage. Traditional monitoring solutions take metrics from each server and applications they run. These servers and applications running on them are typically very static, with very long uptimes. Docker deployments are different: a set of containers may run many applications, all sharing the resource...
Oct. 23, 2016 09:00 AM EDT Reads: 3,475
SYS-CON Events announced today that eCube Systems, the leading provider of modern development tools and best practices for Continuous Integration on OpenVMS, will exhibit at SYS-CON's @DevOpsSummit at Cloud Expo New York, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. eCube Systems offers a family of middleware products and development tools that maximize return on technology investment by leveraging existing technical equity to meet evolving business needs. ...
Oct. 23, 2016 09:00 AM EDT Reads: 4,453
DevOps is a term that comes full of controversy. A lot of people are on the bandwagon, while others are waiting for the term to jump the shark, and eventually go back to business as usual. Regardless of where you are along the specturm of loving or hating the term DevOps, one thing is certain. More and more people are using it to describe a system administrator who uses scripts, or tools like, Chef, Puppet or Ansible, in order to provision infrastructure. There is also usually an expectation of...
Oct. 23, 2016 08:45 AM EDT Reads: 1,510
JetBlue Airways uses virtual environments to reduce software development costs, centralize performance testing, and create a climate for continuous integration and real-time monitoring of mobile applications. The next BriefingsDirect Voice of the Customer performance engineering case study discussion examines how JetBlue Airways in New York uses virtual environments to reduce software development costs, centralize performance testing, and create a climate for continuous integration and real-tim...
Oct. 23, 2016 08:30 AM EDT Reads: 1,248
The general concepts of DevOps have played a central role advancing the modern software delivery industry. With the library of DevOps best practices, tips and guides expanding quickly, it can be difficult to track down the best and most accurate resources and information. In order to help the software development community, and to further our own learning, we reached out to leading industry analysts and asked them about an increasingly popular tenet of a DevOps transformation: collaboration.
Oct. 23, 2016 08:15 AM EDT Reads: 1,248
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering Cloud Expo and @ThingsExpo will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at Cloud Expo. Product announcements during our show provide your company with the most reach through our targeted audiences.
Oct. 23, 2016 08:15 AM EDT Reads: 4,407
In case you haven’t heard, the new hotness in app architectures is serverless. Mainly restricted to cloud environments (Amazon Lambda, Google Cloud Functions, Microsoft Azure Functions) the general concept is that you don’t have to worry about anything but the small snippets of code (functions) you write to do something when something happens. That’s an event-driven model, by the way, that should be very familiar to anyone who has taken advantage of a programmable proxy to do app or API routing ...
Oct. 23, 2016 08:00 AM EDT Reads: 1,218
At its core DevOps is all about collaboration. The lines of communication must be opened and it takes some effort to ensure that they stay that way. It’s easy to pay lip service to trends and talk about implementing new methodologies, but without action, real benefits cannot be realized. Success requires planning, advocates empowered to effect change, and, of course, the right tooling. To bring about a cultural shift it’s important to share challenges. In simple terms, ensuring that everyone k...
Oct. 23, 2016 08:00 AM EDT Reads: 12,446
DevOps is speeding towards the IT world like a freight train and the hype around it is deafening. There is no reason to be afraid of this change as it is the natural reaction to the agile movement that revolutionized development just a few years ago. By definition, DevOps is the natural alignment of IT performance to business profitability. The relevance of this has yet to be quantified but it has been suggested that the route to the CEO’s chair will come from the IT leaders that successfully ma...
Oct. 23, 2016 06:15 AM EDT Reads: 16,372
SYS-CON Events announced today that SoftNet Solutions will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. SoftNet Solutions specializes in Enterprise Solutions for Hadoop and Big Data. It offers customers the most open, robust, and value-conscious portfolio of solutions, services, and tools for the shortest route to success with Big Data. The unique differentiator is the ability to architect and ...
Oct. 23, 2016 06:00 AM EDT Reads: 692
DevOps is being widely accepted (if not fully adopted) as essential in enterprise IT. But as Enterprise DevOps gains maturity, expands scope, and increases velocity, the need for data-driven decisions across teams becomes more acute. DevOps teams in any modern business must wrangle the ‘digital exhaust’ from the delivery toolchain, "pervasive" and "cognitive" computing, APIs and services, mobile devices and applications, the Internet of Things, and now even blockchain. In this power panel at @...
Oct. 23, 2016 05:15 AM EDT Reads: 1,834
@DevOpsSummit has been named the ‘Top DevOps Influencer' by iTrend. iTrend processes millions of conversations, tweets, interactions, news articles, press releases, blog posts - and extract meaning form them and analyzes mobile and desktop software platforms used to communicate, various metadata (such as geo location), and automation tools. In overall placement, @DevOpsSummit ranked as the number one ‘DevOps Influencer' followed by @CloudExpo at third, and @MicroservicesE at 24th.
Oct. 23, 2016 04:00 AM EDT Reads: 3,936
As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and microservices. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your conta...
Oct. 23, 2016 03:30 AM EDT Reads: 1,446
Without lifecycle traceability and visibility across the tool chain, stakeholders from Planning-to-Ops have limited insight and answers to who, what, when, why and how across the DevOps lifecycle. This impacts the ability to deliver high quality software at the needed velocity to drive positive business outcomes. In his session at @DevOpsSummit 19th Cloud Expo, Eric Robertson, General Manager at CollabNet, will show how customers are able to achieve a level of transparency that enables everyon...
Oct. 23, 2016 03:00 AM EDT Reads: 1,272
DevOps theory promotes a culture of continuous improvement built on collaboration, empowerment, systems thinking, and feedback loops. But how do you collaborate effectively across the traditional silos? How can you make decisions without system-wide visibility? How can you see the whole system when it is spread across teams and locations? How do you close feedback loops across teams and activities delivering complex multi-tier, cloud, container, serverless, and/or API-based services?
Oct. 23, 2016 02:15 AM EDT Reads: 1,012
Today every business relies on software to drive the innovation necessary for a competitive edge in the Application Economy. This is why collaboration between development and operations, or DevOps, has become IT’s number one priority. Whether you are in Dev or Ops, understanding how to implement a DevOps strategy can deliver faster development cycles, improved software quality, reduced deployment times and overall better experiences for your customers.
Oct. 23, 2016 01:45 AM EDT Reads: 770