Hi Terry!

Yes, it seems your thinking about this in the correct.

I would like to point to a very different solution though. If you also have
(basic) JavaScript or Google Apps Script experience, you could check out App
Maker <https://developers.google.com/appmaker/> which is part of G Suite.
It allows users in the same domain to create web-apps with little code.
Google also offers G Suite for Nonprofits
<https://www.google.com/nonprofits/products/apps-for-nonprofits.html>. From
what I have read in your post (small web app, 5 users in the same org,
small database, online collaboration) I believe that App Maker could be
more suitable for your needs. I don't use it myself, so I'm not 100%
certain that data changes would be synced automatically between users that
have the same record displayed, but I believe their data bindings supports
this use-case <https://developers.google.com/appmaker/properties>. The
solution is currently in beta.

If you expect that in the future there might be many more users or users
outside of a G Suite domain, App Engine and/or Firebase
<https://firebase.google.com/> could be the better approach. Firebase
(either with Firebase Realtime Database or the new Firestore) is very
helpful syncing your data between users in real-time (mobile or web). You
can combine Firebase with App Engine or use either product stand-alone.
However, I think real-time collaboration is difficult in App Engine
with-out a nice stack like Firebase or some other push service. And in
standard environment I don't know any way to use web-sockets for that.

If I remember correctly, there is a new web socket feature for App Engine
in development that could help with that aspect. Not sure.

My 2 cents, best wishes
Ani

On Fri, 9 Feb 2018 at 04:49 Terry Caliendo <terrycalie...@gmail.com> wrote:

> I'm trying to understand what it would cost to run a fairly simple app on
> Google App Engine.  I've tried the cost calculator, but I'm a bit unsure
> that I'm entering everything correctly (and/or reading the limits of the
> free tier correctly).  The simple app I'm developing is for a non-profit so
> I need to keep the cost extremely low.
>
> *Basic App Info*
> The app will be a specialized database of client information.
>
> The app will be very responsive for the user in that when the user makes a
> change to a field, the browser will send the change to the server after the
> focus moves away from the field (ie. the user won't be hitting a "submit"
> button to save the changes).
>
> Also, in similar fashion to the way google docs works, if two users have
> the same record open at the same time and one user makes an update to a
> field that gets saved (as outlined above), the system will send the change
> to the other user's browser to update the corresponding field.
>
> I'm primarily a php developer and this type of instant interaction is not
> well suited, because each instance of php/cgi is resource intensive.  Thus
> keeping a process alive to create a websocket type setup would put an
> unnecessary strain on the server.  And polling the server every 5 seconds
> via client side "pull" would also be intensive on the server.
>
>
> *Flexible Enviornment*
> Thus I'm was looking at NodeJS as the development platform as I believe it
> would handle websockets with high efficiency.  But it appears as though
> Node JS needs to run in the "Flexible Environment", which does not have a
> free tier and appears as though it would be somewhat costly for the non
> profit at around $20-$40 per month (from articles I've read on the
> internet).
>
>
> *Standard Environment*
> The "Standard Environment" has a free tier that it seems like I may be
> able to keep this app within.  I think I'd probably choose to have the app
> developed in Python, but I'm open to suggestions as to what would be the
> best player for websockets (or server "push") in the Standard Envoronment.
>
>
>
> *App Resource Needs*
> My app will have about 5 users that will use the app on and off throughout
> their day.   Each of them would make approximately 5 changes per session,
> and browse approximately 10 records per session.    And lets say each
> worker does 20 sessions per day, and that the sessions each last 10
> minutes.  So, with approx 23 work days per month, there would be about a
> total of 11,500 writes per month and 22,000 reads per month.  The total
> data stored on the database would be small, around 10MB.
>
>
> *Cost*
> From what I'm gathering from the pricing, I'm absolutely in the free tier
> for the database usage, correct?
>
> If I had the app built to run in the Standard Environment, it appears as
> though I can have one F1 instance running 24/7 for free.  At some point
> during the day the 5 users could all be accessing the app at the same time,
> so would one F1 instance (running Python) be able to handle 5 concurrent
> websocket connections with read/writes to the database?
>
> If so it appears as though I could get this app hosted for this non profit
> on google's platform for free.
>
>
> *Thoughts*
> Am I thinking about this in the correct way?  Are there any fees I'm
> likely missing?
>
> Thanks for any suggestions and input.
>
> Terry
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to google-appengine+unsubscr...@googlegroups.com.
> To post to this group, send email to google-appengine@googlegroups.com.
> Visit this group at https://groups.google.com/group/google-appengine.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-appengine/7602526c-d37a-4b33-9006-1e86d72e351a%40googlegroups.com
> <https://groups.google.com/d/msgid/google-appengine/7602526c-d37a-4b33-9006-1e86d72e351a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/CALdDuQ6B86VVT-HP1xngnSrk80siWLHYiDPUoFgDxTJeMrrrRQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to