eSobi Site Initiation

Post on 14-Dec-2014

54 views 0 download

Tags:

description

 

Transcript of eSobi Site Initiation

eSobi site Initiation

Allan Huang @ eSobi Inc.

Agenda

Large-scale Site Requirement Proposed Infrastructure Testing Infrastructure Conclusion

Large-scale Site Requirement

Requirement High availability High scalability

Considered factors Clustering Load Balancing Fail Over Session Persistence

Clustering What kind of clustering (Topology)

Vertical scaling multiple server running on single machine

Horizontal scaling multiple machines in the cluster

What kind of communication One-to-Many Communication Using IP Multicast Server Communication Using IP Sockets

What tier should clustering Web server Application server Database server

Load Balancing

Which kind of strategy Round-Robin DNS

cheap, easy setup, and simplicity no server affinity support no support for high availability

Hardware expensive, complex setup, and single point of failure server affinity support support for high availability metrics

Load Balancing

Factors When server selected How server selected (Policy) Where is load balancing accomplished

Fail Over

Solution Request-level fail over

when one server goes down, all subsequent requests should be redirected to the remaining servers in the cluster

Session-level fail over when one server goes down, another server

should be able to carry on with the sessions that were being handled by the first server

Fail Over

Factors How are server failures detected When is it right time to fail over and try another

server What about system and application state at the

failed node

Session Persistence

Solution Memory-to-memory replication File system session persistence Database session persistence

Session Persistence

Factors How is state communicated How often is it communicated How is object state materialized Is the state persistence mechanism efficient Consistency of replicated state Any network constraints in replicating the session

state

Proposed Cluster Setup I

Highly scalable Fault-tolerant Dynamically configurable Automatic cluster member discovery In-memory session state replication

Proposed Cluster Setup II

Pluggable/configurable load-balancing policies

Group membership notification No loss of message transmission Seamless from web application to server

Proposed Infrastructure

Realistic Context Deployment

System Architecture

Integration Tier

Business Tier

Presentation Tier

Arc

hite

ctur

e C

ompo

nent

Lay

er(F

ram

ewor

k)

Dom

ain

Obj

ect

Laye

r(D

omai

n M

odel

/ E

ntity

)Presentation Layer

(Servlet / JSP)

Deployment Layer

Business Logic Layer(Business Object)

Data Access Object Layer

Business Delegate Layer

Testing Infrastructure

Testing Context Deployment

Unit Test Architecture

JUnit / TestNG Framework

Arc

hite

ctur

e C

ompo

nent

Lay

er(F

ram

ewor

k)

Val

ue O

bjec

t La

yer

(Dom

ain

Obj

ect)

Presentation Layer(Servlet / JSP)

Deployment Layer(EJB / Web Services)

Business Logic Layer(Business Object)

Data Access Object Layer(DAO Object)

Delegate Layer(Service Locator)

Conclusion

Next Step?