eSobi Site Initiation

19
eSobi site Initiation Allan Huang @ eSobi Inc.

description

 

Transcript of eSobi Site Initiation

Page 1: eSobi Site Initiation

eSobi site Initiation

Allan Huang @ eSobi Inc.

Page 2: eSobi Site Initiation

Agenda

Large-scale Site Requirement Proposed Infrastructure Testing Infrastructure Conclusion

Page 3: eSobi Site Initiation

Large-scale Site Requirement

Requirement High availability High scalability

Considered factors Clustering Load Balancing Fail Over Session Persistence

Page 4: eSobi Site Initiation

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

Page 5: eSobi Site Initiation

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

Page 6: eSobi Site Initiation

Load Balancing

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

Page 7: eSobi Site Initiation

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

Page 8: eSobi Site Initiation

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

Page 9: eSobi Site Initiation

Session Persistence

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

Page 10: eSobi Site Initiation

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

Page 11: eSobi Site Initiation

Proposed Cluster Setup I

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

Page 12: eSobi Site Initiation

Proposed Cluster Setup II

Pluggable/configurable load-balancing policies

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

Page 13: eSobi Site Initiation

Proposed Infrastructure

Page 14: eSobi Site Initiation

Realistic Context Deployment

Page 15: eSobi Site Initiation

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

Page 16: eSobi Site Initiation

Testing Infrastructure

Page 17: eSobi Site Initiation

Testing Context Deployment

Page 18: eSobi Site Initiation

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)

Page 19: eSobi Site Initiation

Conclusion

Next Step?