codeuino / social-platform-donut-backend

Donut API:
http://donut-api-prod.codeuino.org/
GNU General Public License v3.0
24 stars 57 forks source link

Donut Platform like a Discourse hosting structure #144

Open mrityagi opened 4 years ago

mrityagi commented 4 years ago

Here we will discuss how to scale Donut into a broader Web service and will discuss which server service to be used in accomplishing our goal .

Discussion around web server infra ( AWS ,Firebase etc ) / on premise Deployments for a Discourse like Hosting structure The Idea is to provide a hosting service as seen with Discourse hosting public/private forums .

Types of Deployment

On Premises : In an on-premises environment, resources are deployed in-house and within an enterprise’s IT infrastructure. An enterprise is responsible for maintaining the solution and all its related processes which means we may hardware costs(servers) and their routine maintenance which can be cumbersome sometimes .

Cloud : While there are different forms of cloud computing (such as public cloud, private cloud, and a hybrid cloud), in a public cloud computing environment, resources are hosted on the premises of the service provider but enterprises are able to access those resources and use as much as they want at any given time . Such services are provided by AWS , Google Cloud(Firebase) etc to name a few . Here we will only have to pay a small fees as per our plan for the server service while the hardware and its maintenance will be done by the provider . aws, Firebase

I personally am in awe of Google Firebase Cloud service as it is very user friendly and is basically created for Communities like that of ours who are new to deployment of services . Moreover one can use Google cloud functions , Google ML , Google crash analytics to measure crashes and user retention of the service . While AWS is more suited to enterprise customers who have their experience of deployment and wanna switch , moreover AWS has a steep learning curve .

That's my view . Do share yours Please post your views for the above mentioned topics in this issue . Support your views by providing links and other sources :)

mrityagi commented 4 years ago

@jaskiratsingh2000 @kmehant @vaibhavdaren @devesh-verma What do you think ? Let's brainstorm on our Discourse like functionalities and select which sever service to continue with

jaskiratsingh2000 commented 4 years ago

Thanks a lot, @mrityagi for writing up this issue, this is really great and informative. Since this is at a high priority so I think from here we would end up in some fruitful thoughts. I am leaving this on @devesh-verma @vaibhavdaren and GSoC students (@AuraOfDivinity and @Rupeshiya ) to put up their clear thoughts.

vaibhavdaren commented 4 years ago

Btw it's not AWS vs GCP both offer the same sets of services. Most sass applications use both.

mrityagi commented 4 years ago

@vaibhavdaren @jaskiratsingh2000 yes you are right ! . But we can't start on both at the same time , we have to choose one to start :) . Let's look at the core of these sevices , GCP has its present services curated mainly for No-Sql databse like firebase(no-sql) like us mongoDb, (its sql services aren't much popular as Cloud sql is still in beta i guess) ie around web services and mobile app services as they have introduced Cloud Messaging for notifications and server handshakes(transactions) , moreover GCP is relatively new say firebase which started in 2k17 .

As far as AWS is concerned it's the biggest fish out there since 2006 , it has really acquired majority of enterprises out there as it caters to both Sql and No-Sql , we have to choose one as there has to be a place to begin , as these servies are almost similar and we have our backend as mongoDb(no-sql) so we don't really need to be on both . I have even read some enterprises use GCP for no-sql and AWS for sql lol . It means we need to choose a service which saves our time in development phase and is developer/contributor friendly and i have known firebase it's way too easy for onboarding and scaling as it's very popular among startups and mobile developers while AWS is a bit rusty as if their most clients are enterprises which have invested highly into backend developers , What do you think ?

jaskiratsingh2000 commented 4 years ago

@devesh-verma Maybe you would like to chime in something? You have got a better knowledge of this. So let's encourage you to go with either option after your review. cc @vaibhavdaren

vaibhavdaren commented 4 years ago

we have digital ocean credits do u have experience about the same?

mrityagi commented 4 years ago

I have heard about digital ocean cloud , sorry @vaibhavdaren i have never used it our college club received credits for digital ocean and aws but we chose aws , but little did we knew that both of these services basically offered server for which we have to manage computation capacity , load balancing and rent more servers as per use . I'd say to achieve our development goals , we should stay away from server code as much as we can and if services are there which can integrate our backend with frontend , I may sound a bit too ecstatic for firebase 😅 but I'd say if we just look at its integration of all Google web services with server scalability on just it's website , we'd know how much development friendly it is . 🙂 Frankly speaking I have been building an app alongside a dash which is centered around queue management in Flutter which is written in dart and I currently am using firebase link , but sorry because it's group project it is private . Moreover aws too is free for the first year

mrityagi commented 4 years ago

@vaibhavdaren @jaskiratsingh2000 @kmehant please have a look at CDN (content delivery networks) , most people use it host their instance of Discourse forums , maybe it can be of help to us .