Live data from Hacker News

Ask HN: Solo-preneurs, how do you DevOps to save time?

news.ycombinator.com

271–280 of 328 posts

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#271
post #161

I made my own HTTP app. server and JSON database on top of that. The server accepts .jars over HTTP with code (and files) so I can hotdeploy while developing on live on the entire cluster in real time. My turnaround is about 1 second. The JSON database allows for schema-less simplicity, and it has all the features you need like indexes, relations, multi crossref and security (and then some, like global realtime distr…

Does "Book of Travels" run on the same infrastructure? https://store.steampowered.com/app/1152340/Book_of_Travels/ I know it had some server issues on launch - too popular it seems.

No, nor I or fuse had any involvement with BoT. I wouldn't post here if I was...

BoT did not fail because it had too many players, you can clearly see how many are playing, maybe it has a complex backend... simplicity is your friend!

Meadow for reference launched with ~150 (on T2 Micro at 30%) concurrent players per machine and peaked at 450 (on T2 Medium at 25%). That's before you could buy more credits so we had to upgrade to M4 Large after a while.

And Meadow is an action game, not a point and click!

The rupy chain is solid and proven and has been running Meadow for 5 years without any write downtime except last week when one instance got nuked by AWS or somebody at M&D. That's a pretty good track record of 100% read uptime!

The Meadow launch probably was the only MMO to have a flawless launch with high pressure per server so far, and it did so over HTTP with a JSON file database! :D

It's also the only MMO with one database spanning 3 continents in real-time.

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#273
I wrote a series of Medium stories about my experience with tech stacks for solo work - including deployment (start here: https://medium.com/geekculture/surely-building-software-cant...). My needs are slightly different to OP, because I'm not assuming everything will have to scale, so I'm optimising for "scale to zero" (only pay for what I use) and low maintenance... but I'm taking approaches that I know will scale if they have to (scale technically, not scale to have a team working on it).

In short, I lean heavily on serverless and Github Actions.

Each story covers a different pattern in my stack and I apply these principles:

-I only want to pay for what I use -I don’t have a lot of time available for learning or building -I don’t have time for maintenance activities -I’m not a good UI designer or front end engineer

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#274
post #49

Choose a platform like App Engine. It's auto-scaling. Supports bigtable. And opentelemetry. Manageable from anywhere via Cloud Shell. You can run multiple instances and partition load between them. Even includes a free tier ;) https://github.com/GoogleCloudPlatform/golang-samples

You did that, as a solo dev with little money, and made a profitable business out of it?

not quite yet ;)

ps some of the google cloud next announcements today around appsheet, appscript, looker, ai vertex notebooks, and "no-code" solutions are starting to look really sophisticated!

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#275
For my API SaaS I run everything non-critical (marketing website, analytics, customer dashboard) on a single server, either part of a single django monolith or using an official docker image with some command-line arguments. Only the API gets duplicated and load-balanced with Cloudflare.

Dedicated servers, specced to provide lots of capacity for spikes. A 20-node k8s cluster could fit on 2 beefy dedicated servers for about the same cost. Decreased infrastructure redundancy but massively increased operational stability through simplicity.

Everything runs in a docker-compose project: one for the API, another for the everything else monolith. I've worked for a couple of small companies that ran with docker-compose, so have a good sense of the weaknesses and footguns (breaking your firewall, log rotation, handling secrets, etc).

CI is running `make test` on my dev machine. Deployment is `git pull && docker-compose up --build`. Everything sits behind haproxy or nginx which is set to hold and retry requests while the backend is down, so there aren't any failed requests in the few seconds a deployment takes, just increased latency. I only deploy to the API once or so per week, that stability reduces headaches.

DB backups are done with cron: every hour a pgdump is encrypted then uploaded to backblaze. Customer subscription data is mirrored from stripe anyway so an out of date DB backup isn't the end of the world. Error if the backup fails after a few retries.

Sentry on everything for error alerting. All logs go into New Relic.

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#276
post #57

I scaled to millions of users as a solo founder and still run the whole show myself. AMA if you like. Here is what works for me: CI: From the terminal, I run my tests and commit to git. Deployments: rsync Rollbacks: Never did one. If something breaks, I fix it and rsync the fix to production. DB: MariaDB k8s: I don't use it. Computers are very fast these days. A cheap single VPS will get you a long way. Nightmare: No…

How about backups? I struggle with it a bit for our home office.

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#277
post #29
post #13

Not a solo founder, but I do a lot of ops professionally. Unless you have a specific reason, I say it’s best to avoid complicated tooling until later. k8s, ci, etc are all really useful and solve a lot of hard problems, but god are they a bitch to set up and then monitor, fix when something weird happens, secure from nasty people outside, patch when some update becomes necessary, resist the urge to “improve”, etc. Th…

> If you’re using fewer than like 10 boxes and don’t work with many people, you can get away with spooky arcane oldhat sysadmin deploy techniques (scp release to prod hosts, run deploy script, service or cron to keep running) If you have multiple people on the team that have access to servers, this will shoot you in the foot a year or two later. Good luck replicating that server setup when no one has any clue whatsoe…

> Good luck replicating that server setup

It is easy when the server is regularly backuped.

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#278

Earlier quoted context omitted.

Any chance you have an HN discount code? :-)

I want to do Show HN, but probably have to prepare a bigger preview for that. Grab the "ruby30" code from the Reddit announcement: https://www.reddit.com/r/ruby/comments/pg3c9c/i_posted_on_th...

Purchased. Thanks!

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#279
Deployments: GitHub ci + docker stack + docker swarm + docker machine + docker-flow-proxy + docker registry

There are a few rough edges you face once and then forget about but minimal resource impact and it was fairly simple. I have another project that is using hacky scripts and it's a pain when something is off or I need to run something else on top of the machine.

Some stuff is not terribly maintained but everything works.

If you're small, it's definitely not a full time job. I didn't pick k8s because I initially deployed on a single machine and didn't want overhead. Things kept working afterward and I'm reconsidering whether I need k8s at all.

Rollbacks are just deploying an old version + optional down migrations if needed. I try to minimise them and fix the code and redeploy anyway.

For migrations, I guess it's very application specific, but most tools in most languages are fine these days. I use typeorm, a node.js library.

There are some practices you can follow that you probably heard working in some normal company. Eg. I don't break the db structure immediately, I deprecate columns and then delete them after a while.

Re: Ask HN: Solo-preneurs, how do you DevOps to save time?

#280

I have no idea why there's nothing here saying "don't". Go and get a Heroku account, hook it up to your Github repository's master branch for deploys, use Github Actions for CI, and then get on with life. Yes, you'll pay more for a Heroku Postgres instance than you would for a VPS on Digital Ocean with Postgres running on it, likewise you'll pay more for Heroku Dynos than another VPS to run your application server. O…

Are you actually doing this for a production app with income you rely on? Because Heroku has horrendous uptime these days. Lot's of random emergencies on both worker and web dynos. Don't forget you share routing with thousands of other apps too so expect random hiccups there too. It's easy to give this advice but does not scale well with complexity.
Post reply on HN