There are two parts here:
Thanks Shamit for your detailed explanation.
- Fail over of persistent data (DB, SAN Volume with Video Content etc)
- Load balancing on stateless web hosts
Issue#2 is very easy to solve, issue#1 is difficult (unless big-budget that makes SAN mirroring feasible across two data centers).
One way to solve these issues is to use AWS / Azure etc. With these:
We may not be having Internet connectivity to do so.Everything happening in Intranet.
- You can use DB and Storage offering provided by Amazon/Google/Azure 1.a : These offering include HA for DB + Storage 1.b: DB is completely managed by provider (scaling / updates / high
availability) 1.c: Storage is mounted as a block device and can be formatted as any filesystem (ext3/ext4) 2. For web tier, you can use any Linux AMI and either 2.a: Use load balancer OR 2.b: Setup monitoring to spin up a new VM if primary crashes (or load goes beyond a threshold in web tier VM(s))
With this setup, initial cost in close to Zero and user will not even notice if any component fails over. Say, user is playing a video and Storage fails over. in This scenario:
- Http server serving video content anyways has to support streaming (
Http 206 for Partial Content, Range, ETag)
- Player on client side will always ask for video content in small chunks
- As any tier fails over, next chunk will be served by failed over tier
- User's data (DB records for authentication/ preferences) will
transparently be failed over by provider.
Hope that helps,
Yes..Will definitely explore this further.
Shamit