Performance Management for Cloudbased Applications STC 2012 1
Agenda Context Problem Statement Cloud Architecture Need for Performance in Cloud Performance Challenges in Cloud Generic IaaS / PaaS / SaaS - specific s / Remedies / Pointers 2
Context Cloud Computing gained significance mainly due to its impact on reduced CapEx and OpEx that is possible due to characteristics such as Elasticity, On-demand resource provisioning and Pay-per-Use that drive organizations to migrate some of their applications, data and infrastructure to Cloud Architectures. Few concerns of current organizations that plan for cloud adoption: How is performance management different for applications in Cloud compared to current architectures? What are the typical application performance challenges in Cloud Service Models (IaaS, PaaS, and SaaS)? How to address these performance management challenges? Objective is to highlight on significant performance challenges for Cloud-based applications and share best practices / pointers to address them 3
Generic Cloud Architecture Virtual Machines (VMs) Virtualization Layer Host Operating System Physical Servers CPU Memory Storage Network Fig.1. Cloud Architecture & Components Performance of any IT System depends on: Application (Code, Design, Architecture, Software and External Systems) Hardware (H/W) Infrastructure Software (S/W) Configuration Additional layers that impact Performance > Hypervisor Layer &Virtual Machines 4
Need for Performance in Cloud Figure.2 represents that Cost Overhead and Control over Application Performance (APM) decreases from IaaS to SaaS for Cloud Consumers. If APM not planned in Cloud, Cost Control over SaaS Cost Application Overhead Performance Applications due to Cap- Management Ex & Op-Ex application CPU VM PaaS IDEs, Runtime Environment Storage IaaS CPU VM Storage Fig.2. Cost Overhead Vs. Control over APM of managing performance offsets cost benefits by Cloud Service Models 5
Performance Management Challenges in Cloud Hypervisor Layer has certain overhead due to resource virtualization Timekeeping issue impacts on time Hypervisor based perf metrics Layer Shared Physical Environmen t Bursty load of an Application robs resources from other Applications sharing hardware infrastructure Stateful Workloads Elasticity & Scalability n-way Session Replication in VMs impacts performance & scalability Elasticity not a substitute for Application Scalability - App should be scalable first 6
Performance Management Challenges Category Challenge Recommendation/ Hypervisor Layer Time based perf. metrics in Virtualized environment will be inaccurate (timer interrupts get consumed by Hypervisor Layer due to VM scheduling & descheduling causing drift effect) Time measurements of apps will get impacted (significant with more VMs & heavy load) Architects/developer s should use Hypervisor specific APIs when designing routines to capture latency at application code level to overcome Timekeeping problem
Performance Management Challenges Category Challenge Recommendation/ Hypervisor Layer Virtualizing a physical NIC into multiple Virtual NICs will have more concurrent network traffic there by impacts bandwidth availability for application Few VMs should be assigned dedicated physical NICs depending on criticality of workload & performance SLAs. Appropriate sizing of physical NICs should be considered.
Performance Management Challenges Category Challenge Recommendation / Shared Physical Environment Sudden and unpredictable load of one application might take away more computing resources, due to Elasticity, thereby making short of available resources of other applications and thereby impacting their Performance Review and Analyze # of tenants sharing underlying physical hardware Load pattern, and MIN and MAX capacities for each App/Tenant Resource Sharing model b/w VMs(Shared/ Dedicated/Shared-Cap) Capture and analyze mapping b/w Virtual and Physical resources (E.g: A VM that has 4 CPUs (logical) might be assigned only 0.5 Physical CPU
Performance Management Challenges Category Challenge Recommendation / Stateful Workload For stateful workloads, session management and session replication across multiple VMs is costly due to n-way replication (store and retrieval operations) Usage of Distributed Caching solutions is a must in Cloud for Stateful Apps. (E.g: Oracle Coherence, MemCache, WebSphere extreme Scale) Ensure to store only minimum data in HTTP Sessions
Performance Management Challenges Category Challenge Recommendation / Elasticity Vs. Application Scalability Elasticity benefits are realized if and only if a given Application is Scalable first. Assess application s scalability prior to deploying in Cloud Employ performance engineering activities (Monitoring, Profiling, Tuning, Design and Architecture Optimization) to make application highly scalable
Performance Management Challenges - IaaS Category Challenge Recommendation / IaaS Cloud Consumer has control only over OS and applications deployed on top of it - but not on underlying hardware infrastructure Understand Mapping between Virtual and Physical Resources of VMs Analyze and Review VM Profile w.r.t resource sharing Model (Shared / Dedicated / Shared Cap) Understand Automation Rules for Resource Management of VMs Get Physical Host s Utilization besides VMs Utilization
Performance Management Challenges - PaaS Category Challenge Recommendation / PaaS No Access to Platform/Runtime s performance metrics No Access to modify / tune platform runtime configuration E.g.: JVM Heap size or GC Algorithms can not be tuned Performance bottleneck identification using profiling tools (Jprobe/JProfilier/.NET Profiler) is restricted Application should be designed to have custom instrumentation (AOP, Log4J Frameworks) to identify code-level hotspots Define contractual agreements with Vendor to get OS level performance metrics
Performance Management Challenges - PaaS Category Challenge Recommendation / PaaS Usage of Enterprise Performance tools (DynaTrace, HP Diagnostics, CA Introscope et al) is restricted by Platform s support and compatibility thereby limiting the performance monitoring and profiling activities Use native monitroing tools such as jvmstat,.net Review support provided by various Platform vendors (Google, Force.com) for Monitoring and Profiling tools required for performance management
Performance Management Challenges - SaaS Category Challenge Recommendation / SaaS No Control over Application Code, Platform and Hardware Infrastructure - Application performance completely depends on how Cloud Vendor manages it ONLY OPTION is to clearly define contractual agreement and penalty clauses with Cloud Provider for end-to-end application performance SLAs
Thank You 1 6