Solved

scalable web application

Posted on 2014-12-18
14
226 Views
Last Modified: 2015-01-10
Hi,

As per my boss advice, i would like to give a blueprint on Architecture  layers.The requirements is there are 60,000 users who would using this application. There would be concurrent users, might be initially 5000 concurrent  user at the peak time. The user should able to browser the application and do the credit on it, The application would be scalable to handle request. and there are 300 GB of data on Oracle.
what I am proposing is a JSF UI, with apache server to handle multithread model, Then an application server like Jboss, and Hibernate as an persistence layer, and for scalibility Load Balancer which will replicate the sessions on the no of the servers if the load increases. The caching option of hibernate.. and also we need to make this application deployed at various location.

Is this the right approach i am taking, Please  suggest

Thanks
0
Comment
Question by:roy_sanu
  • 5
  • 5
  • 4
14 Comments
 
LVL 57

Expert Comment

by:giltjr
Comment Utility
I want to make sure I understand, you are going to have:

Load Balancer
        /\
         |
        \/
  Apache Servers
        /\
        |
       \/
   JBOSS Servers
        /\
        |
       \/
   Oracle DB

One issue with scalability is what does your application do?  A single JBOSS server could handle 5000 concurrent users if the application is simple.  Or it may take 100 JBOSS servers handing 50 concurrent users each.

Is there any reason you want to have load balancers and Apache servers?  Too many parts can make things more complicated.  Again depending on your application you may be able to get by with either load balancers or Apache servers, which simplifies the environment.

We use WebSphere as our J2EE server and instead of using the Apache that comes with WebSphere for distributing the work to the WebSphere servers running the actual application code  we use F5 load balancers.
0
 

Author Comment

by:roy_sanu
Comment Utility
we will be developing an web based application where client would be doing shopping and adding items to the carts. and finally doing the transaction on the shopping. we have planned for jboss , but i would also like to know
 how many web sphere server required for 5000 concurrent users ? Pls let me know.
Thanks
0
 
LVL 57

Expert Comment

by:giltjr
Comment Utility
Again, it's hard to tell, there is no hard and fast rule for number servers-to-users ratio.  There are a lot factors.

I have never worked with a shopping program, but I would assume that it would be more memory intensive than CPU intensive on the JBOSS server side.  I am assuming this because most of the work would be looking up items in a data base and then store the results temporarily.

Now the data base server would be doing a lot of work, so depending on the number of items and options for each item that might have to be decent size server

What are the specs of the servers you are planning to run JBOSS on.  Are they physical or virtual?
What are the specs of the server(s) you are planning to run Oracle on?  Is it physical or virtual?

How many different items are you planning to sell?  Are their a lot of "options" for those items?  By options I mean something like if you are going go sell clothes you would have: mens vs. ladies, vs. youth, then colors, then sizes.

Have you done any proof of concept testing?  Meaning have you written the program and created a data base and done any testing?
0
 

Author Comment

by:roy_sanu
Comment Utility
We are planning for dual Xeon E5310 Quad Core (Clovertown)
- 4 Gig of Ram
- 4 x 73GB SCSI Hardware Raid 10 as it will be database intense system .
 we will be selling clothes ,software and hardware accessories . Team has written a small program and tested  with the oracle database ....
Thx
0
 
LVL 57

Expert Comment

by:giltjr
Comment Utility
Those specs aren't bad for the JBOSS servers, but I don't think they will work for the Oracle server.

You do realize that with 4x73GB drives in a RAID 10 setup that you will have less than 73GB of disk space?  How do you plan to have a 300GB database on a system with less than 73GB of usable disk?

IMHO 4GB of RAM is not nearly enough for "intense" system with a 300GB database.  The more RAM, the more you can buffer in memory, the better the performance.

How many JBOSS servers were you planning to start off with?   Personally, once you get the Oracle server sized a little better, I would do performance testing and see how many users you can get simulated until response time get bad.   What software are you using for your load testing?

If you plan to have 5000 concurrent users, you can also plan that at MAX 1000 (20%) will be "clicking" at the same time.   Typically I think these days, the ROT for "active" processes on a web site is about 5%, so 5000 concurrent users means only 250 or so will be "clicking", thus only 250 active tasks.
0
 

Author Comment

by:roy_sanu
Comment Utility
yes, you are right ,300 gb disk size with 64 gb ram what we needs  Presently added with 5 instance of the jboss server on test environment,  and testing with jmeter for load testing  with lower database server size like 70 gb size and 4 gb ram  in the test environment. looks like there is some bottle neck on the performance... it shows out of memory......
0
 
LVL 61

Expert Comment

by:gheist
Comment Utility
No load balancer will replicate sessions - that has to be done by application server.
Load balancer CAN detect sessions and keep directing them to specific backend, but you still need to synchronize sessions between backends.
Among load balancers are nginx, apache, etc, running on FreeBSD or Linux. Nothing fancy or expensive.

4GB is very little RAM for any use. Rule of thumb (i.e if you dont know better) is to keep database read cache to 10% of data size.

Reverse proxy will need some RAM to cache static content.
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 57

Expert Comment

by:giltjr
Comment Utility
Actually with a 300GB DB, you need more.  Depending on your OS will make a difference on how much more.  I personally would say at least 600GB of usable disk space.  However with how inexpensive disks are today, you could get a few TB's.

You need to know which memory you are out of.  It could mean physical RAM, or if this from JBOSS, it could mean HEAP space.

Which sever OS are you running?  Is it 32-bit or 64-bit?  If you are running 64-bit OS, are you running JBOSS with 32- bit or 64-bit JVM.
0
 
LVL 61

Expert Comment

by:gheist
Comment Utility
jboss of 6000 connections will easily exceed 4GB architectural limitation of any 32bit java...
0
 

Author Comment

by:roy_sanu
Comment Utility
There are some issues on heap size, it has been taken care... What kind of server confirguration do you suggest.in terms of CPUs ..
Other wise we will go for Microsoft azure in the future..
0
 
LVL 61

Assisted Solution

by:gheist
gheist earned 250 total points
Comment Utility
For resilience you need at least 2 servers, then you can grow to azure, rackspace, amazon, 2nd datacenter as you application grows. 1 huge machine will be outscaled sooner or later.
0
 
LVL 57

Accepted Solution

by:
giltjr earned 250 total points
Comment Utility
I would say 4 smaller machines, two for the DB and two for JBOSS.

All four should start with at least 16 GB of RAM but have the option to go to 128GB.  Something that can go to 16 cores, but start off with at least 4 cores.  Of course after you get further down the road and can do more performance testing you may find you need more servers and/or more RAM/Cores.

This will get you started and hopefully support you until you can do testing in a cloud environment.
0
 
LVL 61

Expert Comment

by:gheist
Comment Utility
At least 2 instances for each layer to address all architectural issues now...
Could be DB and JBOSS on same 2 machines, but each of them well clustered for future growth.
0
 

Author Comment

by:roy_sanu
Comment Utility
Thank you all of your support... I will try to close this issue as of now. Let me see how things goes in the future... If there will be any issue I try post it...
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Objective of This Article In 1990’s, when I was a budding software professional, I had a lot of confusion about which stream or technology, I had to choose to build my career. In those days, I had lot of confusion like whether to choose System so…
Why do we like using grid based layouts in website design? Let's look at the live examples of websites and compare them to grid based WordPress themes.
The purpose of this video is to demonstrate how to reset a WordPress password if you are locked out and cannot reset the password. A typical use would be if you cannot access the email to which WordPress would send the password recovery email to…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now