Get your PHP project done faster and save money by scaling it vertically with IBM Power Systems.
h1. Everyone Knows That…
In the LAMP world you are always told “the only cost effective way to scale is horizontally.” The best article I have ever read about horizontally scaling with MySQL and PHP was from Netlog1. In the article Netlog described a very effective solution they have implemented that allows them to truly horizontally scale. The solution is completely custom written and very complex, with many servers required to support the design. At the time I was very excited about the article as it positively validated a lot of my thoughts on horizontal scaling. Needless to say, getting your application to successful scale horizontally is very complex and a very hotly debated topic.
h1. Enter The 800 Pound Gorilla
Recently I have the opportunity to learn about the IBM Power Systems (i5) line of servers from Mike Pavlak. Mike is one of the main people responsible for bringing PHP to the i5. After that very interesting day with Mike I realized my assumptions about vertical scaling were all wrong. I realized that vertical scaling with the i5 is a great choice and a true alternative to tradition LAMP horizontal scaling.
h1. Simplifying Development
If you’re from the LAMP world, the concept of vertically scaling with a system like the i5 will be a complete revelation. If you follow the vertical scaling methodology, when it comes time to design how your application will scale, there is nothing for you to do.
A company is no longer even required to have expertise needed to know how to scale applications up. This is because with an i5 all your computing power is consolidated into one machine. This includes your entire web server, database and any file system related requirements. Now this doesn’t mean they don’t need to know how to make the application perform well, but some time with a profiler is all that is now needed.
Reduced complexity from the environment gives you simplicity in the application. This reduction in requirements will result in shorter development times and applications of higher quality. This is all because your developers will no longer be handcuffed by the complexities entailed in scaling horizontally.
The following is a quote referring to Google:
bq. An underappreciated advantage of a platform approach is junior developers can quickly and confidently create robust applications on top of the platform. If every project needs to create the same distributed infrastructure wheel you’ll run into difficulty because the people who know how to do this are relatively rare.2
h1. Simplifying Deployment
When working on a timeline for a horizontal scaling design, deployment timelines can become very tricky. The workload of the IT department must be taken into close consideration and can be a very real problem, even a show stopper. They will need time to procure, to setup and to install into the data center the hardware for at least the production environment but likely many other deployment environments like QA and staging. The availability of your IT department could mean your developers ability to be agile and to quickly get new applications into production can be completely undermined.
The i5 tackles these problems by having all these environments on the same machine using virtual machines (VM). Virtualization is a core feature of the i5 architecture and is built right in to the OS. Its menu driven wizards allow you to quickly and easily manage many virtual machines on your i5 without worry of them affecting the performance of your production environments.
h2. “Basically A Huge DB2 Machine”
Something that may not be immediately obvious to you, if you’re not familiar with IBM products, is that in effect, as my college Jess Portnoy has told me, the “i5 is basically a huge DB2 machine”. The DB2 database server is literally embedded in to the i5’s “IBM i” operating system (i5/OS). Now things got even more interesting when in 2007 MySQL said they would be supporting the i5/OS. Not to settle with just running MySQL on the i5, there is also now a DB2 storage engine for MySQL on the i5. With this storage engine, once you’ve created your database in MySQL you will be able to read and write to the data from both MySQL and DB2. What you get in essence is an almost seamless bridge between the two database servers.
h1. Operational Savings
Staffing is one of, if not the biggest cost to any company. With this in mind, consider that Linux is very much a manage-everything-yourself style of system. The i5 on the other hand is the complete opposite. It’s a self-managing, self-healing system with an emphasis on requiring as little attention from your IT department as possible. To illustrate this point, some shops don’t even have a fulltime i5 system administrator and are just using an offsite contractor as needed. The traditional selling point of the i5 which still stands today is that after the initial investment you will quick reap rewards in operational savings.
So when considering the hardware and architecture of your next project, don’t sell yourself short and dismiss vertical scaling. You can have an i5 for under $15,000 that allows you a seamless upgrade path which currently goes up to a 64-way, 2 TB of memory and 381 TB of capacity system.
Vertical scaling may allow you to get your project done quicker and give you operational costs saving that should not be ignored.
1 Database Sharding at Netlog, with MySQL and PHP, Jurriaan Persyn, 02/12/2009 – http://www.jurriaanpersyn.com/archives/2009/02/12/database-sharding-at-netlog-with-mysql-and-php/
2Google Architecture | High Scalability, 11/23/2008, Todd Hoff – http://highscalability.com/google-architecture