Live data from Hacker News

The architecture behind a one-person tech startup

anthonynsimon.com

51–60 of 334 posts

Re: The architecture behind a one-person tech startup

#51

This goes against the HN trope that "you don't need Kubernetes unless you are Google-size". It turns out Kubernetes is actually perfect for small teams as it solves many hard operational issues, allowing you to focus on the important part of the stack: the application. The key is to stick to a simple setup (try not to mess with networking config) and use a managed offering such as GKE. We may need a Kubernetes, The G…

> It turns out Kubernetes is actually perfect for small teams

As long as at least one of them is an expert on kubernetes. In this case, the one person in the team is that person, and as he points out in the article, he's using it because it's what he knows.

That should be the takeaway, I think. The "trope" remains pretty sensible IMO; I've seen it first-hand, jumping on kubernetes without the know-how is a foot-gun factory, and that team ultimately gave up on trying to implement it.

Re: The architecture behind a one-person tech startup

#53
post #39

This goes against the HN trope that "you don't need Kubernetes unless you are Google-size". It turns out Kubernetes is actually perfect for small teams as it solves many hard operational issues, allowing you to focus on the important part of the stack: the application. The key is to stick to a simple setup (try not to mess with networking config) and use a managed offering such as GKE. We may need a Kubernetes, The G…

Kubernetes, The Good Parts: See Hashicorp Nomad ;)

For the lazy:

From https://www.nomadproject.io/docs/nomad-vs-kubernetes

> Kubernetes aims to provide all the features needed to run Docker-based applications including cluster management, scheduling, service discovery, monitoring, secrets management and more. Nomad only aims to focus on cluster management and scheduling and is designed with the Unix philosophy of having a small scope while composing with tools like [Hashicorp] Consul for service discovery/service mesh and [Hashicorp] Vault for secret management.

> Nomad is architecturally much simpler. Nomad is a single binary, both for clients and servers, and requires no external services for coordination or storage. Nomad combines a lightweight resource manager and a sophisticated scheduler into a single system. By default, Nomad is distributed, highly available, and operationally simple.

Re: The architecture behind a one-person tech startup

#55
post #11

Earlier quoted context omitted.

> From a GDPR perspective it's not even clear if this is even lawful It is pretty clear it is

No it's not, you can check e.g. the EDPB's recommendation [1] on this. At the very least you'd need to use data mapping and ensure EU citizens data stays within the EU, the author's service advertises "200 edge locations around the world" so I'm skeptical whether data won't leave the EU. Not many companies care about this and there's little enforcement so far, I think it's fair to think about this though if you're ru…

> Ensure EU citizens data stays within the EU

As far as I'm aware, there's no requirement imposed by GDPR requiring that data stay within the EU as long as you have DPA's with Cloudflare, AWS, and any other data processors.

DPAs are very easy to sign with AWS and Cloudflare.

I also don't understand your complaint about "200 edge locations". Are you expecting him not to use a CDN?

Re: The architecture behind a one-person tech startup

#56
post #28

My one-man-SaaS setup: - Static frontend hosted on Netlify (free unlimited scale) - Backend server on Google App Engine (connecting to Gcloud storage and managed DB via magic) I realize I'm opening myself up to vendor lock-in and increased costs down the road (if I even get that far), but I've wrangled enough Docker/k8s/Ingress setups in the past to know it's just not worth the time and effort for a non-master.

I wouldn't say Netlify has free unlimited scale. There are some limitations, especially the data transfer limit of 100GB.

Re: The architecture behind a one-person tech startup

#57
post #6

Super interesting! Definitely feels like a lot of fairly low-level tech to have to deal with for a one-person company, but I guess that doesn't surprise me any more :)

Ideally, your ops complexity increases with the volume of traffic it handles, not with the number of people managing it.

In the ideal case it should be constant and as close to zero as possible! Of course we don't live in that world for arbitrary scale, but surely "a one person SaaS" should be able to do without so much low-level tech and infrastructure work.

It seems to me that even when you outsource your infrastructure to a major cloud provider, you're still spending a lot of time yourself setting everything up.

I'm certainly not criticising Anthony here – what he's done, especially in terms of product development, is remarkable – but just thinking about the industry at large.

Re: The architecture behind a one-person tech startup

#58
post #28

My one-man-SaaS setup: - Static frontend hosted on Netlify (free unlimited scale) - Backend server on Google App Engine (connecting to Gcloud storage and managed DB via magic) I realize I'm opening myself up to vendor lock-in and increased costs down the road (if I even get that far), but I've wrangled enough Docker/k8s/Ingress setups in the past to know it's just not worth the time and effort for a non-master.

I agree with you in terms of using what you already know best.

> If you're not already familiar with these tools consider using a managed platform first, for example Render or DigitalOcean's App Platform (not affiliated, just heard great things about both). They will help you focus on your product, and still gain many of the benefits I talk about here.

And:

> I use Kubernetes on AWS, but don’t fall into the trap of thinking you need this. I learned these tools over several years mentored by a very patient team. I'm productive because this is what I know best, and I can focus on shipping stuff instead. Your mileage may vary.

I actually spend very little time on infrastructure after the initial setup (a week of part time work, since then a couple of hours per month tops).

For comparison, this post describing what I did took nearly a month of on-and-off work. But I might just be slow at writing :)

Re: The architecture behind a one-person tech startup

#59

Great writeup. How do you handle database migrations when using an otherwise automated CI/CD flow with gradual deployment?

You can use any normal DB migration tool. For k8s, I put the app's readiness probe to false, run the migrations and then toggle the probe back to true.

Here are some migration libraries:

Go - https://github.com/golang-migrate/migrate

Node - https://github.com/salsita/node-pg-migrate

Re: The architecture behind a one-person tech startup

#60
post #53
post #39

Earlier quoted context omitted.

Kubernetes, The Good Parts: See Hashicorp Nomad ;)

For the lazy: From https://www.nomadproject.io/docs/nomad-vs-kubernetes > Kubernetes aims to provide all the features needed to run Docker-based applications including cluster management, scheduling, service discovery, monitoring, secrets management and more. Nomad only aims to focus on cluster management and scheduling and is designed with the Unix philosophy of having a small scope while composing with tools like […

Like all of Hashicorp's tools, they are more complicated and error-prone than they first appear, because they stuff too much functionality in one binary. But it does let you implement one piece at a time, so you can make incremental improvements as you need them.
Post reply on HN