Designing a Reliable Web Application
-
@mroth911 said in Designing a Reliable Web Application:
Well.. I am trying to setup HA .. One for my internal business applications for my users, My business uses ms project, Sugar Crm, 3cx Pbx server and 5 to 6 sub domains. with a wordpress site.
Why invest in HA for internal users? What does downtime cost them that would warrant this? Is this over 20,000 internal users? I've never seen Project software that had a high cost of momentary downtime.
3CX PBX can be handled by platform level HA. So XenServer or Hyper-V without shared storage will "just do this", nothing special needed there. These will handle the web servers too, but not as well as not doing it. So don't. The PBX is unique of these workloads in that it is easily HA'd using the platform.
-
MS SQL Server and SharePoint are more complex and you'll need to address those individually if you really need HA for them. This will have licensing costs and other overhead. Almost never would these be candidates for HA. These will be a big deal on their own. Everything else is trivial.
-
ok .. so i am on the right track I guess. I would like to split the database .... for ms sql. have one MS sql server
-
@mroth911 said in Designing a Reliable Web Application:
ok .. so i am on the right track I guess. I would like to split the database .... for ms sql. have one MS sql server
You don't have to do that. MS SQL can run on Linux now. No need for Windows for that, but SQL Server on Linux is very, very new. MySQL needs to run on Linux, of course, stability, cost and performance are all bad on windows so no production system would use that.
-
And you don't need to split the database from the web front end, that's unnecessary. I probably would as well, but nothing that I wrote here suggests that. That's a separate decision to be made.
-
My project server is so slow.. with 10gb or ram.. thats why i thought of spliting datebase.
-
@mroth911 said in Designing a Reliable Web Application:
My project server is so slow.. with 10gb or ram.. thats why i thought of spliting datebase.
Splitting normally introduces more slowness, it doesn't solve it. It introduces extra latency and OS overhead and network overhead. You split for scalability, but not for performance. You lose performance on a node by node basis in exchange for being able to scale larger; but if you are within the performance threshold of a single node, then putting everything onto a single node is the fastest option.
-
You can use a high availability platform (Scale HC3 would be an example but is only one of many options) to handle the failover of the web servers which, as @scottalanmiller said, are normally read only and don't have to worry about crash consistency.
For a database you would ideally want to run at least one virtual machine on two different servers or cluster nodes and use something like "pinning" to guarantee that each database instance remains on separate hardware. Then you can use the database's own replication functionality to maintain data safety in the event of a hardware failure.
This would limit the effort necessary to deal with protecting the different functions leaving you with only the database as needing the additional effort. But it would not address load balancing for the application, only protection of availability.
-
@scottalanmiller said in Designing a Reliable Web Application:
MS SQL Server and SharePoint are more complex and you'll need to address those individually if you really need HA for them. This will have licensing costs and other overhead. Almost never would these be candidates for HA. These will be a big deal on their own. Everything else is trivial.
SharePoint is HA by default. At least it can be if you did a farm install (which you hopefully did? All kinds of evil things will try to eat you alive you if you did not so). In SharePoint, you basically have 3 types of server roles: DB, Backend (or "Application" role) and Frontends (which are basically just IIS). DB (should be) HA by using at least an active-passive SQL Server failover cluster, better an active-active or AlwaysOn one. You can have multiple frontends and backends by SharePoints internal mechanism. You can put a regular load balancer in front of the IIS's.
If you need to go cheap, you can achieve at least active-passive failover by virtualization mechanisms, like @scale mentioned. Don't know if KVM or Xen can do active standby VM's (mirrored VMs) like VMWare, at least Hyper-V can't do that (as of 2012R2)
-
@thwr said in Designing a Reliable Web Application:
Don't know if KVM or Xen can do active standby VM's (mirrored VMs) like VMWare, at least Hyper-V can't do that (as of 2012R2)
Do you mean shared memory where there is full fault tolerance and absolutely zero downtime and zero crash consistency issues? Then no, no one does that except for VMware right now. It's the biggest feature that I think makes VMware worth it for shops that need VMware. But it is a massively expensive feature both in terms of VMware licensing as well as in terms of performance hits, OS licensing and system overhead. Doing memory mirroring across nodes is very, very painful in terms of system resources.
-
@scottalanmiller said in Designing a Reliable Web Application:
@thwr said in Designing a Reliable Web Application:
Don't know if KVM or Xen can do active standby VM's (mirrored VMs) like VMWare, at least Hyper-V can't do that (as of 2012R2)
Do you mean shared memory where there is full fault tolerance and absolutely zero downtime and zero crash consistency issues? Then no, no one does that except for VMware right now. It's the biggest feature that I think makes VMware worth it for shops that need VMware. But it is a massively expensive feature both in terms of VMware licensing as well as in terms of performance hits, OS licensing and system overhead. Doing memory mirroring across nodes is very, very painful in terms of system resources.
Exactly. It's like a RAID-1-ish VM.
-
@thwr said in Designing a Reliable Web Application:
@scottalanmiller said in Designing a Reliable Web Application:
@thwr said in Designing a Reliable Web Application:
Don't know if KVM or Xen can do active standby VM's (mirrored VMs) like VMWare, at least Hyper-V can't do that (as of 2012R2)
Do you mean shared memory where there is full fault tolerance and absolutely zero downtime and zero crash consistency issues? Then no, no one does that except for VMware right now. It's the biggest feature that I think makes VMware worth it for shops that need VMware. But it is a massively expensive feature both in terms of VMware licensing as well as in terms of performance hits, OS licensing and system overhead. Doing memory mirroring across nodes is very, very painful in terms of system resources.
Exactly. It's like a RAID-1-ish VM.
Yeah, that's a VMware exclusive. Not very applicable to the SMB market, but when you need it that's my top pick for "when to look at VMware." It's the most significant (to me anyway) "only on Vmware" feature. Most other things that VMware does well are soft benefits, like better memory management, but you might be able to offset that by just buying more memory on another platform. It's not a pure win. But their shared memory fault tolerance is an absolute win. When you need it, you either leave the commodity server world completely or you use VMware.
@John-Nicholson can talk more about that as well.
-
@scottalanmiller said in Designing a Reliable Web Application:
@thwr said in Designing a Reliable Web Application:
@scottalanmiller said in Designing a Reliable Web Application:
@thwr said in Designing a Reliable Web Application:
Don't know if KVM or Xen can do active standby VM's (mirrored VMs) like VMWare, at least Hyper-V can't do that (as of 2012R2)
Do you mean shared memory where there is full fault tolerance and absolutely zero downtime and zero crash consistency issues? Then no, no one does that except for VMware right now. It's the biggest feature that I think makes VMware worth it for shops that need VMware. But it is a massively expensive feature both in terms of VMware licensing as well as in terms of performance hits, OS licensing and system overhead. Doing memory mirroring across nodes is very, very painful in terms of system resources.
Exactly. It's like a RAID-1-ish VM.
Yeah, that's a VMware exclusive. Not very applicable to the SMB market, but when you need it that's my top pick for "when to look at VMware." It's the most significant (to me anyway) "only on Vmware" feature. Most other things that VMware does well are soft benefits, like better memory management, but you might be able to offset that by just buying more memory on another platform. It's not a pure win. But their shared memory fault tolerance is an absolute win. When you need it, you either leave the commodity server world completely or you use VMware.
@John-Nicholson can talk more about that as well.
Hyper-V 's memory management is also awesome, IMHO. But you are right, the gap between VMware and the other major players is getting smaller and smaller with every release cycle. It's next to non-existing as of today. Remember very well when people laughed at me a few years ago for choosing Hyper-V to replace an existing VMware vSphere EP environment. I have yet to regret it.