
Deploy your side-projects at scale for basically nothing – Google Cloud Run - alex-olivier
https://alexolivier.me/posts/deploy-container-stateless-cheap-google-cloud-run-serverless
======
franciscop
I have used it for work-related reasons and indeed the service is quite nice.
But I don't use Google Cloud Run for personal projects for two reasons:

\- No way of limiting the expenses AFAIK. I don't want the possibility of
having a huge bill on my name that I cannot pay. This unfortunately applies to
other clouds.

\- The risk of being locked out. For many, many reasons (including the above),
you can get locked out of the whole ecosystem. I depend on Google for both
Gmail and Android, so being locked out would be a disaster. To use Google
Cloud, I'd basically need to migrate out of Google in other places, which is a
huge initial cost.

Both of those are basically risks. I'd much rather overpay $20-50/month than
having a small risk of having to pay $100k or being locked out of Gmail/my
phone. I _cannot_ have a $100k bill to pay, it'd destroy everything I have.

Also I haven't needed it so far. I've had a Node.js project on the front page
of HN, with 100k+ visits, and the Heroku hobby server used 30% of the CPU with
peaks at 50%. Trying to do the software decently does pay off.

~~~
deanmoriarty
I had the same thoughts: even if I like Google Cloud a lot (I use it
extensively at work), I don’t feel it’s safe for me to use it at home, since I
don’t want to risk having my entire google account locked due to “suspicious
activity”, whatever that might mean.

In fact, I recently shut down a personal App Engine service I had been using
for myself for a few years just because of this paranoia. The service was not
doing anything illegal, just crawling a few websites (forums, ...) I like and
sending me emails when there are interesting updates. But you never know if
they might determine my outbound traffic is suspicious. I also started the
long process of moving my main email from a @gmail.com to a @custom.domain
that currently forwards to gmail, just in case I get locked out.

It is quite bizzarre that this is the reputation google gained for themselves.

~~~
irq-1
I ordered a phone from Google that's been lost in delivery. I have
Gmail/documents/photos/music... Should I do a charge-back? Sue them in small
claims court? I should never have done business with them.

~~~
smt88
Absolutely don't do a chargeback. Try to settle it with the package carrier.

Google's algorithm can flag a chargeback as suspicious, leading you to be
locked out.

~~~
etaioinshrdlu
This is a delightfully horrifying response... "Don't poke the trillion dollar
bear, he might bite you and lock you out of your account!"

(GOOG's market cap as I write this is $985B...)

~~~
smt88
It is horrifying and it should be illegal to provide so little customer
service when you encourage deep, irreplaceable investments into your platform.

------
alasdair_
I wont use this for the simple reason that I bought into the Google Appengine
stack in the past and it really bit me for several reasons:

They force-upgraded the java version. The problem was their their own
libraries didn’t work with the new version and we had to rewrite a ton of
code.

It ended up being insanely expensive at scale.

We were totally locked-in to their system and the way it did things. This
would be fine but they would also deprecate certain things we relied upon
fairly regularly so there was regular churn to keep the system running.

Support was extremely weak for some parts of the system. Docs for java were
outdated compared with the python docs.

Support (that we paid for) literally said to us “oh... you’re still using
appengine?”

Finally, they can jack up the pricing at any time and there really isn’t
anything you can do - you can’t switch to an alternative appengine provider.

Certain pages in the management console were completely broken due to a js
error (on any browser). In order to Use them i had to manually patch the
javascript. Six months after reporting it several times and it was still
broken.

Oh, and when we got featured on a bunch of news sites, our “scalable” site hit
the billing threshold and stopped working. No problem, just update the
threshold, right? Except it takes twenty four hours (!) for the billing stats
to actually update. So were were down on the one day that “unlimited scaling”
actually mattered to us.

I’m never again choosing a single-vendor lock-in solution. Especially since
it’s not limited to appengine - Google once raised the fees for the maps API
from thousands a year to eight figures (seriously) a year with barely any
notice.

~~~
spankalee
You're outlining all the reasons why Cloud Run is the successor to App Engine.

App Engine was the very first PaaS, came out before Docker, and did things
very uniquely in order to try to only allow scalable apps. App Engine standard
has to explicitly create special environments for each of their runtimes, and
that's slow and expensive. Services like Datastore and Memcache were tightly
coupled.

Cloud Run fixes all that. It's just a Docker container that listens on the
PORT env variable. Use whatever runtime you want. Run the same container
locally, or on another cloud provider. The other services like Firestore or
Memorystore (Redis) are truly optional and external.

Cloud Run is what lets you avoid single-vendor lock in, but still get from 0
scaling.

~~~
hn_throwaway_99
My understanding is that the 'flexible' version of App Engine runs on the same
infrastructure as Cloud Run (and GKE for that matter). IMO running a regular
node express app on Node Flexible App Engine isn't that different from running
on Cloud Run, and I'm not really using any specific App Engine services (e.g.
I don't use datastore, just a regular postgres DB on Cloud SQL). Lets me get
up and running quickly with the knowledge I can easily containerize it if
needed.

------
moksly
The thing I really want out of these services is the ability to set a payment
cap. It’s probably never going to be an issue, but I have anxiety, and I can’t
sleep easily knowing that if I fuck up, if someone sinister abuses my
application or whatever I may be stuck with a giant bill.

~~~
WrtCdEvrydy
That's not a bug... that's a 'feature'.

Interestingly, AWS will not cut you off for non-payment (we had an issue with
finance and were 250k in the red by the time we got the first 'Is there any
issues over there?' email)

~~~
akudha
This sounds like a short term 'thinking'. If there are a few stories on the
internet (and there are some in this very thread) about developers getting
burned by this 'feature', it would turn off a lot of potential users in the
future. It would make sense to be transparent and give tools to strictly
control usage/billing - both in terms of trust and money.

~~~
Red_Leaves_Flyy
It is. I'm using free there to build and host my projects. If/when I exceed
the free tier I'm not making a billing account unless I can set a max bill.
I'll sooner rewrite everything to run on bare metal that has a fixed monthly
cost.

~~~
WrtCdEvrydy
I pay my $5 for linode (expanded swap to 2GB, it's SSD backed) and just run
Caprover... I'd rather not deal with AWS's billing (even their billing
dashboards are delayed by 24 hours)

~~~
Red_Leaves_Flyy
I've been using gc/firebase. It's very easy to use, with acceptable
documentation. I've been able to get dangerous quickly without even trying to.
If I weren't on the free tier I would've racked up unaffordable bills. Instead
I exhausted my API limits and had to wait. Perfectly acceptable behavior for
development. I'll also add some logic to the finished project to handle
resource exhaustion. Should I start exhausting resources,and it's not a bug,
I'm not going to continue with infinitely scalable/infinitely billable gc. I
guess if target customers are companies with 9-12 figure budgets getting a 9
figure bill wouldn't be the end of the World. If I got a high 4 figure bill
I'd have to declare bankruptcy.

------
minimaxir
I've been using Cloud Run for my GPT-2 text generation apps
([https://github.com/minimaxir/gpt-2-cloud-
run](https://github.com/minimaxir/gpt-2-cloud-run)) in order to survive random
burst, and also for small Twitter bots ([https://github.com/minimaxir/twitter-
cloud-run/tree/master/h...](https://github.com/minimaxir/twitter-cloud-
run/tree/master/human-curated)) which can be invoked via Cloud Scheduler to
utilize the efficiency benefits. It has been successful in those tasks.

The only complaint I have with Cloud Run now (after many usability updates
since the initial release) is that there is no IP rate-limiting to prevent
abuse, which has been the primary cause of unexpected costs. (due to how Cloud
Run works, IP rate-limiting has to be on Google's end; implementing it on your
end via a proxy eliminates the ease-of-use benefits)

~~~
ParanoidShroom
I'm currently serving an api that uses a 500mb resnet v2 model. The bootup
takes to long, so now I have a single instance that can't handle any peaks and
costs too much. Doesn't your model take to long to spin up before being able
to serve a request ?

~~~
minimaxir
Yes unfortunately, but that's the caveat of services-on-demand. I'm looking
more into more efficient/cheap model deployment workflows. (it might be just
running the equivalent of Cloud Run on Knative/GKE, backed by GPUs)

~~~
ignoramous
Does GCP have an equivalent for Aurora Serverless? If so, would choosing that
over CloudSQL been cheaper?

If you're familiar with AWS, would using AWS Batch exclusively with Spot
pricing [0] (or Fargate with Spot pricing) _and_ Aurora Serverless [1] been
cheaper than Cloud Run + CloudSQL?

[0] Say, the service runs for 5 mins every hour for 30 days. The respectable
a1.large instance would cost $0.50 per month, the cheapest t3.nano would cost
around $0.19 per month.

[1] Say, the service stores rolling 10 GiB/Month ($1.00) and does about 1000
calls per 5 minutes every hour ($0.20) using 2 ACUs ($3.60). This would cost
$4.80 per month.

------
acvny
Can't you see this article is a paid advertisement for Google Cloud? Just like
those 1 hour long videos on youtube - where they show how pilots fly an
airplane of a specific company and how well is al organized or a 1 hour long
video of a german car factory.

Just reading this line makes you suspicious: "I have built hundreds of side
projects over the years "

really? Hundreds?

And then below:

"I am yet to have a side project go ‘viral’"

Out of hundreds of projects over the years, none of them went viral?

And if you look at his "blog" you will see it has 3 entries in total:
[https://alexolivier.me/](https://alexolivier.me/)

~~~
fenomas
Bummer to see comments like this so high up the page after so many hours.

HN guidelines:

> Please don't post insinuations about .. shilling.. It degrades discussion
> and is usually mistaken. If you're worried about abuse, email us and we'll
> look at the data.

Also: every blog starts somewhere. Plenty of stuff in the author's GH and
linkedin, both linked from TFA.

------
jjeaff
This article fails to mention the issue of needing a database. It doesn't
matter how seamlessly your application can scale if your data backend won't
scale with it.

They mention Cloud SQL, which is of course instance based and would run into
scaling issues if your app got suddenly hammered. Not to mention, the cost
isn't $0 if your app gets 0 traffic, you are going to have to pay to keep that
running around the clock.

I realize some applications are very heavy on the app side and light on
needing to hit the DB, but in my experience, that isn't very common.

~~~
steelaz
AWS has Aurora Serverless
([https://aws.amazon.com/rds/aurora/serverless/](https://aws.amazon.com/rds/aurora/serverless/))
for that purpose with MySQL and Postgres compatible engines. But I haven't
heard anyone using it for side projects yet.

~~~
kevinsundar
They also have RDS Proxy
([https://aws.amazon.com/rds/proxy/](https://aws.amazon.com/rds/proxy/)) that
lets you pool connections from tons of lambda instances in order not to
overwhelm your DB when scaling up.

~~~
ec109685
I wonder where the threshold is that the proxy is beneficial. MySQL is
actually really good at handling new connections.

------
duxup
As a noob I have a question as to what advantages I have using docker compared
to just a service like Heroku where I just push the application to them... and
I don't bother with docker?

To me with my limited understanding this seems like just another step.

Now granted when it comes to work, I'm using docker with specifics that I know
why I would want / can specify with docker ... but for personal projects this
ever comes up for me.

But otherwise for personal projects it just never comes up.

Yet on the other hand when it comes to various examples I see more and more
that involve docker where, I'm not sure it needs to / what the advantage is.

Obviously there must be some strategic choices / advantages I'm missing.

~~~
jhgaylor
The first thing that comes to my mind is lock-in. if you push the application
to Heroku and "it just works" then when you need to deploy it somewhere else
you still have that hurdle to cross. Heroku's pricing adds up quickly.

~~~
LogicX
... or you just deploy it on any VPS or bare metal with dokku installed:
[http://dokku.viewdocs.io/dokku/](http://dokku.viewdocs.io/dokku/)

------
Dolores12
Your liability is not capped anywhere. I better stick to 5$/mo DO for my side-
projects.

~~~
cheriot
From the article:

> The service will create more and more instances of your application up to
> the limit you defined

The docs confirm an instance maximum can be set and the price per instance can
be less than $5/month.

------
Havoc
Interesting. I've been looking looking at options too & opted for essentially
the opposite: Get a big(ish) VPS and stack everything on top of each other
with docker behind a nginx reverse proxy.

So far so good. Managed to host gitlab, prometheus, grafana and ghost working
this weekend, which I'm pretty chuffed about.

Not as clean as OP's, but the intention was learning, so sacrifices on
convenience are acceptable.

~~~
LogicX
This is the advice I give early stage startups... don’t waste cycles learning
the AWS stack, and getting locked in. Just pay for a cheap VPS, and scale it
vertically as you grow. By the time you outgrow vertical scaling you should
have the revenue or funding to figure out your at scale architecture.

You’d be surprised how much you can handle with a single beefy VPS or
dedicated.

~~~
a_imho
Had a VPS for side project at Vultr. First step first, could not send sign up
emails from it.

~~~
ibly31
Sounds like the problem was with the networking or application code. VPS can
do anything when it's configured properly.

------
all_factz
What’s the advantage of GCR over AWS Fargate/ECS? I’ve been running an app on
ECS for a couple months now and have been pretty happy with the ease of set-
up, load-balancing, auto-scaling etc, though there are still kinks I’m
figuring out (SSHing into containers to perform database management, for
example, or deploying updated tasks without downtime). Is the main selling
point of GCR just its price? I haven’t found ECS pricing to be an issue (but
I’m also not running anything at scale, and I do pay more than a few cents a
month — but still under 10 bucks).

~~~
asdfasdfgdy
Disclaimer: I work on cloud run

Another advantage not stated by others is that cloud run (mostly) adheres to
the KNative API spec. This allows you lift-and-shift your application from
cloud run to a Kubernetes cluster with the KNative plugin installed, a feature
you can’t find with any other serverless product

~~~
ignoramous
Thanks. What are the usual cold start and warm start times for Cloud Run? Is
there potential for those start times to go down to a few milliseconds in the
near-future?

------
aamederen
AFAIK, PaaS solutions like heroku have a similar way of working, at least for
side-projects. Here, you deploy a container and Google runs it somewhere and
Heroku containerizes your application every time you push it. Similar to here,
Heroku's free hobby containers also go to sleep in ~30min inactivity.

~~~
franciscop
Heroku's "hobby" is $7/m while "free" is $0/m. There's no "free hobby":

[https://www.heroku.com/pricing](https://www.heroku.com/pricing)

------
ealexhudson
This is exactly the service that Azure needs and doesn't seem to have: while
there is a consumption plan for functions, that's about it, and App Service is
incredibly expensive for what you get.

~~~
iamEAP
As @GordonS mentions, Azure Container Instances is about as close as you’ll
get with Azure, but it’s only close on ease-of-use: rather different from a
deployment/scaling characteristics POV.

I’m generally very underwhelmed by Azure offerings, but ACI is one of the few
that actually lives up to what is advertised.

~~~
ealexhudson
Yeah, I did look at that, and I think you're right on ease-of-use - it's a
deploy and done deal, which is nice. I think it suffers from two things:

* the cost seems net-net similar to App Service, but more granular. So I can go this route and get slightly more flexible pricing, but at the cost of some arbitrary limits on assignable CPU/memory.

* it's easy to wander into Azure Container Service stuff accidentally, and that has "deprecated" plastered all over it. Shame the naming doesn't separate them more clearly.

------
f311a
If very few people visit a side-project, that's probably bad for Google
search. Its crawler will be detecting slow response times and Google can
penalize you in search results.

~~~
texasbigdata
What a complimentary business strategy :)

~~~
riyadparvez
More like unintended consequences. Like many real world cases, each of the
policies is a reasonable, sound and fair policy by their own right. But when
you combine them they might seem designed with exploitive motives.

------
navd
Cloud run is what zeit now was before it moved to v2.
[https://zeit.co/](https://zeit.co/)

~~~
ignoramous
What does it run on today? Or, is it multi-cloud now?

~~~
rgbrgb
yep, multi-cloud [https://zeit.co/docs/v2/network/regions-and-
providers/](https://zeit.co/docs/v2/network/regions-and-providers/)

You can specify where to deploy to in a config file. Pretty cool stuff.

------
darklajid
I was tinkering with it recently. My problem was .. support.

After a lot of double-checking on my part, I was finally convinced that Cloud
Run messed things up (in my case: A Content-Type header was changed from
ThingsISend to text/html and broke every client). The issue tracker is hard to
find and more or less abandoned, SO wasn't helpful (but had people that ..
love Google Cloud Run and didn't believe me) and only after tweeting a bit
someone looked into it.

The issue is fixed now, which is nice. The way to get there was ...
questionable?

------
tomlong
Excuse my ignorance. if a container hasn't been hit in a long time, how long
does it take to serve the first request back? Is it spun up or sort of hot
paused?

~~~
WrtCdEvrydy
AWS's firecracker can start a VM for your code in under 15ms, but if you need
database access and other stuff, you can 'pre-warm' it.

~~~
tomlong
Thanks, that's impressive.

------
cutler
For personal projects and client work I prefer a VPS with fixed pricing. Many
have quoted Digital Ocean on this thread but you get much more for your money
with a VPS from Hetzner.com. $11.75/month = 8Gb RAM, 2 CPUs, 80Gb SSD and 20Tb
of traffic. That's 4 times the RAM, 2 times the CPU and 10 times the traffic
compared with a $10 Digital Ocean VPS.

~~~
zebnyc
Does Hetzner.com have servers based in the US?

~~~
cutler
No, just Europe. See [https://hetzner.com](https://hetzner.com). No, I don't
work for them or receive any commission :)

------
hardwaresofton
Do the kind of people who have tech jobs and have side projects really need it
to cost nothing to run side projects?

I don't understand this obsession with running projects for "nothing" and
contorting software architecture to do so.

$5/mo for a digital ocean droplet or $50/month for a a beefier VPS (or even
dedicated hardware if you know where to look[0]) is not much compared to the
normal monthly expenditure of people in tech on average.

If it was all for convenience/efficiency that'd be one thing, but learning
"google cloud run" teaches you nothing about system maintenance, limits your
understanding of the full stack, and encourages a myopic view of development,
all so at some point when Google/AWS/Azure raises the temperature of the water
in the pot everyone starts wondering "how did running software get so
expensive?".

~~~
nscalf
While I tend to agree, I'm the type to have ~3 projects going at a time. I'm
pretty young, but I can see myself spinning up a few projects a year. Each
project needs a sql database, hosted by google for a few bucks a year, a
server per service, a company email per project per person on the project,
etc. I can easily see this being $50/month/project. So let's call it
$150/month, $1800/year. If you're not making any money, that's a lot of bare
minimum over a life time just to play around with. Then if you assume your
side project isn't meant to be profit optimizing, you may never make money.

It really isn't a lot, but some people aren't in SF where they make massive
profit. In more rural areas in the US, non-senior engineers can make
~$60k-$80k. In non-US roles, that's even lower. I can see this price range
being meaningful.

Also, I know you can get cheaper with this, but if your goal is to spin up
MVP's ASAP, you don't care to work hard to optimize ever penny out of your
infrastructure. This is a nice breakdown, and I'll probably use it for the
current project I'm spinning up as a test.

~~~
ramraj07
You can do all of that with a $5/month vps assuming you don't get a ton of
traffic.

------
GordonS
Sounds quite similar to Azure Container Instances, except ACI seems to be
cheaper (at a glance). ACI is also not HTTP-only like this seems to be, but
you do need to combine it with a Function App (Azure's serverless offering) if
you want to trigger containers using HTTP.

------
cocoflunchy
We evaluated using it at work to replace App Engine Flex and unfortunately it
was not ready for our use case: 1\. There is no liveness/readiness check nor a
way to move the traffic between versions, so you'll have downtime at every
deployment 2\. The only way to rollback to a previous version is to redeploy,
no support from the web interface 3\. There is no way to SSH to an instance
(not so important) 4\. You can't connect to Google Cloud MemoryStore (hosted
redis)

Scale to zero + instant deploys would make cloud run a great candidate for
staging environments deployed on every pull request but it's not quite there
yet.

------
ksahin
For my next side project, I'd like to test
[https://render.com/](https://render.com/) It seems like a cheaper alternative
to Heroku. Any feedback on this?

~~~
indigodaddy
Interesting. Seems good. I guess the Render free tier is basically competing
with Netlify, with the added luxury that you can add paid dynamic services at
any time...?

~~~
anurag
Correct.

------
fideloper
There must be added cost for a managed databases or similar, right?

This sounds a lot like aws lambda (except nicer thanks to just running any
container). In AWS’s case, you need to pay extra for RDS, redis, and any other
persistence.

~~~
Kovah
Exactly. And this is why I do not use these services yet. It's great if the
app itself only costs like 18 cent per month.. But if you have to pay almost
€10 per month for a (SQL) database, all the monetary benefits are gone. I
currently pay 7€ for two VPS which perform great, have a lot of storage and
enough power to run all my projects.

------
runeks
> The service will create more and more instances of your application up to
> the limit you defined (currently the cap is 1000 instances).

> As long as you have architected your application to be stateless - storing
> data in something like a database (eg CloudSQL) or object storage (eg Cloud
> Storage) - then you are good to go.

Won’t this just defer the scalability issue to the SQL part of the
application? It’s nice that the stateless REST part can be scaled almost
infinitely, but if the SQL part doesn’t offer the same scalability, what’s the
point? Last time I looked, CloudSQL didn’t offer this kind of scalability.

------
jupp0r
Another option is Google Cloud AppEngine. It’s a little more limited in terms
of languages that are supported, but the free tier is generous enough that I
have never paid anything to run backends for side projects.

~~~
yegle
For personal projects I think App Engine is superior due to the included
services like Mail API and Memcache API.

There are also features like Firewall API that's lacking in Cloud Run right
now.

One downside of App Engine (due to its 10+years of history) is that one GCP
project can only have one App Engine app in a single region, and you can't
change the region after it's created. You can have arbitrary number of Cloud
Run service in one GCP project, each can be in different region.

It's also harder to take a Infrastructure-as-code approach on App Engine as
there's no easy way to diff between the deployed version and the intent (in
Cloud Run, you can use the container image hash for that purpose).

Disclaimer: SRE working on App Engine and Cloud Run.

~~~
jupp0r
Thanks for the insights!

------
oli5679
Is anyone familiar with pros/cons vs. AWS ecs?

I've used ECS a few times, it's pretty nice.

[https://aws.amazon.com/ecs/](https://aws.amazon.com/ecs/)

~~~
tybit
As others have said, this is like ECS Fargate but scales like Lambda. Very
nice offering and I hope it’s lit a fire under Fargate.

------
ThinkBeat
I often find myself what "at scale" means. It is used by so many different
providers and it gets confusing.

When all you give the service is a container, how dos it know how to scale
your project?

I presume it gives it more CPU and more RAM automagically but does that really
provide "at scale"

I think of "at scale" to mean really a lot of traffic.

Spinning up new instances if your container is possible, but I think I would
like an API where code can somehow interact with the scaling mechanism.

I guess "stateless" gives us some information.

------
dennisy
I am using this and it is a much better development and deployment workflow
when compared to cloud functions. The only thing it lacks is some bigger RAM
for ML workloads.

------
elchupanebre
We've been using Firebase and one of the issues we had is that methods become
"cold": if it's not used for a few minutes, the latency of the next call is
unpredictable and could be in tens of seconds. The way Cloud Run is described
('Only pay when your code is running') suggests that it may suffer from it
too. Does anyone know if it actually has the problem?

------
inscrutable
started using this... pretty awesome vs the wall of yaml it replaces. Not
suitable for all workloads (max 1cpu/2 gigs ram, 4 minute max pod startup
time, can't do background work when not serving a request). But it replaces
cert-manager, ingress-nginx, oauth2-proxy, k8s service, k8s deployment, k8s
secret, k8s configmap, k8s hpa, k8s pdb, helm charts and cluster management.

~~~
yegle
Disclaimer: I work closely on Cloud Run as an SRE.

IF you want, you can still have it by use "Cloud Run for Anthos", and deploy
your container to your GKE cluster with the same Knative API. This allows you
to have more control on memory/CPU etc.

~~~
inscrutable
Thanks, although unfortunately I'm not in the price bracket for Anthos (starts
at 120k/year or so I believe).

~~~
yegle
I believe there's no requirement if you just want to use Anthos on GKE (I
could be wrong though, Anthos is relatively new).

Alternatively, if what you really want is the ease to manage and deploy
containers and automatically scale according to traffic, my understanding is
you can always use the open source Knative project with your Kubenetes
cluster. This provide you the exact same API supported by Cloud Run and makes
it very easy to migrate from managed Cloud Run to on-prem K8s cluster (or K8s
clusters from other Cloud vendors).

~~~
inscrutable
thanks, I hope you're right, GCP doesn't appear to be clear on this point,
seems to be offering free trial up to May 2020 and then who know. I'm aware of
the ability to set it up from open source which is a great fallback!

~~~
yegle
Yes that's unnecessarily complicated due to the naming. I can't find anything
on the Cloud Run add-on for GKE by searching "GKE Anthos".

This doc suggest you just need to enable Cloud Run add-on on your GKE cluster
to use it:
[https://cloud.google.com/run/docs/gke/setup](https://cloud.google.com/run/docs/gke/setup)

------
rantwasp
this has already been said, but due to the fact that this is google you have
no idea when it's going to get killed and most things from google get killed.

so i would suggest AWS. API Gateway + Lambda. It's basically free for side-
projects and the setup + operating it is trivial. It also scales (and you're
going to have to shell out real money) if you were to receive a lot of
traffic.

~~~
IAmEveryone
Just the other day I wanted to buy a book, but Amazon no longer has it in
stock...

Yes, that makes about as much sense as people who can't get over their
favourite RSS reader, 13 years on.

~~~
rantwasp
usually it's the publisher of the book that makes the decision. Amazon can
actually (and does) print book on demand. Let that sink in for a second.

if it was just the RSS reader, nobody would bring this up. Reader, Inbox,
Wave, Plus, NestAPI, the list goes on. Here:
[https://killedbygoogle.com/](https://killedbygoogle.com/)

------
jsjohnst
As an illustrative of pricing:

If your deployment can run in 256MB of RAM w/ 1 vCPU, handles an average
request in under 250ms, transfers 200kb or less per request on average, and
you get 2 requests/minute on average to your site:

The cost is around $2/month USD, which I feel is a more likely scenario for a
side project vs the “pennies a month” the OP claims.

~~~
minimaxir
"2 requests/minute on average to your site" is a bad assumption for a
relatively unpopular side project.

More importantly, with those hypothetical numbers, you'd stay _well_ within
the free tier for compute.

~~~
chispamed
A request is not a visit. Each visit might have a up to a hundred requests (or
even more when showing live data and caching a PWA on first visit for
example). That would translate to one user per hour or two which even
unpopular side projects can get. But you're right about the free tier of
course.

~~~
minimaxir
Fair, although if the app is architected that way Cloud Run might not be the
best option.

------
superkuh
Deploy you side-projects at more than the scale they'll ever need at home on
your hardware for actual nothing.

~~~
spankalee
This will also cost actually nothing 99% of the time. Coud Run has a 2 million
request / month free tier.

And I don't have to worry about accidentally unplugging my server or downtime
for OS upgrades.

------
Mockapapella
I've been looking for a service like this for a while now. The only problem
I'm seeing with regards to my use case is I need powerful GPUs for NLP
inference to also scale up and down to demand. Can someone explain if this is
possible with GCR and if so what do i need to do to accomplish it?

~~~
spankalee
There are Cloud GPUs:
[https://cloud.google.com/gpu/](https://cloud.google.com/gpu/) but more
generally, there's a whole AI platform: [https://cloud.google.com/ai-
platform/](https://cloud.google.com/ai-platform/)

------
fareesh
Might be a mindset thing but if my side project needed scale I would not think
of it as a side project.

~~~
dkarras
Probably a mindset thing. Side projects are lottery tickets in my mind.
Implementation of an interesting idea hoping for the remote chance that it
might get actual traction (and become more than a side project) - at that
point it needs scale and it needs to scale fast while people are talking about
it. If you take another week rearchitecting your backend while your site is
down, you lost your chance. So you shouldn't probably expect huge traffic, but
make it ready for the traffic or there is no point if it will fail the moment
it starts to get traction.

My 3 side projects got reddit frontpaged (also here) and I got better at
handling it. Fortunately I always had scale in mind (at peak got thousands of
requests per second) but the first time was not a pleasant experience because
I would have to pay more than I could if that kept going on. Fortunately I
found a solution while keeping my site online and over the time the project
paid me very handsomely. If I didn't plan ahead, those would be dead in the
water.

------
city41
I’m just starting to explore cheap hosting for a web app and my initial
digging suggests shared php hosting (with MySQL) is promising. It seems much
cheaper than ruby, node, etc. Can anyone comment if my initial hunches are
correct?

~~~
sweeneyrod
If you can save $10/month by using PHP rather than Ruby (which seems
optimistic) and value your time at $10/hour (which seems pessimistic) then
writing PHP instead Ruby only has to take one hour per month more (or the
equivalent in pain) to not be worth it.

~~~
city41
I get what you’re saying and appreciate the perspective. I’m not convinced
rails or perhaps Sinatra are really any nicer than say Laravel. But I
personally am not a ruby fan.

In this particular case the front end is very rich and the majority of the
effort, and for the back end I just need a little bit of crud.

~~~
sweeneyrod
Sure, I'm not saying that you should use Rails over Lavarel, but rather that
you shouldn't consider differences in costs of hosting much since other
factors like difference in development time probably dwarf those.

------
josephernest
Is there an alternative with similar ease of use, i.e. you just pack the
files, create a Dockerfile, and push it live?

(For same reasons as other comments, I don't want to use another Google
service for this, risk of being locked out, etc.)

------
tra3
What kinds of applications take no time to startup though? I'm curious about
the spin up time, 'cause my rails applications take on the order of minutes. I
guess you can schedule a keep alive elsewhere though..

------
ronyfadel
Can anyone shed light on how this compares with Netlify? (Pricing and tech
wise).

Netlify has basic DB/Identity/Lambda support so I’m guessing it could replace
this entirely.

I’m using it only to host static websites at the moment.

~~~
CraftThatBlock
Netlify (without extra features) is simply static hosting. With Lambda, it
does add server-side code.

Cloud Run is to run a fully custom server, as in an API. It can obviously do
more than Netlify, however Netlify really excels at static + some server code,
while Cloud Run is extremely flexible (server in any language, more resources,
etc)

------
karmakaze
What do didn't see mentioned is the latency for the first request when it's
effectively dealer to zero. To get initial traffic/customers this is very
important.

------
agotterer
Is there an easy equivalent for scheduled tasks in GCP? A background process
that executes for a short period of time and then exists only charging you for
the time it ran?

~~~
spyspy
[https://cloud.google.com/scheduler/](https://cloud.google.com/scheduler/) ?

------
luord
This doesn't seem all that different from app engine or any other PaaS.

Even the example he wrote is similar (probably longer) to a small guide I
wrote for deploying to gae.

------
abbadadda
Nice post! But this is a big hurdle for some, no? Are all your side projects
fully stateless?

> As long as you have architected your application to be stateless

------
ecmascript
Would be cool but I don't trust Google enough. I rather pay more than to host
on Google's infrastructure.

------
iandanforth
I'm not sure that "at scale" means anything if the author has never had one of
their projects scale.

------
remmargorp64
Of course, the downside to doing anything with a Google product is that it
could be deprecated next year...

~~~
tpetry
It‘s slready like a meme: the typical comment on the google cloud that it
could be closed tomorrow.

When will everyone understand that google cloud (money earning product) is
different to all the other free products

~~~
gumby
> When will everyone understand that google cloud (money earning product) is
> different to all the other free products

When Google demonstrates it. They've already discontinued various parts of
their cloud product.

True, they are unlikely to shut down gmail, search, or Android.

On the other hand google's cloud is a money loser that has slipped to a
distant #4 in the cloud rankings.

But like many of Google's revenue-generating products it exists to show Wall
Street that they have an increasingly diversified revenue stream (I think
advertising is "down" to around 87%). They have lots of bets to try an improve
this but little to show for it.

They did recently commit $2B to making GCP a player but I suspect that if that
doesn't show results by the end of 2020, investment in this sector will fall
precipitously.

~~~
tpetry
Do you have examples of discontinued Google Cloud Platform products?

~~~
gumby
You don't need to ask me: Google provides their own handy list of examples
(some like messaging API show up under other names like XMPP; others don't
appear on this list because they were marketed differently, e.g. Google
Print):

[https://cloud.google.com/appengine/docs/deprecations/](https://cloud.google.com/appengine/docs/deprecations/)

~~~
manigandham
Those are just features of a single product (appengine) which has been around
for more than a decade and through several generations. Every product under
every cloud vendor has API and feature changes over the lifetime.

GCP has never had a major product line shutdown. The only thing that comes
close is Google Maps API pricing changes, but technically the service is still
there and has even more functionality.

------
giorgioz
YES with serverless you can really deploy your side projects at scale paying
basically nothing if they don't get visited.

The Serverless Framework on AWS Lambda though are more mature to do that. One
of the biggest gotchas is using just one aws lambda function with the entire
web server instead of doing one aws lambda for each endpoint.

------
ishankhare07
Isn't this exactly the same model as Amazon ECS(Elastic container service)?

------
scanr
He mentions CloudSQL for storage. Anyone know if it’s also on-demand?

~~~
minimaxir
No, you need a persistent instance unfortunately (min $7/mo):
[https://cloud.google.com/sql/pricing](https://cloud.google.com/sql/pricing)

------
twayback
Your side projects don't need scale :D :D

------
z023bs
this is misleading, as cost curves are usually exponential for these types of
managed services

~~~
crazygringo
How so?

I don't understand what would make it exponential as opposed to merely linear
with traffic.

There's nothing in their pricing documentation to suggest this.

~~~
jjeaff
It's not. But the cost difference between servers and serverless is maybe
exponential. As traffic gets really high, serverless is going to be extremely
expensive compared to a dedicated box.

------
datashow
What will the bill look like if your website suddenly hit a big traffic (e.g.
someone post your site on HN)?

~~~
sansnomme
It goes up of course. Nothing's for free. Don't expect DigitalOcean level of
pricing, the premise of cloud is on efficiency and scale, not necessarily
being the cheapest raw computing provider when compared to traditional
hosting. In other words it increases the elasticity of computation, but the
price per unit of computation goes up. (Of course there are cost-savings like
ops, security, uptime etc. But if you are talking about one-off side projects
or something ML-related then the raw compute/bandwidth costs far outweighs
everything else.) For PaaS the free tier is subsidized by your enterprise and
other paying customers.

~~~
capableweb
> It goes up of course. Nothing's for free.

Not sure why you write "of course" and "nothing's for free". If you use
dedicated hosting with something like Hetzner, "suddenly hit a big traffic"
doesn't automatically mean more costs for you. The website might get slower,
or even crash, but your pricing will still be the same as it was before.

~~~
ignoramous
[https://scaleway.com](https://scaleway.com) prices their base compute _very
cheap_ [0]. They have got DCs in AMS and CDG, but unfortunately, I've not got
to use them since their DCs are a bit far from customers.

[0] €2.99 for 2vCPU, 2GB RAM, 200Mbits/s bandwidth.

~~~
tuesday20
75GB object storage free??? Am I reading this correctly or am I stupid?

~~~
PhilippGille
Outgoing traffic counts as well. So for example 5 GB storage + 70 GB outgoing
traffic and then you start paying.

See section "Traffic" on [https://www.scaleway.com/en/object-
storage/](https://www.scaleway.com/en/object-storage/)

------
realtalk_sp
Out of curiosity, how are people thinking about GCP platform risk after the
'2023 deadline fiasco'[1]? Is it still a good idea to use GCP at all in the
aftermath of them articulating that it could experience budgets cuts or even
be axed entirely (though that latter seems much less likely)?

[1]
[https://news.ycombinator.com/item?id=21815260](https://news.ycombinator.com/item?id=21815260)

------
EGreg
If you already have an EC2 instance reserved on AWS for a year, you could just
throw all those small projects there.

If they are truly stateless then the bottleneck will probably be the database,
anyway.

For anyone starting a new app I recommend just building apps that are TRULY
serverless. Then you can make them client-first, work offline, not tied to on
one particular domain name, support end-to-end encryption, be embarassingly
parallel and scalable, and take an _activist position_ against continuing
centralization.

A fuller exposition is here, so I don’t have fo write a whole mountain of
text: [https://qbix.com/blog/2020/01/02/the-case-for-building-
clien...](https://qbix.com/blog/2020/01/02/the-case-for-building-client-first-
web-apps/)

