Microsoft TechDays 2011 - PHP on Windows


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Picture from
  • Picture from Creative commons, might not be able to use
  • Picture from
  • Holistic standpoint Right choice with Eclipse.. Zend Framework: integrating a variety of APIs Zend Server: self-contained stack, easily provisioned But how to enable the next generation of cloud computing? That’s where Simple Cloud API comes in.. Partners – Rightscale and Microsoft..
  • We at Zend offer a complete solution that enables companies to increase maturity across all life cycle stages. Let’s drill down into each of our solution areas…
  • Microsoft TechDays 2011 - PHP on Windows

    1. 1. Zend E nterprise PHP on Windows Rama Yurindra CTO, Zend/PHP Evangelist Rynet Group , Zend Authorized Solution & Training Partner South East Asian Region
    2. 2. <ul><li>Established in 1999, in Indonesia </li></ul><ul><ul><li>2006 Zend Certified Reseller Partner, ID </li></ul></ul><ul><ul><li>2007, Zend Certified Reseller Partner, MY </li></ul></ul><ul><ul><li>2008, Zend Certified Reseller Partner, SG </li></ul></ul><ul><ul><li>2009, Zend Authorized Solution Partner South East Asian Region </li></ul></ul><ul><ul><li>2009, listed as one of the 12 companies appointed to be Zend Auhtorized Training Partner covering South East Asian Region </li></ul></ul><ul><ul><li>2010, Patnership with New Horizons SG </li></ul></ul><ul><ul><li>2010, signed PHP Center of Excellence with MIMOS Berhad in Malaysia </li></ul></ul><ul><ul><li>2010, launched Enteprise PHP Center </li></ul></ul>Rynet Group Zend Technologies Authorized Solution & Training Partner ASEAN (ID, MY, SG)
    3. 3. About me <ul><li>Rama Yurindra </li></ul><ul><ul><li>Zend/PHP Evangelist </li></ul></ul><ul><ul><li>Co Founder & CTO of RYNET Group </li></ul></ul><ul><ul><li>Zend Authorized Solution Partner ASEAN </li></ul></ul><ul><ul><li>Zend Authorized Training Center ASEAN </li></ul></ul><ul><ul><li>Co Founder of PHP Indonesia </li></ul></ul><ul><ul><li>Board of Singapore PHP User Group </li></ul></ul><ul><ul><li>w/ Zend & MIMOS Berhad established PHP Center of Excellence, Malaysia </li></ul></ul><ul><ul><li>Founder & Chief Editor </li></ul></ul><ul><ul><ul><li>Enterprise PHP Center </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul>
    4. 4. Agenda – Microsoft TechDays: PHP on Windows <ul><li>PHP Overview & Case Studies </li></ul><ul><li>Microsoft & Zend Strategic Collaboration to bring PHP on Windows </li></ul><ul><li>Demo : Build a High-Performance PHP Stack with Windows IIS and Zend Server </li></ul><ul><li>Next Step to Monetize </li></ul><ul><li>PHP on Windows Training Programs </li></ul>
    5. 5. PHP Overview #
    6. 6. The Growth of PHP 20M 15M 10M 5M Rasmus Lerdorf Introduces PHP/FI PHP 4 Released <ul><li>1M Internet domains </li></ul><ul><li>Zend Engine </li></ul><ul><li>Zend Founded </li></ul>Yahoo! Standardizes on PHP PHP 5.0 (XML,SOAP,OOP) Zend Studio IBM, Oracle Endorse PHP Zeev Suraski & Andi Gutmans lead the development of PHP 3 Zend Framework & Eclipse project Microsoft relationship formed PHP Internet Domains 25M ZF and PDT released, PHP 4 EOL announced PHP Proliferation
    7. 7. Who Uses PHP – New Case Studies <ul><li>General Electric (GE Holding) </li></ul><ul><li>NYSE Euronext </li></ul><ul><li>BNP Paribas </li></ul><ul><li>FIAT Group </li></ul><ul><li> </li></ul><ul><li>France Telecom (Orange) </li></ul><ul><li>Deutsche Telecom </li></ul><ul><li>Cisco WebEx </li></ul><ul><li>And many more </li></ul>#
    8. 8. Microsoft & Zend Strategic Partnership Making PHP 1st class citizen on Windows Platform #
    9. 9. PHP on #
    10. 10. <ul><li>Windows dominates as PHP development platform </li></ul><ul><ul><li>Over 75% of developers use Windows </li></ul></ul><ul><li>Few production deployments on Windows platforms </li></ul><ul><li>Why? </li></ul><ul><ul><li>PHP did not run as well on Windows </li></ul></ul><ul><ul><li>Limited connectivity to key Windows services (e.g. SQL Server) </li></ul></ul>PHP on Windows - Background #
    11. 11. Zend & Microsoft Partnership <ul><li>Goal: </li></ul><ul><li>To enhanc e the performance and reliability of running PHP applications on Windows Server, and contributing these enhancements to the Open Source community. </li></ul><ul><li>Richer Functionality on the Windows Platform </li></ul><ul><li>Better Integration with Windows Applications and Services </li></ul># “ Zend is a clear leader in the PHP community, and we are excited … to provide developers using PHP with the best possible experience within a Microsoft environment.” Bill Hilf, General Manager of Technical Platform Strategy at Microsoft
    12. 12. Strategic Collaboration <ul><li>Multi-year collaboration announced 10/31/2006 </li></ul><ul><ul><li>Significant engineering investments on both sides </li></ul></ul><ul><li>The result : </li></ul><ul><ul><li>PHP codebase improvements on Windows Platform </li></ul></ul><ul><ul><li>Improvements in FastCGI for IIS (included in Windows Server 2008) </li></ul></ul><ul><ul><li>Stable, high-performance PHP production environment for Windows </li></ul></ul><ul><ul><li>Improvements in IIS 7 support for PHP </li></ul></ul><ul><ul><li>SQL Server Native driver to PHP </li></ul></ul><ul><ul><li>Windows Azure component in Zend Framework </li></ul></ul><ul><ul><li>C ollaborating on the open source SimpleCloud project, </li></ul></ul>#
    13. 13. Zend on Windows Server Rebate Program #
    14. 14. Why Run Zend Server on Windows Server? <ul><li>Better performance PHP opcode acceleration, page and data caching, and job queue features, to deliver top performance for PHP applications on Windows Server. Native MSI support </li></ul><ul><li>Easy to deploy and use a complete PHP stack, including the PHP runtime, commonly-used extensions, Zend Framework, and Microsoft SQL Server driver for PHP, all available as a standard MSI installer. Native IIS support (IIS 5.1, IIS 6, IIS7) </li></ul><ul><li>Easy to monitor application monitoring and code tracing to enable early problem detection and rapid resolution. IIS automated failed request tracing, the joint stack enables developers to quickly troubleshoot issues in testing and production and to improve application availability. Bundles MS FastCGI for Server 2003 and XP </li></ul><ul><li>Easy to manage –greatly simplifies configuration and management of the PHP stack from a single point of visibility and control. </li></ul><ul><li>Fully-supported – Zend Server customers receive the latest updates and hot fixes backed by 24x7x365 support. Zend Training and Zend Certification programs are also available. </li></ul>
    15. 15. Demo Build a High-Performance PHP Stack with Windows IIS and Zend Server #
    16. 16. What is Zend Server? <ul><li>...and why should I care? </li></ul>
    17. 17. ...Well, Just ask your friend in Marketing! “ Zend Server is a complete, enterprise-ready Web Application Server for running and managing PHP applications that require a high level of reliability, performance and security.”
    18. 18. Let's try to make sense out of that.. <ul><li>Zend Server is: </li></ul><ul><ul><li>A complete, well tested PHP runtime environment </li></ul></ul><ul><ul><li>Supported and updated by Zend </li></ul></ul><ul><ul><li>Comes with a set of extra features that: </li></ul></ul><ul><ul><ul><li>Improve the performance and reliability of PHP applications </li></ul></ul></ul><ul><ul><ul><li>Make it easier to manage a consistent PHP environment </li></ul></ul></ul><ul><li>Comes in two flavors: </li></ul><ul><ul><li>Zend Server </li></ul></ul><ul><ul><li>Zend Server Community Edition </li></ul></ul>
    19. 19. Manageability Features <ul><li>...making PHP even simpler </li></ul>
    20. 20. Installation <ul><li>Zend Server uses OS-native installers </li></ul><ul><ul><li>Linux: Deb and RPM repositories </li></ul></ul><ul><ul><li>Windows: MSI </li></ul></ul><ul><ul><li>Mac OS X*: PKG installer </li></ul></ul><ul><li>This is good because: </li></ul><ul><ul><li>Native means well-known, convenient, proven, reliable </li></ul></ul><ul><ul><li>Upgrading, updating, modifying and removing is easy </li></ul></ul><ul><ul><li>Automating, scripting and bundling is also easy </li></ul></ul>* Mac OS X is Community Edition only
    21. 21. Zend Server: Top Choice for Windows Environments <ul><li>Collaborating with Microsoft since 2006 </li></ul><ul><li>Fastest and best integrated PHP runtime for Windows </li></ul><ul><li>Native MSI support </li></ul><ul><li>MSI-based hot fixes </li></ul><ul><li>Native IIS support (IIS 5.1, IIS 6, IIS7) </li></ul><ul><li>SQL Server for PHP driver </li></ul><ul><li>Bundles MS FastCGI for Server 2003 and XP </li></ul><ul><li>With Microsoft’s support & best practices </li></ul>
    22. 22. The Administration Interface <ul><li>Zend Server's GUI allows you to conveniently... </li></ul><ul><ul><li>Control the different Zend Server components </li></ul></ul><ul><ul><li>Control your PHP settings </li></ul></ul><ul><ul><ul><li>PHP Extensions </li></ul></ul></ul><ul><ul><ul><li>PHP Directives </li></ul></ul></ul><ul><ul><li>Monitor the current system status </li></ul></ul><ul><ul><ul><li>Extension status </li></ul></ul></ul><ul><ul><ul><li>PHP status </li></ul></ul></ul><ul><ul><ul><li>Logs </li></ul></ul></ul><ul><ul><ul><li>Available updates & security fixes </li></ul></ul></ul>
    23. 23. Performance Features
    24. 24. Zend Server's approach to performance <ul><li>A Web application's performance is affected by many different factors... </li></ul>...This is why taking a single measure will only give partial results
    25. 25. Zend Server's approach to performance <ul><li>Really improving performance requires combining different measures: </li></ul><ul><ul><li>Configuration Optimization </li></ul></ul><ul><ul><li>Opcode Optimization and Caching </li></ul></ul><ul><ul><li>Data Caching and Page Caching </li></ul></ul><ul><ul><li>Off-line or parallel execution </li></ul></ul><ul><li>Not all performance optimizations are equal </li></ul><ul><ul><li>Some are almost free and should be done in almost all cases </li></ul></ul><ul><ul><li>Some are expensive and should not be done without insight </li></ul></ul><ul><li>Zend Server provides the measures, and the insight! </li></ul>
    26. 26. Optimizer+ <ul><li>Eliminates the stuff you don't really need: </li></ul><ul><ul><li>Code optimizer </li></ul></ul><ul><ul><ul><li>Optimizes certain code fragments to improve execution speed </li></ul></ul></ul><ul><ul><li>Opcode cache </li></ul></ul><ul><ul><ul><li>Caches the optimized, compiled bytecode in RAM </li></ul></ul></ul><ul><ul><ul><li>Reduces or eliminates compile time </li></ul></ul></ul><ul><ul><ul><li>Reduces or eliminates disk access </li></ul></ul></ul>
    27. 27. Data Caching <ul><li>Provides a set of API functions for caching of data items </li></ul><ul><ul><li>DB query results, web service calls, complex or hard-to-get data </li></ul></ul><ul><ul><li>Output elements </li></ul></ul><ul><ul><li>Allows skipping slow PHP code chunks </li></ul></ul><ul><ul><li>Shared memory and Disk storage backends </li></ul></ul><ul><ul><li>Data could be grouped using namespaces </li></ul></ul><ul><ul><li>APC user cache compatibility layer </li></ul></ul><ul><ul><li>Zend Framework Zend_Cache_Backend adapters </li></ul></ul>
    28. 28. Page Caching <ul><li>Don't execute a single line of PHP if you don't have to... </li></ul><ul><ul><li>Caches entire HTTP response </li></ul></ul><ul><ul><li>Super fast (seriously!) </li></ul></ul><ul><ul><li>Configured from UI, no code changes required </li></ul></ul><ul><ul><li>Live / cached decision is based on request or session parameters </li></ul></ul><ul><ul><li>Variants can be created based on request or session parameters </li></ul></ul>
    29. 29. Page Caching
    30. 30. Reliability Features <ul><li>Make sure it keeps running! </li></ul>
    31. 31. Reliability? <ul><li>Getting your application out there is one thing, keeping it working properly is a different story! </li></ul><ul><li>Zend Server helps you by: </li></ul><ul><ul><li>Making sure your software is up-to-date, including critical fixes </li></ul></ul><ul><ul><li>Monitoring your apps for errors, slowdowns and other troubles </li></ul></ul><ul><ul><li>Capturing data that can be used when resolving any detected issues </li></ul></ul>
    32. 32. Application Level Monitoring <ul><li>Zend Server Monitor will watch your application for: </li></ul><ul><ul><li>PHP Errors (including warnings, notices, uncaught exceptions...) </li></ul></ul><ul><ul><li>Failing functions (user-defined or internal) </li></ul></ul><ul><ul><li>Failing DB queries </li></ul></ul><ul><ul><li>Slow functions (user-defined or internal) or DB queries </li></ul></ul><ul><ul><li>Slow request executions </li></ul></ul><ul><ul><li>High memory consumption </li></ul></ul><ul><ul><li>Errors reported by Zend Server components </li></ul></ul><ul><li>When an issue is detected, Zend Server will report an event </li></ul>
    33. 33. Root Cause Analysis <ul><li>Recurring events are aggregated and placed on a timeline </li></ul><ul><ul><li>So you can know if a problem repeats, and if so when </li></ul></ul><ul><li>Each event report contains context information that can assist in debugging the event: </li></ul><ul><ul><li>URL, file, line, error message, repeat count etc. </li></ul></ul><ul><ul><li>Request information (GET, POST, COOKIE etc.) </li></ul></ul><ul><ul><li>Server information </li></ul></ul><ul><ul><li>Session Information </li></ul></ul><ul><ul><li>Backtrace (if relevant) </li></ul></ul><ul><li>For many errors, this information is crucial for debugging </li></ul>
    34. 34. Integration with Zend Studio <ul><li>Zend Server integrates with Zend Studio and allows you to “replay” an event </li></ul><ul><ul><li>In a debugging session </li></ul></ul><ul><ul><li>In a profiling session </li></ul></ul><ul><ul><li>This can be done with one button click from the GUI </li></ul></ul><ul><ul><li>… or, by exporting the event data and passing it to a developer, from the developer's IDE </li></ul></ul><ul><ul><li>You can also “replay” on an alternate testing server </li></ul></ul><ul><li>In many cases this eliminates time spent on reproduction </li></ul>
    35. 35. Code Tracing <ul><li>Reproducing an issue is not always possible... </li></ul><ul><ul><li>Dependency on specific SESSION state </li></ul></ul><ul><ul><li>Dependency on specific database state </li></ul></ul><ul><ul><li>“ Replaying” the request is risky or impossible </li></ul></ul><ul><li>Zend Code Tracing can capture the entire execution flow </li></ul><ul><ul><li>...and, it is efficient enough to be used in most production environments! </li></ul></ul>“ Hindsight is always twenty-twenty.” - Billy Wilder
    36. 36. Code Tracing <ul><li>Can be used in several ways: </li></ul><ul><ul><li>Automatic tracing in case of a Zend Monitor event </li></ul></ul><ul><ul><ul><li>For example a PHP error, a slow execution or high memory usage </li></ul></ul></ul><ul><ul><li>Manually through the GUI or from a browser </li></ul></ul><ul><ul><li>Through API </li></ul></ul><ul><li>Can capture the following information: </li></ul><ul><ul><li>Execution tree including function calls and included files </li></ul></ul><ul><ul><li>Function agrument and return parameters </li></ul></ul><ul><ul><li>Output and header generation </li></ul></ul><ul><ul><li>Location of errors, exceptions and Zend Monitor events </li></ul></ul><ul><ul><li>For each node, execution time and memory usage is measured </li></ul></ul>
    37. 37. Code Tracing
    38. 38. Updates & Hot Fixes from Zend <ul><li>Zend Server is regularly updated with... </li></ul><ul><ul><li>PHP releases </li></ul></ul><ul><ul><li>Zend Framework releases </li></ul></ul><ul><ul><li>Important patches to PHP and supporting components </li></ul></ul><ul><ul><ul><li>Bugs fixed by the PHP team but not yet released </li></ul></ul></ul><ul><ul><ul><li>Patches committed by Zend to the PHP source tree, but not yet released </li></ul></ul></ul><ul><li>Zend also issues hot-fixes when needed </li></ul><ul><ul><li>All relevant security reports are analyzed by Zend </li></ul></ul><ul><ul><li>This includes PHP, extensions, libraries, and other components </li></ul></ul><ul><ul><li>Zend is committed to releasing hot-fixes for critical issues </li></ul></ul>
    39. 39. Demo : Installation <ul><li>Zend Server on Windows </li></ul>
    40. 40. Download Zend Server from Zend.Com #
    41. 41. Fastest and best integrated PHP runtime for Windows Out of the box seamless installation of PHP on Windows #
    42. 42. Zend Server will also install the MS-SQL Server Native Client #
    43. 43. C onfigure Zend Server to integrate with your existing IIS #
    44. 44. Standard & native MSI installer #
    45. 45. Dashboard provides a quick overview of recent PHP events, such as errors and warnings, as well as information on the current status of the various Zend add-on components #
    46. 46. Application Monitoring <ul><li>Watches your application for: </li></ul><ul><ul><li>PHP Errors (including warnings, notices, uncaught exceptions...) </li></ul></ul><ul><ul><li>Failing functions </li></ul></ul><ul><ul><li>Failing DB queries </li></ul></ul><ul><ul><li>Slow functions or DB queries </li></ul></ul><ul><ul><li>Slow request executions </li></ul></ul><ul><ul><li>High memory consumption </li></ul></ul><ul><li>When an issue is detected, an event is reported </li></ul>
    47. 47. Diagnostics: Code Tracing <ul><li>Reproducing problems is often difficult and time-consuming </li></ul><ul><li>Zend Server captures the full execution flow in testing or production </li></ul><ul><li>Allows the developer to “step back in time” and quickly determine root cause </li></ul><ul><li>Integrated with Zend Studio </li></ul>
    48. 48. High Availability: Session Clustering <ul><ul><li>When one server fails, user’s session is maintained while failing over to another server </li></ul></ul>
    49. 49. Centralized Management <ul><li>Ensures consistent configuration </li></ul><ul><ul><li>Alert on configuration discrepancies to prevent application issues </li></ul></ul><ul><li>Centralized monitoring </li></ul><ul><li>Cloud “friendly” </li></ul><ul><ul><li>Quickly add servers </li></ul></ul><ul><ul><li>Easily manage any number of servers </li></ul></ul>
    50. 50. Updates & Hot Fixes from Zend <ul><li>Zend Server is regularly updated with: </li></ul><ul><ul><li>PHP releases </li></ul></ul><ul><ul><li>Zend Framework releases </li></ul></ul><ul><ul><li>Important patches to PHP and supporting components </li></ul></ul><ul><ul><li>Bugs fixed by the PHP team but not yet released </li></ul></ul><ul><ul><li>Patches committed by Zend to the PHP source tree, but not yet released </li></ul></ul><ul><li>Zend also issues hot-fixes when needed </li></ul><ul><ul><li>All relevant security reports are analyzed by Zend </li></ul></ul><ul><ul><li>This includes PHP, extensions, libraries, and other components </li></ul></ul><ul><ul><li>Zend is committed to releasing hot-fixes for critical issues </li></ul></ul>
    51. 51. Zend - the Cloud and Virtual DataCenters Simple Cloud API Cloud Develop RAD Debugging Testing Manage Monitoring Diagnostics Performance Security Simple Cloud API Amazon EC2
    52. 52. Next Step to Monetize #
    53. 53. Path to Enterprise PHP #
    54. 54. How ’s Zend Holistic Approach to Enterprise PHP
    55. 55. Next Step <ul><li>Download & “Play” with PHP on Zend Server </li></ul><ul><li>Start a Pilot Project, convince your boss/customers </li></ul><ul><li>Get yourself Trained by Professionals </li></ul><ul><li>Get professional Support from Zend & Microsoft </li></ul><ul><li>Start to generate some Online revenues with PHP on Windows </li></ul><ul><li>Pass the Zend/PHP Certification for Global Recognition </li></ul><ul><li>Actively involve in PHP Community </li></ul>#
    56. 56. Thank you! <ul><li>For More Information Please Visit : </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li>Email: [email_address] Twitter: @ramayurindra @ephpc </li></ul>