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.
SCALING PHP APPLICATIONS  WITH   ZEND PLATFORM
<ul><li>Programming in PHP since the days of 4.2.1 </li></ul><ul><li>Working for Zend for the last 3½  years </li></ul><ul...
Who are You? <ul><li>? </li></ul>
<ul><li>Some Introductions: </li></ul><ul><ul><li>“ Scaling”  ? </li></ul></ul><ul><ul><li>Introducing the Zend production...
What is “Scalability” ?  <ul><li>“ In telecommunications and software engineering, scalability is a desirable  property of...
Scalability means being able to handle the growing traffic...
...but also the growing infrastructure and codebase
Introducing Zend's Production Stack <ul><li>Zend has some development products: </li></ul><ul><ul><li>Zend Studio, Zend Gu...
Introducing Zend's Production Stack <ul><li>Zend Core  is Zend's certified and supported distribution of PHP  </li></ul><u...
Introducing Zend Platform
PHP  Intelligence
Application-level Monitoring <ul><li>Most monitoring systems concentrate on network, hardware and OS issues </li></ul><ul>...
Application-level monitoring
Root-cause analysis <ul><li>When an event is captured, it's context information is also saved </li></ul><ul><ul><li>GET, P...
Root-cause analysis
PHP Intelligence – Key benefits <ul><li>Get alerted on PHP issues as they happen throughout your production cluster </li><...
Performance Management
Comprehensive Performance <ul><li>The performance of a web application can be affected by many different factors, for exam...
Comprehensive Performance
Comprehensive Performance Code Acceleration and Optimization
Comprehensive Performance Data Caching API
Using the data caching API
Comprehensive Performance Job Queues
Comprehensive Performance Full-Page  Caching
Setting up page caching rules
Comprehensive Performance Output  Compression
Comprehensive Performance Client-side Cache Utilization
Comprehensive Performance Zend Download  Server
Session  Clustering
Session Clustering – The Problem <ul><li>One of the key issues when scaling out, is sharing session data between cluster n...
Session Clustering - Example
Session Clustering - Example
Session Clustering - Example
Session Clustering - Example
Session Clustering - Example
Session Clustering – Key Benefits <ul><li>Linear scalability: add more web servers and you are done </li></ul><ul><li>Diff...
Job Queues
Job Queue – The Problem <ul><li>PHP's isolated, shared-nothing architecture does not allow for easy parallel execution </l...
Job Queues - PHP In a Parallel Universe
Job Queues – Key Features <ul><li>Jobs are PHP scripts executed in the background  </li></ul><ul><li>Jobs can be scheduled...
Scheduling Jobs – From API or GUI
Job Queues - Example
Job Queues - Example
Job Queues - Example
Job Queues - Example
Job Queues - Example
Benchmark: Offloading e-mail submission Req / Sec # of subscribers Before Job Queue Offloading After Job Queue Offloading ...
What Else?
What Else? <ul><li>Unified management console </li></ul><ul><li>Clustered configuration management </li></ul><ul><li>Integ...
Questions?
Thank You! <ul><li>Have additional questions? </li></ul><ul><ul><li>Look for me at the Zend booth ;) </li></ul></ul><ul><u...
Upcoming SlideShare
Loading in …5
×

Scaling PHP Applications with Zend Platform

10,183 views

Published on

An overview of Zend Platform - Zend\'s enterprise grade runtime environment for PHP, and how it helps users scale their PHP applications. The presentation overviews the main features of Zend Platform: PHP Intelligence, Performance, Session Clustering and Job Queues.

Published in: Technology, Business

Scaling PHP Applications with Zend Platform

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

×