Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Delicious Brains Blog:
Running WordPress in a Kubernetes Cluster
Aug 22, 2017 @ 09:35:08

On the Delicious Brains blog Gilbert Pellegrom has written up a post showing you how to get WordPress up and running on a Kubernetes cluster, making use of the helm tool to help with the installation process.

As a developer I try to keep my eye on the progression of technologies that I might not use every day, but are important to understand as they might indirectly affect my work. For example the recent rise of containerization, popularized by Docker, used for hosting web apps at scale. I’m not technically a devops person but as I build web apps on a daily basis it’s good for me to keep my eye on how these technologies are progressing.

[...] In this article, we’re going to start simple and take a look at the Kubernetes platform and how you can set up a WordPress site on a single node cluster on your local machine.

The tutorial then walks you through installing the local Kubernetes using Minikube and, once that's all set up and configured, using Helm to install WordPress in the cluster. He then shows how to scale the installation of WordPress and set up the system for high availability.

tagged: wordpress kubernetes cluster tutorial install configure helm minikube

Link: https://deliciousbrains.com/running-wordpress-kubernetes-cluster/

Jeff Geerling:
Yes, Drupal 8 is slower than Drupal 7 - here's why
Mar 25, 2016 @ 12:05:44

Jeff Geerling has an interesting post to his site showing the results of some of his own testing around the performance of Drupal 8 versus Drupal 7...and that 8 comes out to be slower than 7. He also includes some of the things that the Drupal project is doing to help the situation.

When some people see reports of Drupal 8 being 'dramatically' slower than Drupal 7, they wonder why, and they also use this performance change as ammunition against some of the major architectural changes that were made during Drupal 8's development cycle.

First, I wanted to give some more concrete data behind why Drupal 8 is slower (specifically, what kinds of things does Drupal 8 do that make it take longer per request than Drupal 7 on an otherwise-identical system), and also why this might or might not make any difference in your choice to upgrade to Drupal 8 sooner rather than later.

He shares the results of some of his own benchmarking on a cluster (bramble) of Raspberry Pis for the requests per second on the standard setup for each version. He includes the output from an XHProf profiling run too, showing the large call stack on both sides, not just Drupal 8. He then talks about some of the Drupal 8 updates that are included to help mitigate some of these issues: architecture changes, easier caching, authenticated user handing and slow loading content management.

tagged: drupal8 drupal7 performance raspberrypi cluster testing results benchmark

Link: http://www.jeffgeerling.com/blog/2016/yes-drupal-8-slower-drupal-7-heres-why

Zend Blog:
Running a PHP Cluster on AWS
Dec 24, 2015 @ 10:33:17

On the Zend Blog they've posted a new guide showing you how to create a PHP cluster in AWS using the Zend Server software to help make things easier.

Running a cluster of PHP servers on AWS can be a complex task to say the least, and in this article we will look into the various tasks involved in managing a PHP clustered environment. We will look into why it can be a complex and tricky task and how Zend Server help alleviate the pain involved.

They start by introducing the guidelines of the challenge, easily creating the set of PHP nodes with simpler maintenance abilities, monitoring and session sharing included. While this isn't a step-by-step guide per-se, it does give you a good idea of some of the technology needs around clustering PHP instances (and how Zend Server (Cluster) helps solve some common issues). This includes screenshots of the interfaces used for these common tasks like:

  • Upgrading and synchronizing PHP code
  • Propagation of changes in PHP configuration
  • Monitoring of PHP log and events
  • PHP sessions sharing
tagged: zendserver zend guide aws amazonwebservices cluster zendservercluster

Link: http://blog.zend.com/2015/12/22/running-a-php-cluster-on-aws/#.Vnv0ypMrLyI

Clustered File Systems and PHP
Nov 21, 2013 @ 10:22:38

On PHPBuilder.com today they continue their series looking at working with clustered file systems and PHP with this new post, the second part in the series (part one is here).

In part one, Introduction to Clustering in PHP, we explored the concepts of load balancing, PHP sessions, and how to set up a rudimentary PHP cluster that allows for redundancy as well as load balancing. The final configuration was one load balancer exposing an NFS share for all of the client PHP servers to use for session storage. While effective, this still gives us a single point of failure (the load balancer). More load balancers can be added, but sits us squarely back on our original problem: All of the sessions are on the first load balancer, not the second.

They talk about the GlusterFS networkable file system and talk about its concepts of "drives" and "bricks". The rest of the post is centered around helping you get GlusterFS servers set up and a brief mention of pointing your PHP session storage to the resulting setup.

tagged: cluster filesystem session glusterfs install configure

Link: http://www.phpbuilder.com/articles/application-architecture/optimization/clustered-file-systems-and-php.html

Johannes Schlüter's Blog:
High Performance PHP Session Storage on Scale
Nov 18, 2011 @ 10:13:25

In this new post to his blog, Johannes Schlüter looks at a high-performance solution to the usual storing PHP session information via a memcache frontend with a MySQL Cluster backend.

Unfortunately even such a system [using MySQL and InnoDB tables] has limits and unfortunately replication is no good solution here to scale further as we will always need a master for writing the updated session data. By using replication we can take some load from it and we can configure a slave which can be promoted to master to keep session alive if the primary master machine fails but at some point in time we need another solution ... but, happy news, again: One doesn't have to look far as MySQL cluster will be happy to help. MySQL Cluster "is a high-availability, high-redundancy version of MySQL adapted for the distributed computing environment," as the MySQL documentation states.

He describes the setup (after pointing to this post about installing MySQL Cluster for memcache) and includes some sample code/SQL/ini settings you'll need to use to get PHP's memcached functionality to cooperate with it.

tagged: performance session storage mysql cluster memcache frontend backend


PHP Clustering using Apache httpd mod_proxy
Oct 22, 2010 @ 09:23:52

New on VoidWeb.com there's a post looking at clustering PHP applications with the help of the mod_proxy component that can be added into the Apache web server.

Often for my clients, I have to prepare the deployment strategy for their LAMP based web applications. Some of them are small to medium businesses and are starting up so a single server setup work out for them. But there are few large web applications too which are growing continuously in terms of users and demands scaling either horizontally or vertically.

They give a brief overview of what vertical and horizontal scaling are as well as a simple layout of a basic PHP-based cluster. They list some of the requirements for this simple cluster and how it should all work (in theory) and start in on how to set it all up (practically). In the end you'll have a light proxy setup that will rotate around between the servers but do it transparently from node to node.

tagged: cluster modproxy apache tutorial


Kevin Schroeder's Blog:
Zend Server Cluster Manager
Jun 30, 2010 @ 09:19:08

In a new post to his blog Kevin Schroeder takes a look at how Zend Server and Zend Server Cluster Manager can fit together to help make maintaining your multiple-machine web server cluster simpler.

PHP is designed using a shared-nothing architecture. [...] That's great! It makes for a very stable, very easy to use architecture. But what happens when you go beyond one server? [...] Managing a hundred servers is quite different from managing one. Heck, managing three servers is different from managing one.

Zend Server gives you all sorts of tools to help manage and monitor the server it runs on, but when you start clustering these servers, the maintenance can be a huge headache. The Cluster Manager comes in and helps with centralized configuration, monitoring, sessions clustering and more. Kevin briefly talks about setting it up (a call to yum install the package) and a few steps through a browser-based GUI interface to get the ball rolling. He's also included a screencast to show each step of the way.

tagged: zendserver cluster manager zend


Christopher Jones' Blog:
PHP Connection Pooling Whitepaper with Benchmark Available
Apr 25, 2008 @ 10:23:47

Christopher Jones has pointed out a new whitepaper that's been published by oracle about the scalability the connection pooling affords for current versions of PHP.

The whitepaper talks about the changes in the PHP OCI8 1.3 extension, explains some of the concepts behind DRCP and FAN, and gives best practices and tuning tips. It includes a new PHP benchmark which shows up to 20,000 connections being handled by Oracle on commodity hardware using only 2G RAM.

The paper also talks about the FAN support that's built in - the ability for PHP to use the Oracle RAC cluster functionality to make for high availability (switching between nodes). The latest beta with all of this functionality in it can be grabbed from its page on the PECL site.

tagged: connection pooling whitepaper benchmark rac cluster oracle