SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Building the perfect PHP app for the enterprise
Episode 1: Keeping up with
PHP
Rod Cope
August 31, 2016
2
Series overview
Now: Keeping up with PHP
September 14: Developing apps faster
Top lessons to deliver apps quickly, including CD principles and tools, digging into
app performance, and using frameworks and extensions.
September 28: Resolving problems and high availability
Your reputation as a miracle worker is secure when using these principles to isolate
faults, optimize scale, and synchronize sessions across clusters.
October 12: Optimizing performance
Keep users on your site by learning how to use background jobs and caching,
measure performance, and make data-driven decisions.
Rod Cope, CTO
Rogue Wave Software
4
Agenda
1. What is the perfect enterprise PHP app?
2. Maintaining your stack
3. Application security
4. System failure!
5. Conclusion
6. Q&A
What is the perfect
enterprise PHP app?
6
Enterprise PHP is mission-critical
• Built securely
• Delivers optimal performance + scale
• Always on
• Meets release timelines
• Modernizes legacy business logic
• Clear support path (production + LTS)
7
DIY vs. enterprise
Complexity
Scale
ROI
DIY
Ideal enterprise
Volume
scales
beyond
servers
Performance
degradation
Administrativ
e costs
Typical growth path
8
The perfect PHP app for the
enterprise
Secure
Performant
Scalable (up/down)
Always on
Agile releases Production support
On-premises
Cloud
Mobile
9
PHP 7.0 vs. 5.6
10
Example
• Automated free-trial system for web conferencing & collaboration
products
• Challenge: streamline sign-up experience, collect user data, deliver
to CRM, and create host account
• Requirements:
– runs on LAMP (virtualized Linux servers on VMWare)
– five-nines availability, runs on clustered server architecture with
complete failover solution to backup data center
– Centralized monitoring, shared sessions, session clustering,
load balancing, job queueing
• Used: Zend PHP stack, Zend Server, Zend Framework, Zend
Studio IDE
Download case study
Poll #1
Do you consider your application
to be enterprise PHP?
a. Yes
b. No
c. Not sure
Maintaining your
stack
13
Maintenance activities
Maintaining an up-to-date PHP stack is key to achieving security,
performance, and high availability
PHP drivers frameworks
Other
components
• Services
• PDOs
• etc.
• SQL Server
• MongoDB
• DataStax
• etc.
• Laravel
• Phalcon
• CakePHP
• etc.
Cost = developers + testers + DevOps + sys admins
14
Time spent
*Based on industry average (Forrester research)
Time spent on PHP maintenance
0% 5% 10% 15% 20% 25% 30%
Sys admins
DevOps
Testers
Developers
15
LAPP
WAMP
Best practices
Use fully-tested stacks
Get latest security updates
Verify compatibility with other packages
Ensure technical support
Plan time for upgrades
Don’t forget LAMP!
Poll #2
Is your application and deployment
stack up to date?
a. Yes
b. Mostly
c. Partly
d. No
17
Maintaining app security
• Need to keep up with vulnerabilities
– National Vulnerability Database
• Proactively look for flaws and act to mediate them
• Don’t wait for next Heartbleed
Application security
19
Is PHP insecure?
• Everyone says it is
• Analysis of secure versions*
– Supported by PHP officially (the latest secure patch with no known vulnerabilities)
– Maintained by a popular, stable Linux distribution
*Jack Skinner, 2015 data
20
The reality
Use the latest
version
OWASP
• PHP is as secure as any other major language
• Anyone can write insecure PHP – it’s not the language’s job, it’s yours
Understand best
practices
Contribute back
21
SQL Injection
• SQL injection (OWASP A1)
– Using SQL input data to execute unauthorized queries on a database
– Results in corruption, data theft, takeover
• Keep untrusted data separate from commands and
queries
• Use input validation
• Use a safe API that avoids the use of the interpreter
and offers a parameterized interface, PDO, or
wrappers for prepared statements
22
Broken authentication/session
management
• Broken authentication and session management (OWASP A2)
– Incorrectly implemented or missing schemes
– Results in user impersonation, data theft, “do anything”
• Use strong authentication and session management
controls
• Apigility with OAuth2
• uLogin
• Avoid using HTTP for login
• Regenerate session ID
23
Cross-site scripting
• Cross-site scripting (OWASP A3)
– Using script code (like JavaScript) to insert data into a server response
without proper validation/escaping
– Results in session hijacking, site defacement, redirects, etc.
• Use input validation and escape output
• Use input white listing to enforce characters, length,
format, etc.
• Use CAPTCHAs
System failure!
25
Failure costs
Average cost of application downtime
$1.25B to $2.5B
Average cost of a critical application failure per hour
$500K to $1M
Average time to restore production failure
More than 1 hour More than 8 hours
47% 5% IDC DevOps and the cost of downtime, 2014
26
How do you compare?
27
“Break”-ing it down
How do you know? • Monitoring
How do you reproduce?
• Log files
• Code tracing
• Z-Ray
How do you prevent?
• Testing!
• Load balancing
• Job queues
• clustering
How do you minimize downtime? • Support
Poll #3
How do you implement enterprise features, such as
clustering, job queuing, and monitoring?
a. We integrate open source packages
b. We write our own
c. We use Zend Server or another commercial
product
d. Don’t know
29
Conclusion
If no one is screaming when it goes down, it’s not enterprise PHP.
So invest in scream prevention.
30
The fastest way to enterprise PHP
Free trial
www.zend.com
• Full, tested, secure PHP stack
• Z-Ray vision deep into your app
• Code tracing
• Job queuing and caching
• Deployment and DevOps
• High availability session clustering
• Backed by support & services
Q & A
32
Watch on demand
• Watch this webinar on demand
• Read the recap blog to see the results of the
polls and Q&A session
33
Stay tuned
September 14: Developing apps faster
Top lessons to deliver apps quickly, including CD principles and tools, digging
into app performance, and using frameworks and extensions.
September 28: Resolving problems and high availability
Your reputation as a miracle worker is secure when using these principles to
isolate faults, optimize scale, and synchronize sessions across clusters.
October 12: Optimizing performance
Keep users on your site by learning how to use background jobs and caching,
measure performance, and make data-driven decisions.
Building the perfect PHP app for the enterprise
Episode 1: Keeping up with
PHP
Rod Cope
August 31, 2016

Weitere ähnliche Inhalte

Was ist angesagt?

ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
Nexcess.net LLC
 

Was ist angesagt? (20)

Strategic Modernization with PHP on IBM i
Strategic Modernization with PHP on IBM iStrategic Modernization with PHP on IBM i
Strategic Modernization with PHP on IBM i
 
Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13
 
Avoid boring work_v2
Avoid boring work_v2Avoid boring work_v2
Avoid boring work_v2
 
PHP Batch Jobs on IBM i
PHP Batch Jobs on IBM iPHP Batch Jobs on IBM i
PHP Batch Jobs on IBM i
 
IBM i: Fertile Ground for PHP Developers
IBM i: Fertile Ground for PHP DevelopersIBM i: Fertile Ground for PHP Developers
IBM i: Fertile Ground for PHP Developers
 
Feature design evolution
Feature design evolutionFeature design evolution
Feature design evolution
 
Architecture Patterns - Open Discussion
Architecture Patterns - Open DiscussionArchitecture Patterns - Open Discussion
Architecture Patterns - Open Discussion
 
PHP Installed on IBM i - the Nickel Tour
PHP Installed on IBM i - the Nickel TourPHP Installed on IBM i - the Nickel Tour
PHP Installed on IBM i - the Nickel Tour
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM Connections
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with Fiddler
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
 
IBM Connections administration – keep your systems running the right way
IBM Connections administration – keep your systems running the right wayIBM Connections administration – keep your systems running the right way
IBM Connections administration – keep your systems running the right way
 
Running open source PHP applications on you IBM i
Running open source PHP applications on you IBM iRunning open source PHP applications on you IBM i
Running open source PHP applications on you IBM i
 
Best and worst practices deploying IBM Connections
Best and worst practices deploying IBM ConnectionsBest and worst practices deploying IBM Connections
Best and worst practices deploying IBM Connections
 
Moving Windows Applications to the Cloud
Moving Windows Applications to the CloudMoving Windows Applications to the Cloud
Moving Windows Applications to the Cloud
 
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Alexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With ZabbixAlexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With Zabbix
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 

Ähnlich wie Keeping up with PHP

Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptx
Nashet Ali
 

Ähnlich wie Keeping up with PHP (20)

Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the Cloud
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
 
Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptx
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
 
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
 
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
Forward5 Auxis VMware
Forward5 Auxis VMwareForward5 Auxis VMware
Forward5 Auxis VMware
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
Opticon18: Developer Night
Opticon18: Developer NightOpticon18: Developer Night
Opticon18: Developer Night
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
 
DevOps on Oracle Cloud
DevOps on Oracle CloudDevOps on Oracle Cloud
DevOps on Oracle Cloud
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
 
Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems
 
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
 

Mehr von Zend by Rogue Wave Software

Mehr von Zend by Rogue Wave Software (20)

Develop microservices in php
Develop microservices in phpDevelop microservices in php
Develop microservices in php
 
Speed and security for your PHP application
Speed and security for your PHP applicationSpeed and security for your PHP application
Speed and security for your PHP application
 
Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM i
 
Building web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend ExpressiveBuilding web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend Expressive
 
To PHP 7 and beyond
To PHP 7 and beyondTo PHP 7 and beyond
To PHP 7 and beyond
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)
 
Middleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.xMiddleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.x
 
Ongoing management of your PHP 7 application
Ongoing management of your PHP 7 applicationOngoing management of your PHP 7 application
Ongoing management of your PHP 7 application
 
Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7
 
The Docker development template for PHP
The Docker development template for PHPThe Docker development template for PHP
The Docker development template for PHP
 
The most exciting features of PHP 7.1
The most exciting features of PHP 7.1The most exciting features of PHP 7.1
The most exciting features of PHP 7.1
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Data is dead. Long live data!
Data is dead. Long live data! Data is dead. Long live data!
Data is dead. Long live data!
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
Developing apps faster
Developing apps fasterDeveloping apps faster
Developing apps faster
 
Continuous Delivery e-book
Continuous Delivery e-bookContinuous Delivery e-book
Continuous Delivery e-book
 
Standard CMS on standard PHP Stack - Drupal and Zend Server
Standard CMS on standard PHP Stack - Drupal and Zend ServerStandard CMS on standard PHP Stack - Drupal and Zend Server
Standard CMS on standard PHP Stack - Drupal and Zend Server
 

Kürzlich hochgeladen

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Kürzlich hochgeladen (20)

%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 

Keeping up with PHP

  • 1. Building the perfect PHP app for the enterprise Episode 1: Keeping up with PHP Rod Cope August 31, 2016
  • 2. 2 Series overview Now: Keeping up with PHP September 14: Developing apps faster Top lessons to deliver apps quickly, including CD principles and tools, digging into app performance, and using frameworks and extensions. September 28: Resolving problems and high availability Your reputation as a miracle worker is secure when using these principles to isolate faults, optimize scale, and synchronize sessions across clusters. October 12: Optimizing performance Keep users on your site by learning how to use background jobs and caching, measure performance, and make data-driven decisions.
  • 3. Rod Cope, CTO Rogue Wave Software
  • 4. 4 Agenda 1. What is the perfect enterprise PHP app? 2. Maintaining your stack 3. Application security 4. System failure! 5. Conclusion 6. Q&A
  • 5. What is the perfect enterprise PHP app?
  • 6. 6 Enterprise PHP is mission-critical • Built securely • Delivers optimal performance + scale • Always on • Meets release timelines • Modernizes legacy business logic • Clear support path (production + LTS)
  • 7. 7 DIY vs. enterprise Complexity Scale ROI DIY Ideal enterprise Volume scales beyond servers Performance degradation Administrativ e costs Typical growth path
  • 8. 8 The perfect PHP app for the enterprise Secure Performant Scalable (up/down) Always on Agile releases Production support On-premises Cloud Mobile
  • 10. 10 Example • Automated free-trial system for web conferencing & collaboration products • Challenge: streamline sign-up experience, collect user data, deliver to CRM, and create host account • Requirements: – runs on LAMP (virtualized Linux servers on VMWare) – five-nines availability, runs on clustered server architecture with complete failover solution to backup data center – Centralized monitoring, shared sessions, session clustering, load balancing, job queueing • Used: Zend PHP stack, Zend Server, Zend Framework, Zend Studio IDE Download case study
  • 11. Poll #1 Do you consider your application to be enterprise PHP? a. Yes b. No c. Not sure
  • 13. 13 Maintenance activities Maintaining an up-to-date PHP stack is key to achieving security, performance, and high availability PHP drivers frameworks Other components • Services • PDOs • etc. • SQL Server • MongoDB • DataStax • etc. • Laravel • Phalcon • CakePHP • etc. Cost = developers + testers + DevOps + sys admins
  • 14. 14 Time spent *Based on industry average (Forrester research) Time spent on PHP maintenance 0% 5% 10% 15% 20% 25% 30% Sys admins DevOps Testers Developers
  • 15. 15 LAPP WAMP Best practices Use fully-tested stacks Get latest security updates Verify compatibility with other packages Ensure technical support Plan time for upgrades Don’t forget LAMP!
  • 16. Poll #2 Is your application and deployment stack up to date? a. Yes b. Mostly c. Partly d. No
  • 17. 17 Maintaining app security • Need to keep up with vulnerabilities – National Vulnerability Database • Proactively look for flaws and act to mediate them • Don’t wait for next Heartbleed
  • 19. 19 Is PHP insecure? • Everyone says it is • Analysis of secure versions* – Supported by PHP officially (the latest secure patch with no known vulnerabilities) – Maintained by a popular, stable Linux distribution *Jack Skinner, 2015 data
  • 20. 20 The reality Use the latest version OWASP • PHP is as secure as any other major language • Anyone can write insecure PHP – it’s not the language’s job, it’s yours Understand best practices Contribute back
  • 21. 21 SQL Injection • SQL injection (OWASP A1) – Using SQL input data to execute unauthorized queries on a database – Results in corruption, data theft, takeover • Keep untrusted data separate from commands and queries • Use input validation • Use a safe API that avoids the use of the interpreter and offers a parameterized interface, PDO, or wrappers for prepared statements
  • 22. 22 Broken authentication/session management • Broken authentication and session management (OWASP A2) – Incorrectly implemented or missing schemes – Results in user impersonation, data theft, “do anything” • Use strong authentication and session management controls • Apigility with OAuth2 • uLogin • Avoid using HTTP for login • Regenerate session ID
  • 23. 23 Cross-site scripting • Cross-site scripting (OWASP A3) – Using script code (like JavaScript) to insert data into a server response without proper validation/escaping – Results in session hijacking, site defacement, redirects, etc. • Use input validation and escape output • Use input white listing to enforce characters, length, format, etc. • Use CAPTCHAs
  • 25. 25 Failure costs Average cost of application downtime $1.25B to $2.5B Average cost of a critical application failure per hour $500K to $1M Average time to restore production failure More than 1 hour More than 8 hours 47% 5% IDC DevOps and the cost of downtime, 2014
  • 26. 26 How do you compare?
  • 27. 27 “Break”-ing it down How do you know? • Monitoring How do you reproduce? • Log files • Code tracing • Z-Ray How do you prevent? • Testing! • Load balancing • Job queues • clustering How do you minimize downtime? • Support
  • 28. Poll #3 How do you implement enterprise features, such as clustering, job queuing, and monitoring? a. We integrate open source packages b. We write our own c. We use Zend Server or another commercial product d. Don’t know
  • 29. 29 Conclusion If no one is screaming when it goes down, it’s not enterprise PHP. So invest in scream prevention.
  • 30. 30 The fastest way to enterprise PHP Free trial www.zend.com • Full, tested, secure PHP stack • Z-Ray vision deep into your app • Code tracing • Job queuing and caching • Deployment and DevOps • High availability session clustering • Backed by support & services
  • 31. Q & A
  • 32. 32 Watch on demand • Watch this webinar on demand • Read the recap blog to see the results of the polls and Q&A session
  • 33. 33 Stay tuned September 14: Developing apps faster Top lessons to deliver apps quickly, including CD principles and tools, digging into app performance, and using frameworks and extensions. September 28: Resolving problems and high availability Your reputation as a miracle worker is secure when using these principles to isolate faults, optimize scale, and synchronize sessions across clusters. October 12: Optimizing performance Keep users on your site by learning how to use background jobs and caching, measure performance, and make data-driven decisions.
  • 34. Building the perfect PHP app for the enterprise Episode 1: Keeping up with PHP Rod Cope August 31, 2016