Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Top 8 Trends in Performance Engineering


Published on

Effective performance engineering is a critical factor in delivering meaningful results. The implementation must be built into every aspect of the business, from IT and business management to internal and external customers and all other stakeholders. Convetit brought together ten experts in the field of performance engineering to delve into the trends and drivers that are defining the space. This Foresights discussion will directly influence Business and Technology Leaders that are looking to stay ahead of the challenges they face with delivering high performing systems to their end users, today and in the next 2-5 years.

Published in: Engineering
  • Be the first to comment

Top 8 Trends in Performance Engineering

  1. 1. C O N V E T I T F O R E S I G H T S T M Top 8 Trends 2017 in Performance Engineering for
  2. 2. Top 8 Trends 2017 in Performance Engineering for Effective performance engineering is a critical factor in delivering meaningful results. The implementation must be built into every aspect of the business, from IT and business management to internal and external customers and all other stakeholders. Convetit brought together ten experts in the field of performance engineering to delve into the trends and drivers that are defining the space. This Foresights discussion will directly influence Business and Technology Leaders that are looking to stay ahead of the challenges they face with delivering high performing systems to their end users, today and in the next 2-5 years. Here are 8 Trends our experts identified as driving performance engineering in 2017:
  3. 3. What it is: Moving to a cloud-based infrastructure means transitioning away from onsite and centrally located data storage, which implies a significant change in the underlying supporting technology of core business systems. Understand the impact of moving to a cloud-based infrastructure. Optimize infrastructure and architecture flexibility to deliver an optimized experience. Re-create the future environment either actually or with Lifecycle Virtualization prior to move, and then validate. Cloud-Based Infrastructure and Architecture: Be Optimized and Resilient 1. Why it’s important: Changing the underlying infrastructure dramatically impacts system interactions and end user experience, and is proving crucial in order to ensure scalability, stability, and continuity of core technology to support business. This move to the cloud means no disruption or downtime of service level to the end user and the delivery of a seamless transition to a new and more efficient experience for businesses. How to implement:How to implement: 1. Cloud-Based Infrastructure and Architecture: Be Optimized and Resilient
  4. 4. How to implement:How to implement: What it is: Integrating core capabilities of technology leverages open and available third-party capabilities for speed and quality of delivery. Complex and composite architectures continue to grow and depend on other services in the end-to-end workflow. A good example of this is the “credit check” in a loan process, which enables a lender to use a shared service to send a request and receive a response. Identify your end-to-end system flows, knowing the potential services available to leverage, and start to identify. Understand what the associated current costs of not using these services are, as well as the potential savings of using them. Optimize your applications to work with the distributed third-party services and to perform well. Why it’s important: This continuity of systems enables businesses to deliver on the needs of customers, while the consistency provides the ability to quickly automate, optimize, and deliver better results at a lower cost. In the end, distributed and third-party services mean faster to-market time, less custom application development work, and the delivery of more robust and accurate results to be used throughout the workflow. 2. Distributed and Third-Party Services: Enabling Capacity Required
  5. 5. How to implement: 3. Cloud Load Testing: Quick and Cost-Effective Massive Load Generation What it is: Cloud load testing is the ability to generate load from cloud-based generators, to “burst” load test to X-factor, and to do so with cloud-based load generators wherein the maintenance of infrastructure is not required. There are several cloud-based providers available today. Some enable you to leverage your existing tools and scripts, others do not. Various pricing models are available, depending on your needs. Why it’s important: All of this means lower costs for burst and the ability to re-create load scenarios for promotions, sales, offers, and other big-activity times. Once implemented, businesses may proactively optimize their sites/apps for large load scenarios, reduce end user impact from slowness or unavailable systems, and increase brand value during high visibility times.
  6. 6. How to implement: 4. Network Virtualization: Test, Tune, Benchmark What it is: Organizations absolutely should, and will, leverage network virtualization in order to test, tune, and benchmark. Network-virtualization tools can be used to mimic different bandwidths and latency and packet-loss values. Such tools can also be used to test against different mobile-internet vendor profiles. There are many vendors who provide network-virtualization tools. Even though available, many organizations have yet to completely embrace them and utilize their power. On a personal level, I am a big fan of HP NV. NV is built-in to the Chrome browser, allowing you to define your own network-profile characteristic, if only in a restrained way. It is of utmost importance to educate organizations and to study performance problems induced by high latencies. Why it’s important: Since the majority of customers using applications on their mobile variants do so on the go, network virtualization is a critical factor in being able to serve/optimize content for high-latency networks. It allows organizations to build better mobile apps, to monitor servers in realistic network conditions, and to remove variables from network profiles when trying to tune an app for high latencies.
  7. 7. How to implement: 5. Stitching Metrics and Logs: From Various Sources to a Single Source at Scale and Speed What it is: This holistic view of a user path for any chosen transaction drills down ability, starting from RUM data through logs and hoops, and it proves a single source of data for proactive as well as post-mortem analysis of poor transactions. Feed all the data (from logs to resource-level and method-level instrumentation/telemetry) into a single indexing source. This step is tricky, because the indexers we have right now are optimized for one of two variants, logs or time-series. Splunk is doing great at log-level indexing, while grafana+influx is doing great at time-series. Know what data is required for analyzing a costly user path. This step is specific to each organization or project and largely depends on the architecture and platform. Organizations will need a workforce with data-analytics and architecture skills. Use the power of cloud to achieve this. On an enterprise level, feeding real-time data from disparate sources is a big data problem in itself. Cloud providers like AWS make it easier and eliminate a lot of headaches when provisioning infrastructure. Why it’s important: Not only does it save a lot of time for those responsible for monitoring and analyzing the performance by quickly identifying outliers and/or points of congestion in a user path, but it also makes it easier to read anomalies across different tiers that may not manifest as anomalies when looked at in isolation. Reduced mean time to resolution, less confusion and more clarity, and insight into consistently badly performing tiers and their impact on end users enables organizations to be proactive rather than reactive.
  8. 8. How to implement: 6. Machine Learning: Enabling Continuous Performance Engineering in the Production Environment What it is: Using machine-learning algorithms like "deep learning" uncovers patterns, events, and cause-effect relationships continuously by feeding production data (all and any sort of logs, RUM, telemetry). Implementation of machine learning as an enabler can be either easy or daunting, depending on the scale on which an organization decides to implement it. There are many open-source machine-learning programs available, as well as commercial ones. As with metrics, a lot depends on what type of data is being collected and whether the data itself has enough factors to give a useful direction. Companies like Google, Facebook, and Netflix are already leveraging machine learning to find out more about their users and usage stats. Why it’s important: This capability means being able to uncover unseen patterns and events which do not seem to correlate with the data being instrumented and are most often invisible to an observer's eye. Algorithms like Deep Learning, when fed with the data that is being collected, will uncover these patterns, providing additional insights into correlation factors that caused a catastrophic failure, random unavailability, outliers in terms of speed, etc.
  9. 9. How to implement: 7. Real-User Monitoring Capability: Building this capability into load-testing solutions offered from the cloud What it is: Real-user monitoring capability is the use of customized events from the app and end-user perceived performance stats in order to have insight into the performance of applications with respect to different devices, form factors, browsers, and geographies. Custom javascript beacons are used in pages of interest so that an application can relay data to a centralized location in order to gain insights into performance and user behavior. Why it’s important: Performance of an application and a user's time on the application go hand in hand. Protocol-level timings do not paint the complete picture of an application's performance when it comes to modern-day applications. Frameworks such as Angular JS will limit the capability of navigation timing API on browsers. With more and more organizations leaning towards interactive applications that depend on XHR requests and gravitating towards single-page apps, where fetching of content and scrolling performance are key considerations when it comes to performance, RUM provides priceless data and insights into what is happening with the application performance in the hands of real users. Out-of-the-box RUM solutions are available in plenty, in both open-source and commercial variants. While no one can offer a silver bullet to the plethora of test-tool vendors on how to achieve this, tool vendors should, and will, look into ways of being able to instrument a subset of load by driving GUI users from cloud, using a mix of mobile clients and network virtualization and porting that telemetry/instrumentation data into a central store alongside protocol/network-level transaction timings. The more RUM data that is available early in the product lifecycle (during CI/CD/CT), the easier it gets for organizations to leverage the data to its full effect.
  10. 10. How to implement: 8. Agile/Iterative Development: Systems Available Earlier  Shift Left What it is: Agile/iterative development means adopting practices to enable delivery of highest-value (to the end user) capabilities in the shortest period of time with the highest quality. Transforming the culture of an organization to team-focus on the customer means changing the way things are done so as to be able to engage earlier (“shift left”) in the cycle in order to acquire and incorporate feedback sooner and continuously. Start with a smaller, yet high visibility, opportunity, gaining support and delivering results quickly. Take those results and socialize them within the existing team at all levels, focusing on results and value. Let the teams and leadership point the direction and grow the adoption throughout the team(s). Why it’s important: Speed-to-market is the name of the game, leading to competitive advantages in your market as well as in customer acquisition and retention. All of this spells increased revenue, customer satisfaction, and market share.
  11. 11. Consulting Member of Technical Staff, Performance Engineering Alexander Podelko Senior Director, Technology and Product Innovation Todd DeCapua FACILITATOR Participants Staff Performance Engineer Kranthi Paidi Enterprise Performance Architect, Performance Engineering Evangelist Mohit Verma Program Manager, Performance Engineering Kishore Thota Manager of Performance Engineering Richard Ellison Software Architect Petar Puskarich DevOps Developer Evangelist Wilson Mar Senior Performance Engineer Matthew Adcock
  12. 12. Learn more at Connect directly to your market. Convetit is the network where teams and experts connect, providing custom research and actionable insights in days instead of months.