Some great answers everyone - really appreciate it. I think that all things considered, SimplePersistence seems like a very easy place to start, and then I can "upgrade" when my super awesome idea (not), exceeds its bounds.
I wonder if these answers should go somewhere in a tips section somewhere, and get updated yearly. @jonathan I had forgotten about those server tools - I think the last time I did something it predated some earlier tips the Sven had given, so will check it out. Back then, I did have a GitLab build pipeline autodeploying for me, so I'm hoping I can re-incarnate all of that so I can get my little app running with no fuss... lets see. While I have a love/hate with Docker - I did wonder if there was something for Pharo that just let me build my image into a container and then it would just work with little system knowledge needed (as I keep forgetting all the voodoo between times when I need it). Maybe there is, or maybe it might come one day soon... Tim On Tue, 6 Oct 2020, at 9:40 AM, Jonathan van Alteren wrote: > Hi Tim, > > I've been running Seaside applications on Hetzner cloud servers for more than > a year now, with great pleasure and success: https://www.hetzner.com/cloud > I guess their servers are similar to Digital Ocean, although I haven't > followed the development of their products and solutions for quite a while. > Setting up a new server at Hetzner is a breeze, and you can start already for > as low as €2,49 per month! > > We're using Voyage on MongoDB for persistence. After learning some hard > lessons (and I'm sure there are more to come ;-)), I really enjoy the > unobtrusiveness of it. Most of the time, it doesn't require much attention > and allows me to add persistence to real OO designs quickly and easily. I > find it a welcome change from the relational database work I used to (need > to) do, back when I was still doing Java. The 'everything an object' > principle of Pharo/Smalltalk really makes it shine. > > I can't help you with a list of tradeoffs though. If you come across a set of > arguments, I'd be happy to give feedback. > > By the way, I forked Sven's pharo-server-tools project (here: > https://github.com/objectguild/pharo-server-tools) and have a routine going > that suits me well enough. Still lots of room for improvement, but it's OK > for my current needs. > > Future plans are to use the Hetzner API to provision a new server and use > something like Chef or Ansible to install/configure it automatically to be > ready to deploy a Seaside application. I'd like to integrate this into a full > service CI/CD pipeline in the future, to be able to do automated production > deployments without service interruption if possible. For this scenario, I > would really also like to switch to using GemStone for persistence. > > Hope this helps! Let me know what you decide and I might be able to help with > some technical stuff. > > Kind regards, > > Jonathan van Alteren > > Founding Member | Object Guild B.V. > *Sustainable Software for Purpose-Driven Organizations* > > jvalte...@objectguild.com > On 6 Oct 2020, 00:23 +0200, Tim Mackinnon <tim@testit.works>, wrote: > >> Hi everyone - I’m wondering what is the recommended way to save some simple >> user data for a Pharo application I would like to run on the cloud (probably >> initially digital ocean, but could be AWS if it came to it). >> >> Initially I thought I might try and run my little app in Digital ocean (I >> followed someone’s steps a few years ago, and had a simple seaside app >> running quite well) - so I was thinking of starting there. >> >> I know there is Sven’s P3 - but I’m not sure I’m ready to run and maintain a >> SQL database for a simple application, but could be persuaded it its simple >> to setup with little maintenance. Would mongo be a suggestion - is that easy >> to setup and run? (And is that Voyage?). >> >> Possibly I could even use image persistence, and fuel out a Dictionary from >> time to time - but I think that might be a little bit too belt and braces >> for me. >> >> Is there something that gives a little table of tradeoffs with some simple >> ways to get started? >> >> Tim