Live data from Hacker News

The architecture behind a one-person tech startup

anthonynsimon.com

251–260 of 334 posts

Re: The architecture behind a one-person tech startup

#251
post #175

I am also a one-man SaaS (though not a successful one). The following tends to be my stack (on Google Cloud, if you will): - Cloud Run (serverless containers) - Cloud SQL (via proxy) - Cloud Monitoring & Logging (formerly Stackdriver) - Compute Engine (if necessary, e.g. websockets) - Cloud Build for GitOps (deploy on push) It's clean and simple (to me). Billing is in one place, nicely separated by projects. Monitori…

Cloud Run supports websockets now fyi. This is the approach, more or less, that I use for my personal projects. With CR and Firestore are literally free for my use cases. I only pay a few cents to host some static assets in GCS.

Websockets on Cloud Run is $$$, from what I saw, so be careful. Basically it keeps the instance on.

Re: The architecture behind a one-person tech startup

#252

Earlier quoted context omitted.

The thing Ive learned is that a lot of people have both a vested interest and a sort of stockholm syndrome with vendors (cloud or otherwise). If you spent tons of time learning AWSs special tooling, you are going to see everything as a nail if you catch my drift. Ive seen a few particular users here spend many threads defending their choices despite the often very logical criticisms levied against the "cloud everythi…

> I like to talk about to Cs is their strategy on capex vs opex, because honestly that determines quite a lot For example?

The ultimate “vendor independence” is racking your own servers in your own on-prem data centre with multiple internet connections. Very high capex, potentially low opex depending on scale. In the middle would be racking your own servers at multiple DCs. Less capex (you’re still buying servers, but not air handlers and power distribution), higher monthly opex. On the other end are things like GCP and AWS, where you have virtually no capex but relatively high opex.

And in the end, it really depends on how much you trust different vendors and how you want to manage cash flows. Racking your own servers reduces some risks (Google deciding to terminate your account on a whim, Azure pushing wild updates, Amazon jacking prices wildly) while increasing other risks (only your own staff are watching your hardware).

Re: The architecture behind a one-person tech startup

#253
This is really well done.

A suggestion, hopefully helpful: a better approach to securing your admin console than simply layering 2FA onto it would be to expose it to a private WireGuard network. One very easy way to do that is with Tailscale, which will hook up to your GSuite authentication --- Google's 2FA stack will be far better than anything you'd likely build on your own.

Tailscale is disgustingly simple to set up. If you're a product person, it's actually upsetting how easy they've made it to get set up.

Re: The architecture behind a one-person tech startup

#254
post #12

How do you start learning this breadth of software engineering? I consider myself good in the python / django space, but where do I start with learning these infrastructure technologies? I find that I use them once or twice periodically, and then don't touch them for so long, so I forget much of what I have learned.

Document everything in excruciating detail - I go so far as to record all the commands I run; and when complete o destroy the machine and start again (or use a separate system) and verify that I accurately recorded every step. You can add additional text about why you did certain things - and then store the data in a wiki or checked into git or similar so you can find it when you need it.

This. Most of the time, if you take the effort to document something, you'll retain it better anyway.

Re: The architecture behind a one-person tech startup

#255
post #134

How do you start learning this breadth of software engineering? I consider myself good in the python / django space, but where do I start with learning these infrastructure technologies? I find that I use them once or twice periodically, and then don't touch them for so long, so I forget much of what I have learned.

Work somewhere where you're the big fish in a small pond. You're forced to wear a bunch of different hats and learn multiple tools across multiple business functions.

Also, sometimes, a great way to burn out quickly. . .

Re: The architecture behind a one-person tech startup

#256
post #59

Earlier quoted context omitted.

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

I wonder what happens during blue green or canary deployment? if your migration changes database schema in a way that affect previous version negatively? is it even possible to do blue/green deploy if your schema changes radically?

It's definitely possible but we need to spend sometime to make sure the changes are backwards compatible and gradually rollout the destructive change.

Here's a really good guide on how to do this - https://docs.gitlab.com/ee/development/avoiding_downtime_in_...

Re: The architecture behind a one-person tech startup

#257
post #33

Earlier quoted context omitted.

Thank you! I appreciate it. Glad you found it helpful.

I really enjoyed your post too! I would be interested in more details around the "100s of hours". I want to try a k8s setup like yours, but after investing those 100s of hours into my Flask setup it's hard to justify spending that time again for something else when this already works. Also interested in the costs for your setup. My costs are in my other comment [1]. [1] https://news.ycombinator.com/item?id=26740911

You should be able to run a flask app pretty easily in kube. Basically you would build a docker image containing the app then deploy it with k8 I believe

Re: The architecture behind a one-person tech startup

#258
post #184
post #150

Earlier quoted context omitted.

How much is 1MM? I'm unfamiliar with that suffix.

M == thousand

k = thousand, M = million, G = billion

There is actually a standard for this. I'm fine with MM, it's confusing to me but not ambiguous, just please don't reassign existing prefixes...

Re: The architecture behind a one-person tech startup

#259

This is probably not the best place to ask this question, but as a solo founder or just to reduce costs/time are there some standard free software packages that are used when creating sites? For example most sites need a user sign up mechaism, a authN and authX mechanism to gate access to different pages. Are there open source projects that provide this? Or do site owners develop these from scratch every time?

You might find this useful - https://github.com/gothinkster/realworld Different framework implementations of a CRUD website with authentication. A lot of popular web frameworks have basic authentication out of the box & easily allow you to tie free authentication with accounts like Google, Microsoft, and many others. There are also paid alternatives that may save you more money than the free ones if you need advanced…

Very cool. I had never heard about that project.

Re: The architecture behind a one-person tech startup

#260

I'd argue that just about every infrastructure that looks like this benefits from Kubernetes (that you're not setting up and managing), and that's a lot of them. The biggest problem is that not enough people have boiled down Kubernetes enough to look like heroku yet. Google Cloud Run is possibly the best example of what Kubernetes can look like/run like -- it runs on (probably a relatively heavily modified) KNative,…

I think time will tell that ANY cluster setup is a high risk for smaller businesses. The amount of knowledge needed to run it in production is much higher than to set it up. I have setup Kubernetes but never run it myself in production. But I work with a Hashicorp equivalent setup with Docker, Nomad and Consul. I also have several Service Fabric clusters. I think it all is just a complete waste of money. Buying servi…

Ah sorry I think you may have misread the claim. K8s is my secret weapon, it’s useful for most teams when you don’t set it up (managed offering).

It really depends on what you do with that cluster, if all you do is run deployments with services and ingress (the equivalent of ECS + ELB), its easier than doing the terraform thing IMO. It’s certainly easier than cloud formation and building AMIs.

I completely agree that buying metal in the cloud is cheaper (that’s part of my secret, shhhh).

I disagree on server less because I think it’s only a matter of time before it becomes a frog boil scenario. Bit of a tin foil hat theory but I think there’s a reason companies want you to move to serverless — the complex flows you build make it sticky, the hidden costs are everywhere, they can simply raise the price at any time, and they scale cost with your business. I think we’ll see more and more of the “I got a thousand hits in a second and my bill was crazy because X” once this deluge of free credits runs out. Also definitely not sure about serverless for small business, it’s such a new paradigm, maybe if you get prebuilt flows but it’s definitely simpler to set up dokku/caprover on a droplet.

Post reply on HN