Make some suggestion for a technology stack

CheekyC

Senior Member
Joined
Nov 25, 2013
Messages
515
Reaction score
0
Hi, seeing that there are so many diverse opinions here, I would like to throw a question on the table.

I need to develop a very large Line of Business system that will integrate several organisations, internationally and local, including government departments. The system will most likely be browser based, but there will also be offline/online mobile devices in the picture.

So, I have a technology stack in mind but would like you guys to table your ideas and why. You have a clean sheet of paper and can ask as many questions as you like....
 
I dont know what you mean by technology stack but if you mean what technology would I use if I had to do that? I would definitely take advantage of the Cloud. Build my applications in the cloud so the data is available from anywhere, anytime and any device.
 
I dont know what you mean by technology stack but if you mean what technology would I use if I had to do that? I would definitely take advantage of the Cloud. Build my applications in the cloud so the data is available from anywhere, anytime and any device.

Yes, technology stack is either layered components or services, you explained it in layman terms.
 
I dont know what you mean by technology stack but if you mean what technology would I use if I had to do that? I would definitely take advantage of the Cloud. Build my applications in the cloud so the data is available from anywhere, anytime and any device.

With technology stack I mean
- what DB (or rather persistence layer) would you choose
- what server side technology (.Net / Java / etc)
- user interface (ASP.Net / Flash/Flex / if using javascript, what lib would you use e.g. knockout / jQuery/...)
- what comms between ui and services layer e.g. HTTP POST / WCF and SOAP / JSON
- what mobile OS e.g. android / iOS / etc.
- etc

When you talk about cloud, there are many options. Amazon/Azure/Force/Local hosted/ etc
 
Hi, seeing that there are so many diverse opinions here, I would like to throw a question on the table.

I need to develop a very large Line of Business system that will integrate several organisations, internationally and local, including government departments. The system will most likely be browser based, but there will also be offline/online mobile devices in the picture.

So, I have a technology stack in mind but would like you guys to table your ideas and why. You have a clean sheet of paper and can ask as many questions as you like....

Looking at what you want are in all terms Federation Services deployed globally. The question rather is, will you be hosting it in personal capacity or by a third-party? Building your own Federation, would be appropriate to utilise OpenStack and in my opinion the best route will be to go along with OnApp as with Service Levels (SLA).
 
I dont know what you mean by technology stack but if you mean what technology would I use if I had to do that? I would definitely take advantage of the Cloud. Build my applications in the cloud so the data is available from anywhere, anytime and any device.

He means LAMP type stacks.

What type of traffic do you expect?

If high load i would go towards Scala on the backend with redis as cache store, depending on the db design you could go with neo4j (graph database) or maybe couchdb (non relational). As for front end delivery there are scala options as well or you could go the nodejs route or .net. Most local corporate's feel more at ease with Microsoft based technologies purely because they don't understand the rest 99% of the time.

I am a big fan of nodejs but i also believe there is a place for it. Because of the way nodejs works (event driven), it might not be the ideal platform for you.

So to sum it up

DB - neo4j / Couchdb or postgres
--
Backend - Scala
--
Front end -- Nodejs / .NET / Ruby

Edit: inclusion of criteria

Angularjs, design for mobile first for it to scale up using responsive design, REST api/comms.

Amazon cloud is by far the most superior.
 
Last edited:
First define what "very large" means. How many users? Is latency important? Is real time data to everyone important?

This question is pretty much pointless without scope.
 
Last edited:
Looking at what you want are in all terms Federation Services deployed globally. The question rather is, will you be hosting it in personal capacity or by a third-party? Building your own Federation, would be appropriate to utilise OpenStack and in my opinion the best route will be to go along with OnApp as with Service Levels (SLA).

It will be hosted at a hosting provider not myself. I dont know Federation Services or OpenStack and will have to read up about it
 
What is your current stack maybe that's an easier starting point.
 
The software I run my business on is a php/mysql/perl web application. It is hosted on the most reliable cloud service I could find. It can pretty much scale as my needs grow. I have clients and workers connecting to it from all around the world. I also have the android app for it so I can manage it from the beach :D

Having a web application means you can pretty much operate the application from most devices and most operating systems.
 
It will be hosted at a hosting provider not myself. I dont know Federation Services or OpenStack and will have to read up about it

Depending on your requirements, are the reason I asked. By meaning in hosting it in personal capacity, will mean that you will need to secure space within a hosting environment (also own hardware) and also be responsible in all management levels and bandwidth capacity and breakouts. Hosting at a third-party, will provide SLA en sourced managed levels, like initial setup, maintenance etc.

In your original post, I read large line and government systems on global level, going along the Teraco route will tick the most boxes in obtainable requirements.

My post entailed the scalable Platform on which you want to build your stacks.
 
He means LAMP type stacks.

What type of traffic do you expect?
It is not a very high traffic system, but could possibly be in future. SO need to take that into consideration.

If high load i would go towards Scala on the backend with redis as cache store, depending on the db design you could go with neo4j (graph database) or maybe couchdb (non relational).
Will read up on Scala. Would want to use solid & stable db and something that will be around for some time... (not saying that the above ones aren't)

As for front end delivery there are scala options as well or you could go the nodejs route or .net. Most local corporate's feel more at ease with Microsoft based technologies purely because they don't understand the rest 99% of the time.
True that...

I am a big fan of nodejs but i also believe there is a place for it. Because of the way nodejs works (event driven), it might not be the ideal platform for you.

So to sum it up

DB - neo4j / Couchdb or postgres
--
Backend - Scala
--
Front end -- Nodejs / .NET / Ruby

Edit: inclusion of criteria

Angularjs, design for mobile first for it to scale up using responsive design, REST api/comms.

Amazon cloud is by far the most superior.
[/QUOTE]

Interesting combo. One big consideration of course is skill sets and the availabilty thereof. No point in using a stack with non-mainstream technologies and battling to support it in 10 years' time... Some of my systems have been running for 25 years and believe me, software and technology obsolensence that is something that you have to plan for ...

Any suggestion re mobile OS? Seeing that this will require offline app, native (e.g. objC or C#) is really the only way to go as opposed to PhoneGap etc
 
First define what "very large" means. How many users? Is latency important? Is real time data to everyone important?

This question is pretty much pointless without scope.

For the first deployment prob < 100 users. But I am planning this to be an global platform, so many more.

'Large' also alludes to the fact that it integrates many disparate organisations.
 
What is your current stack maybe that's an easier starting point.

Well I dont have a 'current stack' but will have to choose soon. Hence my question. The persistence layer is totally abstracted so which is not really an issue. But I do use Firebird in all my projects. The systems of mine that have been running for 25 years are all on Firebird. Very reiable and no maintenance required. And free....

My thoughts were to use C# for the services layer and backend. And ASP.NET/jquery/other js libs for the frontend. Yes I like REST & JSON
 
The software I run my business on is a php/mysql/perl web application. It is hosted on the most reliable cloud service I could find. It can pretty much scale as my needs grow. I have clients and workers connecting to it from all around the world. I also have the android app for it so I can manage it from the beach :D

Having a web application means you can pretty much operate the application from most devices and most operating systems.

The device side apps will have to be native as it will require offline usage as well. And then syncing of data when in connectivity coverage.
 
Depending on your requirements, are the reason I asked. By meaning in hosting it in personal capacity, will mean that you will need to secure space within a hosting environment (also own hardware) and also be responsible in all management levels and bandwidth capacity and breakouts. Hosting at a third-party, will provide SLA en sourced managed levels, like initial setup, maintenance etc.
Correct. I would prefer not to have to do that or rather be responsible for all that. That is why I will have to look at provider and technology combos that are feasible.

In your original post, I read large line and government systems on global level, going along the Teraco route will tick the most boxes in obtainable requirements.

My post entailed the scalable Platform on which you want to build your stacks.
Will look at Teraco as I have heard of it but dont know anythink about it
 
Also, do take in consideration POPI, as it may (depending on environment) point you down certain routes to be 100% within compliance. I mention this due to you global deployment. Best to be compliance now than later, or else too much may change within your stack distribution.
 
It is not a very high traffic system, but could possibly be in future. SO need to take that into consideration.


Will read up on Scala. Would want to use solid & stable db and something that will be around for some time... (not saying that the above ones aren't)


True that...



Interesting combo. One big consideration of course is skill sets and the availabilty thereof. No point in using a stack with non-mainstream technologies and battling to support it in 10 years' time... Some of my systems have been running for 25 years and believe me, software and technology obsolensence that is something that you have to plan for ...

Any suggestion re mobile OS? Seeing that this will require offline app, native (e.g. objC or C#) is really the only way to go as opposed to PhoneGap etc

Scala is being used by twitter they moved most of their systems over to it, and its used by others as well.

http://www.scala-lang.org/old/node/1658

Its not going anyway anytime soon.

Mobile i am not a fan of those abstraction tool kits, i would rather invest in people that can code for each platform but thats me.
 
Also, do take in consideration POPI, as it may (depending on environment) point you down certain routes to be 100% within compliance. I mention this due to you global deployment. Best to be compliance now than later, or else too much may change within your stack distribution.
Very valid point. At this stage there are no personal or financial info. But there are company confidential info.

I have also looked at a SaaS platform like Apprenda. You basically upload all your ASP.NET source and DB scripts then it builds an entire SaaS solution for you with multi tenancy, billing, on-boarding, etc etc. Quite impressive actually. But it is limited to MS stack only
 
well, seeing as I firmly don't buy the "I have X users now, but I might have X+billion in the future, I am going to cater for that" argument, the answer is simple to me.

essentially a LAMP stack, replacing any of the letters with your own.

I am bias, but would go with LAMJ(ava) :)

software is a business. business = profit. essentially software should be written as cheaply as possible (cheap does not equal bad quality), as quickly as possible, while satisfying all the requirements, support realist future growth, and not be written so poorly that it cannot be easily refactored to cater for unforeseen circumstances.
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X