Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Backend Performance engineering for Beginners
Rating: 3.7 out of 5(20 ratings)
50 students

Backend Performance engineering for Beginners

Maximizing Backend Efficiency: A Performance Engineering Journey
Created bySid Sriram
Last updated 5/2024
English
English [Auto],

What you'll learn

  • Software Engineers
  • System Administrators/DevOps Engineers
  • Data Engineers
  • Quality Assurance/Test Engineers
  • Technical Managers/Architects

Course content

1 section16 lectures2h 40m total length
  • Introduction20:27

    Master back end performance engineering to optimize server-side performance and efficiency. Explore key metrics such as response time, throughput, and utilization, and caching strategies to prevent bottlenecks.

  • Performance Engineering Basics - Part 19:07

    Discover how performance modeling helps understand, predict, and optimize software and network performance. Learn about response time, capacity planning, scalability, and testing under varying loads to ensure user experience.

  • Performance Engineering Basics - Part 23:04

    Explains the basics of performance engineering, focusing on users, load generation, and memory and CPU utilization to monitor resource performance and throughput.

  • Performance Engineering Basics - Part 31:35

    Ensure 24x7 availability by using clustering and load balancers to distribute load across multiple servers, and implement disaster recovery for natural disasters to safeguard applications.

  • Performance Engineering Basics - Part 43:38

    Explore the core concepts of performance engineering basics: network, bandwidth, and latency; learn about web page size, HTTP/1.1, and Java profiling to identify bottlenecks.

  • JAVA Performance Engineering Concepts19:58

    Explore Java performance concepts by examining the JVM architecture, including class loader, heap and stack, and learn to monitor memory and threads with JConsole and VisualVM.

  • JAVA Performance Engineering Concepts - Part 25:32

    Configure the JVM heap with JMX and JMS, explore eden and the young generation, survivor spaces, and tenured memory, and compare serial, parallel, concurrent mark-sweep, and G1 garbage collectors.

  • JAVA HEAP DUMP & Garbage Collection Analysis8:09

    Learn how to capture a Java heap dump, why it's needed, and analyze it with tools like IBM heapdump analyzer and the MAT tool, plus GC log analysis and visualizers.

  • Introduction to Infrastructure Monitoring15:41

    Explore infrastructure monitoring as backbone of performance engineering, analyzing CPU, memory, disk, and IO wait time to identify bottlenecks and optimize cloud or on premise systems with Grafana and Prometheus.

  • JVM Out-of-Memory Error Analysis7:58

    Analyze the JVM memory model, including heap, stack, and metaspace, to diagnose out-of-memory errors, identify memory leaks and excessive object creation, and use heap dumps and profiling to prevent issues.

  • Introduction-to-Performance-Measurement-and-Reporting7:51
  • JAVA Thread concepts111:45

    Explore java thread pooling and how to configure thread pools to optimize performance and scalability by reusing threads and tuning core pool size, maximum pool size, and queue capacity.

  • Java thread concepts312:50

    Leverage JDBC connections and pool management to reduce overhead, deliver faster responses, and scale apps, with practical guidance on pool size, timeouts, monitoring, SSL, and cloud trends.

  • Performance Engineering Linux Commands6:23

    Master linux performance engineering by using top and htop for cpu and memory, and free, vmstat, iostat, iotop, netstat, and ps for comprehensive monitoring.

  • Monitoring-and-Profiling-An-Introduction12:27

    Learn real-time monitoring and profiling to pinpoint bottlenecks in end-to-end request flows, using Prometheus, Telegraf, Grafana, and profiling tools like JVisualVM and APM suites.

  • Oracle_AWR Analysis13:47

    Explore Oracle AWR analysis for performance engineering by collecting AWR reports during tests, identifying high-CPU SQL queries, and optimizing SQL performance and resources.

Requirements

  • No programming skills required for this course

Description

This course provides a comprehensive understanding of the principles, methodologies, and tools necessary to optimize the performance of backend systems in various software applications. Participants will gain insights into the intricacies of backend performance, including identifying bottlenecks, optimizing database queries, improving network latency, and scaling infrastructure.

Key Topics Covered:

  1. Introduction to Backend Performance Engineering:

    • Understanding performance metrics and benchmarks.

    • Importance of backend performance in modern software applications.

  2. Profiling and Monitoring Tools:

    • Utilizing profiling tools to identify performance bottlenecks.

    • Implementing monitoring solutions for real-time performance analysis.

  3. Database Performance Optimization:

    • Techniques for optimizing database queries.

    • Indexing strategies for improving database performance.

    • Utilizing caching mechanisms to reduce database load.

  4. Network Performance Optimization:

    • Analyzing and optimizing network latency.

    • Implementing content delivery networks (CDNs) for improved data delivery.

    • Managing network congestion and optimizing data transfer protocols.

  5. Backend Architecture Design:

    • Design patterns for scalable backend architecture.

    • Load balancing strategies for distributing incoming traffic.

    • Horizontal and vertical scaling techniques.

    • Performance Testing and Benchmarking:

      • Designing effective performance tests.

      • Benchmarking tools and methodologies.

      • Interpreting and analyzing performance test results.

  6. Course Format:

    The course will be delivered through a combination of lectures, hands-on exercises, case studies, and discussions. Participants will have the opportunity to apply the concepts learned in the course to real-world scenarios through practical exercises and projects.

Who this course is for:

  • Beginner Engineer/Testers/Quality Engineers