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.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Learn more at
convetit.com
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.