Whats the easiest/cheapest way to run a Pharo web app in 2021?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

NorbertHartl
I read the title which contains „easiest/cheapest“ and then you drop names „docker“, "CI which injects“ and „stages" … this invalidates at least „easiest“ and maybe „cheapest“ as well. I think I missed the intent of this mail. So can you give a few more details otherwise it is hard to meet the „easiest on this level of requirements“

Norbert

> Am 12.04.2021 um 10:36 schrieb Tim Mackinnon <[hidden email]>:
>
> That is cheap 3e/m is definitely worth considering… but I guess you do have to take care of your own patching etc right (which isn’t necessarily horrible, but does require a bit of extra effort to track things). I was interested in whether the next step up in the food chain using Docker images that are hosted for you, might lessen the burden a bit? E.g. if your CI injects a pharo image into the latest “safe” docker image from the community - then hopefully you are insulated from all of this.  It does look like this is becoming a reality if that dockerize.io soln plays out (I got that working, its cheap - however they haven’t answered any of my email queries… so I do wonder how real it actually is). The fallback would definitely be something like Hetzner or Digital Ocean I guess.
>
> Tim
>
>> On 12 Apr 2021, at 08:47, Norbert Hartl <[hidden email]> wrote:
>>
>>
>>
>>> Am 12.04.2021 um 04:02 schrieb Jeff Gray <[hidden email]>:
>>>
>>> Considering easiest and cheapest, there's always self hosting, or are you
>>> discounting that idea?
>>> Most geeks have a bit of spare hardware laying around and broadband
>>> up-speeds aren't too bad.
>>> I'm guessing that if we are in the $5 a month ball park then we aren't
>>> needing a guaranteed up time.
>>>
>>
>> My cloud instance is 3€/month. With an additional 20% amount the instance has a backup. And setting it up is way simpler then getting dynamic DNS updates and all of that configured. Times have changed a bit.
>>
>>
>> Norbert
Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

NorbertHartl
In reply to this post by Jeff Gray


Am 13.04.2021 um 01:11 schrieb Jeff Gray <[hidden email]>:

LOL - Yes, time marches forward, and definitely an old dog :-)

me, too ;)

That ( and some of the other services mentioned already) is pretty
inexpensive.
What storage do you get for your 3 euros?

It is 20B. Have a look at https://www.hetzner.com/cloud the CX11 instance. Is 2GB main memory, 1vCPU, 20GB disk space.

Norbert

Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

jtuchel
In reply to this post by NorbertHartl
Norbert,

you nailed it ;-) Easy and cheap and lots of layers of magic
infrastructure nailed and hammered onto each other don't go well with
each other. I am still a fan of having some server - virtual or physical
- that I can reinstall from scratch and as little moving parts as
possible on top of that. I rather have a little collection of sheets on
which I wrote down each single step of installing what's needed and a
good backup of ini files and whatnot than a pile of "stuff" that makes
things "easy".

I know, that's so 90ies, but hey, we're using Smalltalk from the 70ies ;-)

Joachim



Am 13.04.21 um 18:09 schrieb Norbert Hartl:

> I read the title which contains „easiest/cheapest“ and then you drop names „docker“, "CI which injects“ and „stages" … this invalidates at least „easiest“ and maybe „cheapest“ as well. I think I missed the intent of this mail. So can you give a few more details otherwise it is hard to meet the „easiest on this level of requirements“
>
> Norbert
>
>> Am 12.04.2021 um 10:36 schrieb Tim Mackinnon <[hidden email]>:
>>
>> That is cheap 3e/m is definitely worth considering… but I guess you do have to take care of your own patching etc right (which isn’t necessarily horrible, but does require a bit of extra effort to track things). I was interested in whether the next step up in the food chain using Docker images that are hosted for you, might lessen the burden a bit? E.g. if your CI injects a pharo image into the latest “safe” docker image from the community - then hopefully you are insulated from all of this.  It does look like this is becoming a reality if that dockerize.io soln plays out (I got that working, its cheap - however they haven’t answered any of my email queries… so I do wonder how real it actually is). The fallback would definitely be something like Hetzner or Digital Ocean I guess.
>>
>> Tim
>>
>>> On 12 Apr 2021, at 08:47, Norbert Hartl <[hidden email]> wrote:
>>>
>>>
>>>
>>>> Am 12.04.2021 um 04:02 schrieb Jeff Gray <[hidden email]>:
>>>>
>>>> Considering easiest and cheapest, there's always self hosting, or are you
>>>> discounting that idea?
>>>> Most geeks have a bit of spare hardware laying around and broadband
>>>> up-speeds aren't too bad.
>>>> I'm guessing that if we are in the $5 a month ball park then we aren't
>>>> needing a guaranteed up time.
>>>>
>>> My cloud instance is 3€/month. With an additional 20% amount the instance has a backup. And setting it up is way simpler then getting dynamic DNS updates and all of that configured. Times have changed a bit.
>>>
>>>
>>> Norbert


--
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          mailto:[hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1

Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

Christian Haider
Yes, this is my camp 😊.

Every layer or tool adds many cool features (their raison d'être) which you don’t need for the "easy" setup.
You typically need only a handful of the configuration parameters at most (imagine PostgreSQL, Apache, Jenkins etc.).
Yet, all the myriad of super-duper feature settings add to confusion and are nice traps for interesting bugs.

The complexity of a system is probably exponential to the number of tools or layers...
And each one of them wants to be updated...
And each has its own documentation (which you have to read when you get unlucky) with its own conventions...

No thanks. I try to keep my stack as simple as possible.
That’s also a good reason for Smalltalk, because it makes it much easier to keep all pieces together.

Happy hacking,
        Christian

> -----Ursprüngliche Nachricht-----
> Von: [hidden email] <[hidden email]>
> Gesendet: Dienstag, 13. April 2021 18:15
> An: [hidden email]
> Betreff: [Pharo-users] Re: Whats the easiest/cheapest way to run a Pharo
> web app in 2021?
>
> Norbert,
>
> you nailed it ;-) Easy and cheap and lots of layers of magic infrastructure
> nailed and hammered onto each other don't go well with each other. I am
> still a fan of having some server - virtual or physical
> - that I can reinstall from scratch and as little moving parts as possible on top
> of that. I rather have a little collection of sheets on which I wrote down each
> single step of installing what's needed and a good backup of ini files and
> whatnot than a pile of "stuff" that makes things "easy".
>
> I know, that's so 90ies, but hey, we're using Smalltalk from the 70ies ;-)
>
> Joachim
>
>
>
> Am 13.04.21 um 18:09 schrieb Norbert Hartl:
> > I read the title which contains „easiest/cheapest“ and then you drop
> > names „docker“, "CI which injects“ and „stages" … this invalidates at
> > least „easiest“ and maybe „cheapest“ as well. I think I missed the
> > intent of this mail. So can you give a few more details otherwise it
> > is hard to meet the „easiest on this level of requirements“
> >
> > Norbert
> >
> >> Am 12.04.2021 um 10:36 schrieb Tim Mackinnon <[hidden email]>:
> >>
> >> That is cheap 3e/m is definitely worth considering… but I guess you do
> have to take care of your own patching etc right (which isn’t necessarily
> horrible, but does require a bit of extra effort to track things). I was
> interested in whether the next step up in the food chain using Docker images
> that are hosted for you, might lessen the burden a bit? E.g. if your CI injects a
> pharo image into the latest “safe” docker image from the community - then
> hopefully you are insulated from all of this.  It does look like this is becoming
> a reality if that dockerize.io soln plays out (I got that working, its cheap -
> however they haven’t answered any of my email queries… so I do wonder
> how real it actually is). The fallback would definitely be something like
> Hetzner or Digital Ocean I guess.
> >>
> >> Tim
> >>
> >>> On 12 Apr 2021, at 08:47, Norbert Hartl <[hidden email]> wrote:
> >>>
> >>>
> >>>
> >>>> Am 12.04.2021 um 04:02 schrieb Jeff Gray <[hidden email]>:
> >>>>
> >>>> Considering easiest and cheapest, there's always self hosting, or
> >>>> are you discounting that idea?
> >>>> Most geeks have a bit of spare hardware laying around and broadband
> >>>> up-speeds aren't too bad.
> >>>> I'm guessing that if we are in the $5 a month ball park then we
> >>>> aren't needing a guaranteed up time.
> >>>>
> >>> My cloud instance is 3€/month. With an additional 20% amount the
> instance has a backup. And setting it up is way simpler then getting dynamic
> DNS updates and all of that configured. Times have changed a bit.
> >>>
> >>>
> >>> Norbert
>
>
> --
> -----------------------------------------------------------------------
> Objektfabrik Joachim Tuchel          mailto:[hidden email]
> Fliederweg 1                         http://www.objektfabrik.de
> D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
> Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1

Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

Tim Mackinnon
This raises a good point from Norbert - what does simple mean?

I think we all agree on what is cheap - in my mind sub 10euros (ideally 5) - which seems totally doable from what people are saying (of course this goes up if you want big databases and load balanced stuff etc - although you might squeeze it in from the suggestions so far - but lets take this one as given - I’d like to run some simple apps for me or my family).

So revisiting simple - I started out thinking Docker was overkill and Swarms and Kubernetes made me sick (I’m sure there is a point where you get to these, but then you probably have a bigger team and lots more skills to potentially consider it - although my observation to date was that these things seems to suck up needless time). 

HOWEVER - I acknowledge that times have moved on, and I was deeply impressed with Pablo’s article on quickly standing up Pharo in a Docker image based on a community container… what struck me about this was that I didn’t really need to know or care about underlying Linux - and apt-get update and friends… nor about sysctrl and restarting things…  so for me simplicity is eliminating all the OS, patches and updates and potentially even scaling - and they get handled in a not-Kubernetes way (or at least the K is totally hidden from me). Equally - for persistence,  just want a db as a service - with credentials injected into my image so that it can be safely updated/password rotated etc without me caring much. I can just connect to it (and ideally its backed up for me, if I tick a box and pay a bit more money).

I think we may be close to this - particularly as Pierce pointed out that you can build your ST image outside of a container (like many do today - and Github/lab have reasonable tooling to let you metacello a clean image and keep logs to see what has happened, as well as cache the right bits for you so its nice and fast) and then you simply ADD it into Docker with a few lines of Dockerfile.

So I am wondering if in 2021, whether Docker might actually have got us to a point of simplicity, and for simple workloads if something like dockerize.io (or others - but it seems the closest to what I am imagining although I’ve not used it much so far) abstracts you far enough from the Linux/Networking/Secuirty drudgery that makes web development suck. (Don’t get me wrong - I know some of you are wizards at this stuff, and its second nature to jump into bash and do the right things - but I find that while I can get so far, inevitably you get reams of console slush where some package conflicts with another and then you are on stackoverflow or here trying to work out how your distro has cocked something up, or you missed some special switch to keep things sane).

But I am curious about what others have experienced - as I know many of you have played with Swarm, Kubernetes etc, and equally maybe native, non Docker has a way of avoiding the OS updates and restart magic in a simpler way? I thought DigitalOcean might do this - but it still seemed that you need to go lower level than I have time for.


Tim


On 13 Apr 2021, at 17:48, Christian Haider <[hidden email]> wrote:

Yes, this is my camp 😊.

Every layer or tool adds many cool features (their raison d'être) which you don’t need for the "easy" setup.
You typically need only a handful of the configuration parameters at most (imagine PostgreSQL, Apache, Jenkins etc.).
Yet, all the myriad of super-duper feature settings add to confusion and are nice traps for interesting bugs.

The complexity of a system is probably exponential to the number of tools or layers...
And each one of them wants to be updated...
And each has its own documentation (which you have to read when you get unlucky) with its own conventions...

No thanks. I try to keep my stack as simple as possible.
That’s also a good reason for Smalltalk, because it makes it much easier to keep all pieces together.

Happy hacking,
Christian

-----Ursprüngliche Nachricht-----
Von: [hidden email] <[hidden email]>
Gesendet: Dienstag, 13. April 2021 18:15
An: [hidden email]
Betreff: [Pharo-users] Re: Whats the easiest/cheapest way to run a Pharo
web app in 2021?

Norbert,

you nailed it ;-) Easy and cheap and lots of layers of magic infrastructure
nailed and hammered onto each other don't go well with each other. I am
still a fan of having some server - virtual or physical
- that I can reinstall from scratch and as little moving parts as possible on top
of that. I rather have a little collection of sheets on which I wrote down each
single step of installing what's needed and a good backup of ini files and
whatnot than a pile of "stuff" that makes things "easy".

I know, that's so 90ies, but hey, we're using Smalltalk from the 70ies ;-)

Joachim



Am 13.04.21 um 18:09 schrieb Norbert Hartl:
I read the title which contains „easiest/cheapest“ and then you drop
names „docker“, "CI which injects“ and „stages" … this invalidates at
least „easiest“ and maybe „cheapest“ as well. I think I missed the
intent of this mail. So can you give a few more details otherwise it
is hard to meet the „easiest on this level of requirements“

Norbert

Am 12.04.2021 um 10:36 schrieb Tim Mackinnon <[hidden email]>:

That is cheap 3e/m is definitely worth considering… but I guess you do
have to take care of your own patching etc right (which isn’t necessarily
horrible, but does require a bit of extra effort to track things). I was
interested in whether the next step up in the food chain using Docker images
that are hosted for you, might lessen the burden a bit? E.g. if your CI injects a
pharo image into the latest “safe” docker image from the community - then
hopefully you are insulated from all of this.  It does look like this is becoming
a reality if that dockerize.io soln plays out (I got that working, its cheap -
however they haven’t answered any of my email queries… so I do wonder
how real it actually is). The fallback would definitely be something like
Hetzner or Digital Ocean I guess.

Tim

On 12 Apr 2021, at 08:47, Norbert Hartl <[hidden email]> wrote:



Am 12.04.2021 um 04:02 schrieb Jeff Gray <[hidden email]>:

Considering easiest and cheapest, there's always self hosting, or
are you discounting that idea?
Most geeks have a bit of spare hardware laying around and broadband
up-speeds aren't too bad.
I'm guessing that if we are in the $5 a month ball park then we
aren't needing a guaranteed up time.

My cloud instance is 3€/month. With an additional 20% amount the
instance has a backup. And setting it up is way simpler then getting dynamic
DNS updates and all of that configured. Times have changed a bit.


Norbert


--
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          [hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1


Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

NorbertHartl
In reply to this post by jtuchel
Thanks! What I’ve learned the last 3 decades in IT is that you can decide about the kind of problems you will have not the amount of problems you will have. Trying to delegate complexity turns the kind of problems into complexer problems while the amount stays the same.

Norbert
 

> Am 13.04.2021 um 18:15 schrieb [hidden email]:
>
> Norbert,
>
> you nailed it ;-) Easy and cheap and lots of layers of magic infrastructure nailed and hammered onto each other don't go well with each other. I am still a fan of having some server - virtual or physical - that I can reinstall from scratch and as little moving parts as possible on top of that. I rather have a little collection of sheets on which I wrote down each single step of installing what's needed and a good backup of ini files and whatnot than a pile of "stuff" that makes things "easy".
>
> I know, that's so 90ies, but hey, we're using Smalltalk from the 70ies ;-)
>
> Joachim
>
>
>
> Am 13.04.21 um 18:09 schrieb Norbert Hartl:
>> I read the title which contains „easiest/cheapest“ and then you drop names „docker“, "CI which injects“ and „stages" … this invalidates at least „easiest“ and maybe „cheapest“ as well. I think I missed the intent of this mail. So can you give a few more details otherwise it is hard to meet the „easiest on this level of requirements“
>>
>> Norbert
>>
>>> Am 12.04.2021 um 10:36 schrieb Tim Mackinnon <[hidden email]>:
>>>
>>> That is cheap 3e/m is definitely worth considering… but I guess you do have to take care of your own patching etc right (which isn’t necessarily horrible, but does require a bit of extra effort to track things). I was interested in whether the next step up in the food chain using Docker images that are hosted for you, might lessen the burden a bit? E.g. if your CI injects a pharo image into the latest “safe” docker image from the community - then hopefully you are insulated from all of this.  It does look like this is becoming a reality if that dockerize.io soln plays out (I got that working, its cheap - however they haven’t answered any of my email queries… so I do wonder how real it actually is). The fallback would definitely be something like Hetzner or Digital Ocean I guess.
>>>
>>> Tim
>>>
>>>> On 12 Apr 2021, at 08:47, Norbert Hartl <[hidden email]> wrote:
>>>>
>>>>
>>>>
>>>>> Am 12.04.2021 um 04:02 schrieb Jeff Gray <[hidden email]>:
>>>>>
>>>>> Considering easiest and cheapest, there's always self hosting, or are you
>>>>> discounting that idea?
>>>>> Most geeks have a bit of spare hardware laying around and broadband
>>>>> up-speeds aren't too bad.
>>>>> I'm guessing that if we are in the $5 a month ball park then we aren't
>>>>> needing a guaranteed up time.
>>>>>
>>>> My cloud instance is 3€/month. With an additional 20% amount the instance has a backup. And setting it up is way simpler then getting dynamic DNS updates and all of that configured. Times have changed a bit.
>>>>
>>>>
>>>> Norbert
>
>
> --
> -----------------------------------------------------------------------
> Objektfabrik Joachim Tuchel          mailto:[hidden email]
> Fliederweg 1                         http://www.objektfabrik.de
> D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
> Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1
>
Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

Offray Vladimir Luna Cárdenas-2
In reply to this post by Pierce Ng-3
Thanks for the details.

I think that with the one from Norbert, you and me[1], there are at
least 3 static site generators made with Pharo (and there was an old
one, but I don't remember its name and I think is unmaintained).

I wonder if there is some kind of Awesome Pharo alike list, to start
adding them to a known place. There is the Pharo Documentation Wiki[2],
but I kind of remember a longer more detailed list.

Ummm... now I wonder if we could list a kind of decentralized list of
"Powered by Pharo" projects taken from our personal, community or
enterprise web sites. We may agree on using some kind of tags in the
metadata to recover such distributed catalogue of projects. Certainly in
my (incomplete) recent portfolio[3], Pharo has been a constant, in
visible and invisible ways.

[1] https://mutabit.com/repos.fossil/indieweb/ (in Spanish and under
development/alpha)
[2] https://github.com/pharo-open-documentation/pharo-wiki
[3] https://mutabit.com/repos.fossil/offray-blog/uv/bliki/index.html#

Cheers,

Offray

On 8/04/21 8:33 p. m., Pierce Ng wrote:

> On Thu, Apr 08, 2021 at 11:58:10AM +0100, Tim Mackinnon wrote:
>> Pierce - who/where are you rnning your Docker image? Do you use a
>> particular service (or are you running your own?)
> I am using a Linux VPS which I manage myself.
>
> The Pharo application is my blog. It was a web app fronted by a HTTPS
> reverse proxy. At the start of this year I rewrote it into a static site
> generator. Instead of running all the time, Pharo is now invoked when
> triggered by a CI hook, which happens when I publish a new blog post or
> otherwise update my site.
>
> I play with all kinds of software on my VPS and it was getting a bit RAM
> cramped, hence the rewrite. Wasn't willing to spend more money every month
> for more RAM. :-P
>
> Pierce
Reply | Threaded
Open this post in threaded view
|

Re: Whats the easiest/cheapest way to run a Pharo web app in 2021?

jvalteren@objectguild.com
In reply to this post by Tim Mackinnon
Hi Tim, all,

My earlier message to this thread (on 8 April) hasn't been properly received/distributed by the list. Marcus was very kind to help me solve this, so you should receive this message now.

Anyway... see my original message below. Hope it's still useful.

-----
Hi Tim,

Didn't really notice this thread until now. I understand you're looking into deployment using Docker. However, to provide some perspective, we're happily running Pharo in production on a (self-managed) VPS on Hetzner Cloud (which uses 100% green energy!).

We use our own adaptation of Pharo server tools based on Sven's original work: https://github.com/objectguild/pharo-server-tools. We started with running Pharo 7.0 and have since upgraded to Pharo 8.0. Some experience with Linux command line is certainly welcome, but it should be fairly easy to get this going. Mind you, the README is (unfortunately) _not_ up to date.

Regarding Docker, I don't have much experience myself. I've only used it a couple of times to troubleshoot smalltalkCI issues, never for running a Pharo server application.

Hope this is of some use to you or others. Good luck and have fun!
-----

Kind regards,

Jonathan van Alteren

Founding Member | Object Guild B.V.
Software that works with​ you

[hidden email]
On 8 Apr 2021, 12:58 +0200, Tim Mackinnon <[hidden email]>, wrote:
Head slap.... I completely forgot I could do that, thanks for reminding Pierce (its almost better as well, as you can build your image, save it, then run tests on it, and then if it passes all your stages you can included the saved version in your docker build... which sits better with me as it also means that log artifacts etc can be more easily examined for failures (and your not trying to console into a docker image to figure it out). As a nice side effect - if you are doing this in something like Gitlab - you have your project source already there and so you can avoid an extra checkout step, so its a little bit faster.

Pierce - who/where are you rnning your Docker image? Do you use a particular service (or are you running your own?)

Tim



On Thu, 8 Apr 2021, at 4:29 AM, Pierce Ng wrote:
On Wed, Apr 07, 2021 at 02:21:14AM +0100, Tim Mackinnon wrote:
I also feel its quite important to call out that the "eval 'Metacello
new..." command referenced in the DockerFile RUN - is only going to work

Hi,

I build my Pharo image outside of Docker. My Dockerfile then packages the
built image plus whatever artefacts required into a Docker image. I am
using my Alpine Linux-based VM.

GH: https://github.com/pharo-contributions/Docker-Alpine/
DH: https://hub.docker.com/r/pierceng/pharovm-alpine

Pierce

12