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.

Guide to Application Performance: Planning to Continued Optimization

621 views

Published on

Supporting everything from mobile apps with thousands of concurrent users to global deployments processing millions of requests daily, Anypoint Platform has been put to test. In this session, MuleSoft experts will talk through case studies from our most demanding deployments and provide a best practice approach to designing and tuning applications for optimal performance.

Published in: Software
  • Be the first to comment

Guide to Application Performance: Planning to Continued Optimization

  1. 1. Guide to Application Performance
  2. 2. Aaron Weikle CEO@MS3 Mark Huang System Solutions Architect, Mulesoft
  3. 3. Performance enables outcomes 3 Better user experiences Scalable applications Resource efficiency
  4. 4. Performance a First Class Citizen 4 Part of the design process • Understand the entire solution architecture • You’re only as strong as your weakest point • Define what performance means - Throughput, Latency, Resource Utilization
  5. 5. Case Study
  6. 6. Case Study - Overview • Global Digital Transformation Initiative • Anypoint Platform one of many moving parts • Approximately 3 Million Transactions per hour • Average Target response time of < 400ms • Variable payload size from few hundred bytes to 1.4 MB 6 Large Global Enterprise - NA Deployment
  7. 7. Case Study - Architecture 7 Backend Data-sources Traffic Generator CloudHub Customer Backend proxy app VPN GW VPN GW Complex solution involving many moving part
  8. 8. Case Study - Approach 8 Backend Data-sources Traffic Generator CloudHub Customer Backend proxy app VPN GW VPN GW Analysed and understood traffic pattern: - Mixed load matters - Large Payload is a trigger
  9. 9. Case Study - Approach 9 Backend Data-sources Traffic Generator CloudHub Customer Backend proxy app VPN GW VPN GW Analysed time spent at each hop
  10. 10. Case Study - Approach 10 Backend Data-sources Traffic Generator CloudHub Customer Backend proxy app VPN GW VPN GW Setup traffic simulation at each hop - Isolated the issue to proxy app - Saw: CPU not scaling - Conclusion: Likely blocking
  11. 11. Case Study - Approach 11 Backend Data-sources Traffic Generator CloudHub Customer Backend proxy app VPN GW VPN GW Blocking Issue Resolved TLSv1.2 Improved performance but still short - Saw: CPU scaling but Maxed out - Found: TLSv1.2 in Java 7 slow
  12. 12. Case Study - Approach 12 Backend Data-sources Traffic Generator CloudHub Customer Backend proxy app VPN GW VPN GW Blocking Issue Patched TLSv1.1 Passing Future Production Targets - Exposed backend bottlenecks resolved by customer - Successful Live Deployment
  13. 13. Key Take Aways • Performance Tuning Best Practices: - Understand all pieces of the chain - Systematically isolate potential bottleneck and address them - Iterate over the approach • Partnership - Optimized application + fine grained logging led to key insights - Collaborative troubleshooting → systematically isolated the issue Lessons Learned
  14. 14. Performance Engineering Presented by: Mountain State Software Solutions Aaron Weikle, CEO
  15. 15. On-premises vs. CloudHub • Server clustering – Several servers working on a collection of jobs – Hazelcast data synchronization • Multi-worker – Several workers working on the same job – CloudHub Fabric
  16. 16. Traffic Management • Volumes – Batch: How much and when? – Real-time: How much and SLA needs – Computationally expensive transactions • Identification and Simulation – Record and playback – Synthetic transaction processing • Planning and Scheduling
  17. 17. Application Design • Efficient Thoughtful Designs • Caching – Application Based vs. Distributed Caching – 3rd Party Caching Server • Distributed Processing – VMs – Partitioning for load balancing – Replication for High Availability
  18. 18. Virtual Machine Tuning • Garbage Collection – Use Pools of Reusable Objects instead of dynamic creation of objects – Make use of local variables not declared in classes – Avoid using object wrappers under primitive types • Java Heap / PermGen – Properly size heap size based on size of live objects – Set Min and Max Heap Size to the same value
  19. 19. Tools
  20. 20. Testing Tools MUnit
  21. 21. Monitoring Tools
  22. 22. Conclusion • Performance engineering is key to successful API-led connectivity • Attention to detail will pay dividends • Think you need more help? Contact: Aaron Weikle akw@ms3-inc.com
  23. 23. Questions? Get started with the Anypoint Platform performance whitepaper ✓ Key architectural features of Mule runtime engine ✓ Performance benchmark data ✓ Customer use cases https://www.mulesoft.com/lp/whitepaper/api/anypoint-platform- performance

×