top 8 trends in performance engineering

12
CONVETIT FORESIGHTS TM Top 8 Trends 2017 in Performance Engineering for

Upload: convetit

Post on 09-Feb-2017

64 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Top 8 Trends in Performance Engineering

C O N V E T I T F O R E S I G H T S T M

Top 8 Trends

2017in Performance Engineering for

Page 2: Top 8 Trends in Performance Engineering

Top 8 Trends

2017in PerformanceEngineering 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:

Page 3: Top 8 Trends in Performance Engineering

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

Page 4: Top 8 Trends in Performance Engineering

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

Page 5: Top 8 Trends in Performance Engineering

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.

Page 6: Top 8 Trends in Performance Engineering

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.

Page 7: Top 8 Trends in Performance Engineering

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.

Page 8: Top 8 Trends in Performance Engineering

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.

Page 9: Top 8 Trends in Performance Engineering

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.

Page 10: Top 8 Trends in Performance Engineering

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.

Page 11: Top 8 Trends in Performance Engineering

Consulting Member of Technical Staff, Performance Engineering

Alexander PodelkoSenior Director, Technology and

Product Innovation

Todd DeCapuaFACILITATOR

Participants

Staff Performance Engineer Kranthi Paidi

Enterprise Performance Architect, Performance Engineering Evangelist

Mohit VermaProgram Manager,

Performance Engineering

Kishore Thota

Manager of PerformanceEngineering

Richard EllisonSoftware Architect

Petar Puskarich

DevOps DeveloperEvangelist

Wilson Mar

Senior Performance EngineerMatthew Adcock

Page 12: Top 8 Trends in Performance Engineering

Learn more at

convetit.com

Connect directly to your market.Convetit is the network where

teams and experts connect, providingcustom research and actionable insights

in days instead of months.