{"id":68,"date":"2005-04-18T23:00:32","date_gmt":"2005-04-19T07:00:32","guid":{"rendered":"http:\/\/www.peakepro.com\/?p=68"},"modified":"2005-04-18T23:00:32","modified_gmt":"2005-04-19T07:00:32","slug":"farming-php-preview","status":"publish","type":"post","link":"https:\/\/www.robertpeake.com\/archives\/68-farming-php-preview.html","title":{"rendered":"Farming PHP Preview"},"content":{"rendered":"
Even though issue 03.05 is not out yet, I am already deep in thought about my next article for International PHP Magazine<\/a>. I’m planning to tap my experience architecting and building scalable web server farms for PHP\/MySQL applications to bring you an overview of the issues involved. Combined with the forthcoming issue on Enterprise PHP Coding Standards<\/a>, this should flesh out some of my thinking and experience implementing PHP solutions for business-critical applications.<\/p>\n Some of the issues I’m considering tackling in my “Farming PHP” article include:<\/p>\n <\/p>\n Sound interesting? Stay tuned for more as I flesh out my thinking, prepare diagrams, and otherwise sift through my experiences bringing best-practice scalability to the powerhouse web development combination of PHP and MySQL.<\/p>\n","protected":false},"excerpt":{"rendered":" Even though issue 03.05 is not out yet, I am already deep in thought about my next article for International PHP Magazine. I’m planning to tap my experience architecting and building scalable web server farms for PHP\/MySQL applications to bring you an overview of the issues involved. Combined with the forthcoming issue on Enterprise PHP …<\/p>\n\nLoad Balancing versus Round-Robin DNS\nWeb Log Aggregation\nSeparating the PHP and SQL layers via a private network:\n
\nConfiguring multiple interfaces\nNaming the network via \/etc\/hosts\nHardening the network\n<\/ul>\nLeveraging MySQL master\/slave replication:\n
\nFor failover using heartbeat\nTo offload read-only reporting\nFor backup\nFor local read-only operations\n<\/ul>\nOffloading periodic operations to a separate server\nOffloading mail sending operations to a separate server using Mail_Queue\nDealing with PHP sessions in a distributed environment\n“Sticky” load balancing sessions\nDealing with file uploads in a distribtued environment\nSeparating the backroom\/admin functionality from the public-facing app.\nPushing files to the farm:\n
\nSimilarities to a compiled model\nEstablishing homogeneous user\/group permissions and root trust\nSetting up incremental, periodic file push when necessary\nOptional encoding\nMaintaining versioning on source code for possible rollback\n<\/ul>\nUsing shared filesystems\nModifying existing applications and packages to run on the farm\nThe importance of coding standards in a farmed environment\nThe three primary benefits of farming and tradeoffs involved with different approaches:\n
\nRedundancy\nScalability\nMantainability\n<\/ul>\n<\/ul>\n