0
votes

We are doing quite a lot of “traditional” web applications with relational databases. All of them are in-house softwares that serve a limited number of users. Now we are building a web application and making business with it as a cloud e.g. an SaaS. However, we have no experience on cloud computing. We highly appreciate all advices so that we can start digging, as currently, we don't know from where to dig :)

Summary of our web application: we have main 2 parts

Part 1:

  • For authorized users.
  • Mainly writes
  • Traditional
  • Using more SQL joins. This make us think that NoSQL is not applicable for this part. And we are using MySql

Part 2:

  • For public users
  • A kind of CMS where authorized users create pages and publish content. But this action is not frequent
  • Mainly reads

We are thinking of managing user registrations (accounts) separately. Let it manage authentication and implementing SSO so that we could use it in all our applications. We plan to build more applications and expect growing on number of registered users.

All applications are built with java.

What we are vague about are:

  • How to make our applications scale (development framework, database, deployment model...). We a looking for horizontal scale approach. Our initial thoughts are: For part 1, it sems that data sharding is the only way. But to do that, how can we route a given user to the correct? Is there any existing open-source product for that? For part 2, is there any CMS that scale well? For user accounts, we think about using NoSQL database.
  • We want to build a private cloud starting with a small set of severs and adding more when our business grows. For that, what kind of components (e.g. hardware, software...) do we need. For software, we more interesting on open-source.
  • “Scaling (horizontal) by adding new server”: what do we need to do to make it work?
  • What are the pitfalls if in one server box, we put both web application server and database server?

Thank you.

2

2 Answers

2
votes

The best and easiest way it to use VMware Perlsdk obviously perl is per-requiste but its the simplest thing most of the things are available on VMware's site you need to tweak it according to your need. But that will not be so easy you need to have depth knowledge how operating system behaves and how to work over network.

1
votes
  1. It sounds that your service didn't reach the point where you have to concern application scalability. Why not just make it run, then you will find out what to do to scale it up.

  2. Openstack recommended, a open sourced, AWS-compatible cloud computing framework.

  3. On the infrastructure layer, openstack takes care of it. On the application layer, you have to find your own way.

4.Cloud computing is supposed to take care of this question. You can migrate your app or database whenever pitfall is noticed.