1) We are deploying a SAAS that needs a near 100% uptime since customers will be connecting to our server every minute.
2) We need a Mysql db and a php environment.
3) To keep our costs down initially (before we truly scale), what would a good server architecture be for us?
4) Would a PAAS be a good option? Or should we go for 2 dedicated servers with load balancing?
Since we want to keep our costs down initially (bootstrapped!), we don't want to hire a "network engineer"...
At least not until our service hits a certain benchmark.
So any advice would be welcome...
Thanks in advance.
I think you're not fully embracing the lean startup methodology.
Is your SaaS handling some operations that are a matter of life and death or critical mission thing for an organization?
if the answer is No start with simplest option and do a soft launch and invite some carefully selected (50) beta testers.
Get the service going and gather feedback as much as possible. Then when you're at version 1.5 or 2.0 you'd know the problem you're solving a lot better.
Slavi,
Orbisius & qSandbox
PaaS is probably your best bet if you want to avoid hiring someone to manage things. Even managing two servers can eat up huge portions of your time — especially if these are new waters for you.
PHP/MySQL put you at a little bit of a risk, performance-wise, so be sure to keep an eye on resource usage.
In my current role, I'm putting WordPress sites up against thousands of concurrent users, so while the exact usage probably isn't the same, the tech stack is similar.
I'd probably do something like this (pretty much what I use): a Rackspace setup that can automatically scale when traffic spikes, with New Relic to keep an eye on performance and leaks in the app itself, and probably nginx/Varnish to try and keep the load off the servers in the first place (assuming any part of your app is cacheable).
A stack like that is not cheap compared to free, but it's cheap compared to a full-time ops engineer or spending a Friday/Saturday night trying to self-diagnose bottlenecks.
Good luck!
Take a look at Google Compute Engine. You'll pay by the drink, metered on your resource usage. Infrastructure cost drop drastically and you'll be on "GOOGLE's" gear / cloud. As an example, take a look at GetCloudCenter.com - the portal is running on GCE using LAMp servers, PHP, not sure about the DB side of things. They offer a demo portal to spin up and sell DaaS. Best of luck!
Clarity about the requirements of the service design should inform how you select the best platform deployment model now and in the future.
The Service Design should encompass 1) Availability Requirements, 2) Performance Requirements and 3) Scalability Requirements. Availability Requirements can be expressed in terms of acceptable number of downtime hours per year, Performance Requirements can be expressed in terms of maximum required transactions per second, and Scalability can be expressed in terms of the degree of linearity in adding additional peal transactional capacity to the system.
Implementing these service design requirements using a PAAS approach will require having significant technical expertise on staff. A different and more flexible option to consider would be to use an infrastructure-on-demand approach as currently being offered by Amazon Web Services (AWS).
AWS would allow you to deploy your preferred technology stack at an initially smaller cost commitment level and then scale up both the transactional capacity and redundancy as the build out of your business model warrants.