Pro-Active Performance Engineering

Slides:



Advertisements
Similar presentations
OpenMP Optimization National Supercomputing Service Swiss National Supercomputing Center.
Advertisements

Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08.
© 2014 VMware Inc. All rights reserved. BlazeMeter Load Testing Solution with vCloud Air High-level Overview Jan 2015.
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
Agile Testing with Testing Anywhere The road to automation need not be long.
© 2007 ADP 1 Java Capacity Planning & Performance Measurements Dr. Carl J. De Pasquale Electronic Numerical Integrator and Computer.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
Measuring zSeries System Performance Dr. Chu J. Jong School of Information Technology Illinois State University 06/11/2012 Sponsored in part by Deer &
Checkpoint Technologies Corporate Overview Faraz Syed VP of Technical Sales Office:
Development Testing – Is It Worth It? Arthur Hicken September 2012.
Introduction To Windows Azure Cloud
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
© Lindsay Bradford1 Scaling Dynamic Web Content Provision Using Elapsed-Time- Based Content Degradation Lindsay Bradford, Stephen Milliner and.
1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
Performance testing and engineering Raja Gourav Kokkiligadda, Performance Architect, Domestic and General.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Software Defined Networking BY RAVI NAMBOORI. Overview  Origins of SDN.  What is SDN ?  Original Definition of SDN.  What = Why We need SDN ?  Conclusion.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Static Software Metrics Tool
Jean-Philippe Baud, IT-GD, CERN November 2007
Connected Infrastructure
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Lecture 2: Performance Evaluation
Chapter 1 Introduction.
CIM Modeling for E&U - (Short Version)
Netscape Application Server
Dag Toppe Larsen UiB/CERN CERN,
性能测试那些事儿 刘博 ..
Dag Toppe Larsen UiB/CERN CERN,
Software Architecture in Practice
Welcome: Intel Multicore Research Conference
SonarQube and Sonatype Nexus IQ Server
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Software Design and Architecture
Chapter 1 Introduction.
All-Inclusive Testing in API Management
Connected Infrastructure
Chapter 18 MobileApp Design
Performance Testing Methodology for Cloud Based Applications
The Power Of Generic Infrastructure
Software Architecture in Practice
CMPE419 Mobile Application Development
Cloud Computing.
Graduation Project Kick-off presentation - SET
Many-core Software Development Platforms
A Framework for Automatic Resource and Accuracy Management in A Cloud Environment Smita Vijayakumar.
Overview of System Engineering
Migration Strategies – Business Desktop Deployment (BDD) Overview
Class project by Piyush Ranjan Satapathy & Van Lepham
Visual Studio 2005 “Personalized productivity”
Big Data - in Performance Engineering
Introduction to Software Testing
Automation Of Software Test
Moodle Scalability What is Scalability?
Smita Vijayakumar Qian Zhu Gagan Agrawal
Welcome to the Ericsson journey towards an Agile WoW!
Yikes! Why is my SystemVerilog Testbench So Slooooow?
Binding Times Binding is an association between two things Examples:
DAT381 Team Development with SQL Server 2005
Overview of Workflows: Why Use Them?
Performance And Scalability In Oracle9i And SQL Server 2000
Mapping DSP algorithms to a general purpose out-of-order processor
White Box testing & Inspections
Problems with Locks Andrew Whitaker CSE451.
CMPE419 Mobile Application Development
Java Virtual Machine Profiling. Agenda Introduction JVM overview Performance concepts Monitoring Profiling VisualVM demo Tuning Conclusions.
SPL – PS1 Introduction to C++.
ONAP Architecture Principle Review
Presentation transcript:

Pro-Active Performance Engineering Vijay Amrit Raj Sharma Sr. Manager, Software Development Oracle, Identity Cloud Services (IDCS/OICS) May 10, 2017 Confidential – Oracle Internal/Restricted

Confidential – Oracle Internal/Restricted

Agenda Introduction Scope Re-Active Performance Engineering Why Pro-Active Performance Engineering Pro-Active Performance Engineering – Measures Continuous Performance 1 2 3 4 5 6 Confidential – Oracle Internal/Restricted

Introduction Performance Engineering “Yeaah.. It’s important but will take it up soon” One solution fit all – Does not work with performance problems. Varied KPIs, Software Ecosystem etc Performance in Cloud Performance practices from ongoing product development at OICS/IDCS (Oracle Identity Cloud Services) Confidential – Oracle Internal/Restricted

Scope In Scope Not in scope Pro-Active Performance Engineering Performance Monitoring Performance Testing aka Load/Stress testing Performance issue troubleshooting methodologies and tools Performance based scalability Capacity Planning Confidential – Oracle Internal/Restricted

Re-Active Performance Engineering To ensure that software is meeting the performance objectives (KPIs) Response Time, Throughput, Resource Utilization, Workload etc Traditional approach to Performance Engineering Dependent on load/stress testing and KPIs (Key Performance Indicator) Helps in sizing and capacity planning to meet objectives Covers network, hardware, third-party frameworks etc Confidential – Oracle Internal/Restricted

Why Pro-Active Performance Engineering To keep focus on code optimizations (with tools, automation, reviews etc) Performance issues in production result of Initial design, patterns, framework, coding constructs Reduced “Cost Of Ownership” To align with agile development Confidential – Oracle Internal/Restricted

Who does Pro-Active Performance Engineering New Term: DevPerf Development + Performance Confidential – Oracle Internal/Restricted

Pro-Active Performance Measures - Manual Performance improvement at design time Performance: Design Guidelines Right choices of non functional artefacts makes big difference Caching : Distributed Cache – Near Cache versus Far/Remote Cache Algorithms Coupling and Cohesion Shared resources : Threads, connections, storage, I/O etc Third party frameworks and libraries Performance improvement during coding and code reviews Performance: Coding Guidelines Different caching frameworks have different strength. If requirement is only for local cache (and not distributed) then EHCache has superb read and write performance. But if distributed scalability is something you are targeting then Hazelcast provides superb in-memory data grid for dynamic scalability. Reddis is very easy intergratable with AWS Confidential – Oracle Internal/Restricted

Pro-Active Performance Measures : Automation Optimization via static code ruleset Use of static code analyzer framework PMD, FindBug, CheckStyle etc. 100s of rules available out of the box Can add your own rules (based on the review comments) Very Powerful and Fast Approach Integrated with IDE and build scripts. Analyzing code without executing it. Generally used to find bugs or ensure conformance to coding guidelines. The classic example is a compiler which finds lexical, syntactic and even some semantic mistakes Confidential – Oracle Internal/Restricted

Pro-Active Performance Measures : Automation (Cont.) Examples* of Performance static code ruleset (PMD) AvoidInstantiatingObjectsInLoops New objects created within loops should be checked to see if they can be created outside them and reused. public class Something { public static void main( String as[] ) { for (int i = 0; i < 10; i++) { Foo f = new Foo(); // Avoid this whenever you can it's really expensive } UseStringBufferForStringAppends UseArrayListInsteadOfVector UseArraysAsList *Source http://pmd.sourceforge.net/pmd-5.0.3/rules/java/optimizations.html Confidential – Oracle Internal/Restricted

Pro-Active Performance Measures - Code Profiling Optimize code performance by observing code’s runtime behavior Can be done on developers machines. No need of heavy standard infra. Runtime ‘profiles’ : Breakdown of the entire call flow execution Hotpaths Tools: jProfiler, JRAT, VisualVM (JDK7), JMC etc Confidential – Oracle Internal/Restricted

Pro-Active Performance Measures - Code Profiling (Continued) The profile below is from OCIS/IDCS showing duplicate/extra DB Calls to fetch user information for user modify operation Confidential – Oracle Internal/Restricted

Pro-Active Performance Measures - Code Profiling (Continued) Below is the screen shot showing code flow of 54% in CachedDataProvider Confidential – Oracle Internal/Restricted

Pro-Active Performance Measures Continuous Performance (CP) Confidential – Oracle Internal/Restricted

OIDC/IDCS Continuous Performance What is Continuous Performance ? Continuous check for performance degradation Check code’s runtime behavior for its optimization Confidential – Oracle Internal/Restricted

Continuous Performance (CP)… (Continued) How “Continuous Performance” is achieved ? Microservice REST Endpoints based test invocations Single thread execution (iterated over 600 times). Server latency only (Response Time) based comparison with baseline Automation using Gradle and Teamcity Relative performance measurement : No sophisticated H/W or Infra Confidential – Oracle Internal/Restricted

Continuous Performance : Framework Architecture Data Seeder Confidential – Oracle Internal/Restricted

Continuous Performance (CP).. Lifecycle/Process Teamcity Performance Test Suite Run Developer runs the test locally Developer adds performance test Analyze issues reported in generated report Performance Deviation Test Report (Emailed to all dev) Developer fixes the issues Developer fixes Performance Bugs JIRA Bugs For high deviation Confidential – Oracle Internal/Restricted

Continuous Performance : Test Report Confidential – Oracle Internal/Restricted

Continuous Performance : Conclusion Not a replacement for load testing Measures before code goes to QA/Performance Testing Team Remarkable framework/tool developed almost first time in software development industry and no parallel tool or framework exists that provide or supports Continuous Performance in software product/application development *Patent Under Progress Confidential – Oracle Internal/Restricted