← Back to team overview

dhis2-devs team mailing list archive

Re: Distributed DHIS2 and DHIS2 cloud

 

Hi Thanh

Will be interested to see what comes back from your clustering experiments.

Regarding splitting server in two, in my experience if you have a separate
server it can be good to dedicate that to postgresql.  This allows the
database server to be singularly tuned as a database server.  Assumes you
have guaranteed high bandwidth/low latency between database and application
server(s).

Bob


On 23 September 2013 18:33, Ngoc Thanh Nguyen
<thanh.hispvietnam@xxxxxxxxx>wrote:

> ok, Jason. I have some quick note but will detail it and send back to you
>
> Thanh
>
> *Nguyễn Ngọc Thành*
>
>
>
> On Mon, Sep 23, 2013 at 10:42 PM, Jason Pickering <
> jason.p.pickering@xxxxxxxxx> wrote:
>
>> Hi Thanh,
>> Lets put it back on the list with your findings.I wanted to be sure we
>> had some consensus before proceeding too much with that line.  I think the
>> configuration steps you took would be great to have in the documents. Why
>> don't you summarize what you find out and i can help you write everything
>> up into the docs as an alternative, which is perhaps better. The example I
>> gave was complete overkill, but maybe you found a good balance between
>> having a highly available cluster, versus a complete overkill (which I
>> think was my problem).
>>
>> Regards,
>> Jason
>>
>>
>>
>>
>>
>>
>>
>>
>> On Mon, Sep 23, 2013 at 5:28 PM, Ngoc Thanh Nguyen <
>> thanh.hispvietnam@xxxxxxxxx> wrote:
>>
>>> Jason, thanks for the discussion. I eventually can get dhis2 work with
>>> Tomcat clustering. Persisting sessions in jdbc works like a charm with very
>>> less configuration. Aggregation data entry could happen quite rare, every
>>> month or every quarter. However, individual data capture can happen daily
>>> in real time so being down for 1 hour could be catastrophe. My argument is
>>> dhis2 can be even better if it is configured followed strict standards of
>>> commercial systems such as High Availability, High Scalability. Instead of
>>> having 1 server with 16G RAM, why don't we have 2 separate ones with 8GB
>>> each?
>>>
>>> I don't know why our discussion goes off the list?
>>>
>>> Thanh
>>>
>>>
>>> *Nguyễn Ngọc Thành*
>>>
>>>
>>>
>>> On Mon, Sep 23, 2013 at 10:37 AM, Jason Pickering <
>>> jason.p.pickering@xxxxxxxxx> wrote:
>>>
>>>> Of course it depends on the use case, my point here was what is the use
>>>> case?? I just did not want you trying to prove to some corporate people
>>>> that just because we are using an OpenSource  product like DHIS2/Tomcat,
>>>> that it is somehow less robust than some commercial equivalent, for the
>>>> vast majority of use cases. But now it seems the requirement is different.
>>>>
>>>> I think for the case you mention, that has never been tested or
>>>> confirmed I think and would need you to implement session sharing across
>>>> multiple tomcat instances. That sounds a lot more difficult to do than a
>>>> simple cluster. Even if it did work, it would require users  (usually or
>>>> often) to clear their browser cache anyway. IMHO, Upgrades should something
>>>> which should be done at night, with few users active. Normally, they should
>>>> take less than two minutes, again depending on the size of your server.
>>>> Upgrades to a production server should be tested in a testing environment
>>>> and confirmed to work, as usually, they are things you cannot easily
>>>> roll-.back. So, if you are upgrading a production instance every day or
>>>> multiple times a day, it would seem to me you are asking for trouble.
>>>> Again, just the way I feel about it, but trying to implement a clustering
>>>> solution to solve this "requirement" sounds pretty risky to me.
>>>>
>>>> Would certainly be worth to investigate and see if you can get it to
>>>> work, as it would certainly help increase redundancy of the deployments.
>>>>
>>>> Regards,
>>>> Jason
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, Sep 23, 2013 at 1:48 AM, Ngoc Thanh Nguyen <
>>>> thanh.hispvietnam@xxxxxxxxx> wrote:
>>>>
>>>>> It is, Jason. I think we will need a cluster in case of upgrading
>>>>> dhis2. When you want to change a jar file, you have to shutdown the whole
>>>>> application but if you have 2 servers you can do one by one and there is no
>>>>> pause in the service.
>>>>> I think it depends on the use case.
>>>>>
>>>>>
>>>>> *Nguyễn Ngọc Thành*
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Sep 22, 2013 at 9:47 PM, Jason Pickering <
>>>>> jason.p.pickering@xxxxxxxxx> wrote:
>>>>>
>>>>>> Hi Thanh,
>>>>>>
>>>>>> Going to take this off the list for the moment, as it may not be so
>>>>>> constructive.
>>>>>>
>>>>>> I would  take a step back and ask what the use case is. Why do you
>>>>>> need a cluster? Do you know you need a cluster?
>>>>>>
>>>>>> I think doing it could be a fun way to spend a Sunday afternoon, but
>>>>>> my wife would probably think it better to spend time with the kids. My
>>>>>> point is that unless you know you need to do it, don't bother, because it
>>>>>> has been done before, and it is nothing exotic. It may be good experience
>>>>>> for you, so could be worth it. However, setting up a DB cluster, Tomcat
>>>>>> cluster, foo cluster has been done by many others, and the process is well
>>>>>> documented and proven, so I see no particular need to prove we can setup
>>>>>> DHIS2 in this environment. We know that it can be done, because it has been
>>>>>> done with others with very similar types of Java applications. I have setup
>>>>>> a similar type of architecture with Amazon RDS in the background, fleets of
>>>>>> application servers, fronted by  load balancers (Apache). Nothing really so
>>>>>> fancy. But it turned out to be complete overkill, and we went back to a
>>>>>> single server with 16 GB of memory, and it works just fine for out needs.
>>>>>>
>>>>>> Regards,
>>>>>> Jason
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Sep 22, 2013 at 3:45 PM, Ngoc Thanh Nguyen <
>>>>>> thanh.hispvietnam@xxxxxxxxx> wrote:
>>>>>>
>>>>>>> Thanks Jason. The reply is insightful.
>>>>>>>
>>>>>>> I now try to set up dhis2 on a Tomcat cluster with nginx and mysql
>>>>>>> cluster altogether. Will let you know the result soon
>>>>>>>
>>>>>>> *Nguyễn Ngọc Thành*
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Sep 22, 2013 at 12:26 PM, Knut Staring <knutst@xxxxxxxxx>wrote:
>>>>>>>
>>>>>>>> I think we should get DHIS2  added to that list of systems
>>>>>>>> (typically) running on Tomcat. It is a MoinMoin wiki, so I thought I could
>>>>>>>> just add us, but it seems this is an "immutable" page..
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Sep 22, 2013 at 7:19 AM, Jason Pickering <
>>>>>>>> jason.p.pickering@xxxxxxxxx> wrote:
>>>>>>>>
>>>>>>>>> Hi Thanh,
>>>>>>>>>
>>>>>>>>> First off, be sure you are aware of who you are dealing with in
>>>>>>>>> such a debate. These "commercial companies" are probably a lot better at
>>>>>>>>> you in selling products to people who do not need them than you are. This
>>>>>>>>> is after all, what they do. So, keeping that in mind, lets pick apart what
>>>>>>>>> they are saying.
>>>>>>>>>
>>>>>>>>>  "DHIS2 is not built on and use well-know reliable solutions such
>>>>>>>>> as Microsoft Sharepoint, IBM Websphere,  Oracle Bea Weblogic"
>>>>>>>>>
>>>>>>>>> No reason why you could not used DHIS2 with Websphere or Weblogic
>>>>>>>>> in theory. Of course, it would be a huge waste of money to plonk down money
>>>>>>>>> for these applications, when Apache Tomcat (which is free) will do the job
>>>>>>>>> just fine. DHIS2 is using Spring and not EJB, so there is simply no need
>>>>>>>>> for these products. As for Sharepoint, well, it is a totally different
>>>>>>>>> application stack, and not really interesting to debate about. Point is
>>>>>>>>> DHIS2 is built using Java and lots of standard open-source libraries used
>>>>>>>>> by lots of other projects (including commercial ones). So which application
>>>>>>>>> server it uses is really a mater of choice. You could take Tomcat, and it
>>>>>>>>> would work fine. You could also pay a company a lot of money for
>>>>>>>>> a licence for one of the products you mention.  Here is a partial list of
>>>>>>>>> companies/projects using Tomcat, and the number is not small (
>>>>>>>>> http://wiki.apache.org/tomcat/PoweredBy)
>>>>>>>>>
>>>>>>>>> >1. When multiple DHIS2 instances can be deployed in multiple
>>>>>>>>> servers (virtual or physical) and load balanced by a hard or soft balancer
>>>>>>>>> (nginxs), this can not solve the real >problem of distributed HTTP sessions
>>>>>>>>> like what can be done in Application Server, i.e. a logged in users
>>>>>>>>> connected to a instance and this instance die, how can they continue
>>>>>>>>> >without relogin.
>>>>>>>>> >Can using Application Server solve the problems without having to
>>>>>>>>> rewrite dhis2?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Which Application Server? I guess my question here would be what
>>>>>>>>> is the impact of a clustered Tomcat instance crashing? OK, maybe the user
>>>>>>>>> has to login again. Maybe they loose a little bit of work at worst. So
>>>>>>>>> what? Not that this is not an impact, but would it justify even an attempt
>>>>>>>>> to implement a load-balanced clustered solution with some sort of failover
>>>>>>>>> protection transparent to the user? It would not really seem to be
>>>>>>>>> justified.
>>>>>>>>>
>>>>>>>>> >How are we going to solve this? Will we need to use commercial
>>>>>>>>> solutions like Terracotta BigMemory or IBM Data Grid?
>>>>>>>>>
>>>>>>>>> What is the point? This again sounds like a bit of a snake-oil
>>>>>>>>> argument here. These products are not going to help with the issue of an
>>>>>>>>> application server failing. .
>>>>>>>>>
>>>>>>>>> >3. I would like to know the typical deployment of dhis2 in other
>>>>>>>>> countries. Is that on one or multiple server, with or without database
>>>>>>>>> clusters? I heard that many countries go for >cloud but I am not sure if it
>>>>>>>>> is a single or multiple cloud servers?
>>>>>>>>>
>>>>>>>>> Most countries which I know of are using a rather modest server.
>>>>>>>>> Many are using the cloud, some are not. Many countries have everything on
>>>>>>>>> the same machine (database, application server, nginx) and separating the
>>>>>>>>> database and application server is fairly typical as well.  But I could
>>>>>>>>> imagine there are some installations out there which are using clusters,
>>>>>>>>> but I would say this is probably not typical (yet) of most DHIS2
>>>>>>>>> installations.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> >Can cloud provide us a single virtual but unlimited RAM and CPUs
>>>>>>>>> server? As if yes, then we don't have to worry about question 1, 2 because
>>>>>>>>> we can simple add 10000000 >GB RAM and 100000 CPUs to that cloud server.
>>>>>>>>>
>>>>>>>>> Well, for all intents and purposes, you could continue to increase
>>>>>>>>> the size of the server up to a certain size as required but I think the
>>>>>>>>> metrics you give there are pretty ridiculous.Why would you need that much
>>>>>>>>> RAM or CPU power?  Even if it were physically possible which seems
>>>>>>>>> reasonable (although likely very very expensive) , it would generally not
>>>>>>>>> make much sense to do this. Probably better to break the system up into
>>>>>>>>> smaller pieces instead. Using many small servers to distribute the process
>>>>>>>>> is typically the favored approach, instead of having one big massive
>>>>>>>>> machine.
>>>>>>>>>
>>>>>>>>> Anyway, there are a few thoughts off the top of my head. In
>>>>>>>>> summary, there is simply no need for the commercial products you mention in
>>>>>>>>> the vast majority of use cases we have come across. Not to say that they do
>>>>>>>>> not exist, but I would press these "companies" for more details on how
>>>>>>>>> these are actual requirements, and not simply invented hypothetical cases
>>>>>>>>> which could potentially be used to make a sale of unneeded licences.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Jason
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Sep 22, 2013 at 3:14 AM, Ngoc Thanh Nguyen <
>>>>>>>>> thanh.hispvietnam@xxxxxxxxx> wrote:
>>>>>>>>>
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> Some commercial affiliated companies want to kick dhis2 out so
>>>>>>>>>> they made the following arguments: "DHIS2 is not built on and use well-know
>>>>>>>>>> reliable solutions such as Microsoft Sharepoint, IBM Websphere,  Oracle Bea
>>>>>>>>>> Weblogic"
>>>>>>>>>>
>>>>>>>>>> When most of this is wrong they have some valid points that we
>>>>>>>>>> need to be prepared in order to fight back. I would like to get your ideas
>>>>>>>>>> on
>>>>>>>>>>
>>>>>>>>>> 1. When multiple DHIS2 instances can be deployed in multiple
>>>>>>>>>> servers (virtual or physical) and load balanced by a hard or soft balancer
>>>>>>>>>> (nginxs), this can not solve the real problem of distributed HTTP sessions
>>>>>>>>>> like what can be done in Application Server, i.e. a logged in users
>>>>>>>>>> connected to a instance and this instance die, how can they continue
>>>>>>>>>> without relogin.
>>>>>>>>>>
>>>>>>>>>> Can using Application Server solve the problems without having to
>>>>>>>>>> rewrite dhis2?
>>>>>>>>>>
>>>>>>>>>> How are we going to solve this? Will we need to use commercial
>>>>>>>>>> solutions like Terracotta BigMemory or IBM Data Grid?
>>>>>>>>>>
>>>>>>>>>> 2. For database scale, with one database instances installed on
>>>>>>>>>> single server. it has the risk of data loss. We can use database clusters
>>>>>>>>>> to address this issue, and data on clusters mostly rely on memory. My
>>>>>>>>>> question is how this cluster will work with distributed sessions described
>>>>>>>>>> in question 1.
>>>>>>>>>>
>>>>>>>>>> 3. I would like to know the typical deployment of dhis2 in other
>>>>>>>>>> countries. Is that on one or multiple server, with or without database
>>>>>>>>>> clusters? I heard that many countries go for cloud but I am not sure if it
>>>>>>>>>> is a single or multiple cloud servers?
>>>>>>>>>>
>>>>>>>>>> Can cloud provide us a single virtual but unlimited RAM and CPUs
>>>>>>>>>> server? As if yes, then we don't have to worry about question 1, 2 because
>>>>>>>>>> we can simple add 10000000 GB RAM and 100000 CPUs to that cloud server.
>>>>>>>>>>
>>>>>>>>>> Thanks in advanced.
>>>>>>>>>>
>>>>>>>>>> Thanh
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs
>>>>>>>>>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>>>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs
>>>>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs
>>>>>>>>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs
>>>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Knut Staring
>>>>>>>> Dept. of Informatics, University of Oslo
>>>>>>>> +4791880522
>>>>>>>>  http://dhis2.org
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>

References