Scaling PHP Applications with Zend Platform

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    18 Favorites & 1 Group

    Scaling PHP Applications with Zend Platform - Presentation Transcript

    1. SCALING PHP APPLICATIONS WITH ZEND PLATFORM
      • Programming in PHP since the days of 4.2.1
      • Working for Zend for the last 3½ years
        • Professional Services, Product Management
      • If you have a hard time with my name:
        • German: Shachar
        • Spanish: Shajar
        • Russian: Шахар
        • Arabic: ﺷﺨﺮ
        • Hebrew: שָחַר
      Who am I?
    2. Who are You?
      • ?
      • Some Introductions:
        • “ Scaling” ?
        • Introducing the Zend production stack
      • Scaling PHP Applications with Zend Platform:
        • White-box PHP application monitoring: PHP Intelligence
        • Comprehensive performance features
        • Parallel execution in PHP: Job Queues
        • Enabling session scalability: Session Clustering
      What are we talking about?
    3. What is “Scalability” ?
      • “ In telecommunications and software engineering, scalability is a desirable property of a system, a network, or
      • a process, which indicates its ability
      • to either handle growing amounts of work in a graceful manner, or to be readily enlarged”
                  • André B. Bondi, 'Characteristics of scalability and their impact on performance'
    4. Scalability means being able to handle the growing traffic...
    5. ...but also the growing infrastructure and codebase
    6. Introducing Zend's Production Stack
      • Zend has some development products:
        • Zend Studio, Zend Guard,
        • Zend Framework, PDT
      • And also some run-time products:
        • Zend Core
        • Zend Platform
        • Zend Engine :-)
        • ...Together, these make the Zend Production Stack
    7. Introducing Zend's Production Stack
      • Zend Core is Zend's certified and supported distribution of PHP
      • Zend Platform is Zend's enterprise-grade runtime environment for PHP applications
      • We think of it as a Web Application Server :
        • Application-level monitoring
        • Performance and scalability features
        • Cluster-wide configuration management
        • Integrated in a single product, certified, supported
    8. Introducing Zend Platform
    9. PHP Intelligence
    10. Application-level Monitoring
      • Most monitoring systems concentrate on network, hardware and OS issues
      • Zend Platform's PHP Intelligence monitors the execution of PHP scripts in your application
      • A lightweight PHP extension will “listen” for problems like slow executions, errors, and inconsistent memory usage
      • Alerts are displayed in a central GUI and can trigger predefined actions
    11. Application-level monitoring
    12. Root-cause analysis
      • When an event is captured, it's context information is also saved
        • GET, POST, Cookie, function data, backtrace, etc.
      • This information allows the developer to quickly pinpoint the problem
      • Integration with Zend Studio allows for instant debugging or profiling
      • You can instantly reproduce the HTTP request that triggered the problem
    13. Root-cause analysis
    14. PHP Intelligence – Key benefits
      • Get alerted on PHP issues as they happen throughout your production cluster
      • Get alerted on problems which are not captured by error logs (slow executions, excess memory consumption, etc.)
      • Dramatically reduce problem resolution time using instant debugging and root-cause analysis
      • Allows you to stay on top of the ever-growing codebase complexity
    15. Performance Management
    16. Comprehensive Performance
      • The performance of a web application can be affected by many different factors, for example:
        • Network load
        • PHP processing time
        • Web server load
        • Database server load
        • Application logic – task execution time
      • Improving the performance of a web application requires a combination of different measures
    17. Comprehensive Performance
    18. Comprehensive Performance Code Acceleration and Optimization
    19. Comprehensive Performance Data Caching API
    20. Using the data caching API
    21. Comprehensive Performance Job Queues
    22. Comprehensive Performance Full-Page Caching
    23. Setting up page caching rules
    24. Comprehensive Performance Output Compression
    25. Comprehensive Performance Client-side Cache Utilization
    26. Comprehensive Performance Zend Download Server
    27. Session Clustering
    28. Session Clustering – The Problem
      • One of the key issues when scaling out, is sharing session data between cluster nodes
      • Most load balancers will not provide 100% session affinity
      • Shared storage tends to become a major bottleneck
        • NFS: BAD performance, single point of failure
        • Database: better, but still a bottleneck
      • Distributes storage is better, but:
        • Still doesn't provide fail-over persistence
        • Scaling and managing the storage tends to become difficult
    29. Session Clustering - Example
    30. Session Clustering - Example
    31. Session Clustering - Example
    32. Session Clustering - Example
    33. Session Clustering - Example
    34. Session Clustering – Key Benefits
      • Linear scalability: add more web servers and you are done
      • Different levels of fail-over persistence:
        • Non-persistent memory storage
        • Disk-based storage with delayed write or write-through
        • High availability mode: Session replication on backup nodes
      • Easy to set up and manage
      • Good performance compared to alternative solutions
      • Transparent to end-users and developers
    35. Job Queues
    36. Job Queue – The Problem
      • PHP's isolated, shared-nothing architecture does not allow for easy parallel execution
        • One “job” must finish before the next one is executed
        • There is no asynchronous execution
        • Background processing of any kind requires a lot of “hacking”
    37. Job Queues - PHP In a Parallel Universe
    38. Job Queues – Key Features
      • Jobs are PHP scripts executed in the background
      • Jobs can be scheduled and managed through either:
        • An API from within your PHP application
        • From a centralized web GUI
      • Allows for elaborate scheduling rules
      • Provides job failure handling
      • Provides monitoring and execution statistics
      • Common Uses: order processing, transaction processing, mail submission, report generation, etc.
    39. Scheduling Jobs – From API or GUI
    40. Job Queues - Example
    41. Job Queues - Example
    42. Job Queues - Example
    43. Job Queues - Example
    44. Job Queues - Example
    45. Benchmark: Offloading e-mail submission Req / Sec # of subscribers Before Job Queue Offloading After Job Queue Offloading A quick benchmark of the changes above shows a dramatic improvement in the application's responsiveness, especially when the amount of subscribers grow.
    46. What Else?
    47. What Else?
      • Unified management console
      • Clustered configuration management
      • Integration between features and with other products
      • Installation, configuration and support services
    48. Questions?
    49. Thank You!
      • Have additional questions?
        • Look for me at the Zend booth ;)
        • [email_address]
        • http://zend.com/platform
      • This presentation will be available later today at http://slideshare.net/shahar

    + Shahar EvronShahar Evron, 2 years ago

    custom

    4520 views, 18 favs, 3 embeds more stats

    An overview of Zend Platform - Zend\'s enterprise g more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 4520
      • 4366 on SlideShare
      • 154 from embeds
    • Comments 0
    • Favorites 18
    • Downloads 0
    Most viewed embeds
    • 148 views on http://prematureoptimization.org
    • 5 views on file://
    • 1 views on http://209.85.193.101

    more

    All embeds
    • 148 views on http://prematureoptimization.org
    • 5 views on file://
    • 1 views on http://209.85.193.101

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events