Live data from Hacker News

The architecture behind a one-person tech startup

anthonynsimon.com

231–240 of 334 posts

Re: The architecture behind a one-person tech startup

#231
post #12

Earlier quoted context omitted.

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.

That's all great advice. What I find though is I don't do it enough for it not to change under me. Example: 1. Did a project on digital ocean, just ubuntu and node 2. Year later, Did a project using meteor, spent way too much time trying to get it all install with Vagrant (so all info from 1 was not useful) 3. Year later, Changed meteor setup to use docker ... so had to learn docker (so all info from 2 was not useful…

Unless it's something bleeding edge or a a high churn JS stack, almost nothing should be out of date in just 1-2 years.

Re: The architecture behind a one-person tech startup

#232
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.

I've used the script command and asciinema [1] before. Easy way to record steps without missing anything.

[1] https://asciinema.org/

Re: The architecture behind a one-person tech startup

#233

Earlier quoted context omitted.

I still use GCP, but I avoid locking myself into their proprietary infrastructure when I'm writing new stuff. I feel like Google is far too cavalier about deprecating services and forcing their customers to do migration work. It is hard to replace GCP's managed datastores because I really don't want to maintain my own database server (even if it's a managed service that someone else upgrades for me). So I've stuck to…

You don’t want to maintain your own database server, even managed by GCP, but with SQLite you have to maintain state on GCP Persistent Disks and backups to S3 using Litestream. Why do you think this is easier?

I don't have to maintain state on GCP persistent disks. I can blow away a server without warning, and I'll only lose a few seconds of data.

True, I have to maintain state on S3, but there's not much work involved in that.

If I was maintaining my own database server, I have to manage upgrades, backups, and the complexity of running an additional server. With Litestream, I don't have to manage upgrades because nothing bad happens if I don't upgrade, whereas there are security risks running an unpatched MySQL/Postgres server in production. Litestream has built-in snapshots and can replicate to multiple S3 backends, so I'm not too worried about backups. And there's no server to maintain.

What operational complexity do you see in Litestream?

Re: The architecture behind a one-person tech startup

#234
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.

>managed DB via magic What product is this?

Sufficiently Advanced Technology

https://lab.cccb.org/en/arthur-c-clarke-any-sufficiently-adv...

Re: The architecture behind a one-person tech startup

#235

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,…

Can you point out any tutorials or guides on how to set up kubernetes simply? I'm wondering what the best way to deploy my app with minimal effort is - you make it sound like kubernetes is the answer.

If you're developing apps in containers, there are platforms that make it really simple to deploy. For example, Cloud Run (Google), Fargate (AWS), or Heroku. What the parent comment is suggesting is that building a platform like Cloud Run, Fargate, or Heroku is much easier on Kubernetes. Kelsey Hightower (principal engineer for Google Cloud) put it well when he stated, 'Kubernetes is a platform for building platforms.'¹

You can still deploy apps directly onto Kubernetes and it works very well for this purpose, but it will require a lot more learning than one of the platforms listed above. If you enjoy learning, Kubernetes is an incredibly powerful and satisfying tool to have in your kit, and the initial learning curve isn't as steep as some make it out to be. If your goal is to deploy apps as quickly and simply as possible however, go with one of the pre-existing platforms.

If you still want to learn Kubernetes then a really great book is Kubernetes Up and Running. It goes into just enough detail at the right point in time to make it simple while still being useful. If you do a bit of Googling, you might find a free copy of the book that used to be offered by Microsoft to promote their Azure Kubernetes Service. Otherwise there's Kubernetes the Hard Way² but that's more focused on administering the Kubernetes cluster itself, rather than how to use the cluster to deploy apps. You'd need a pretty convincing reason to administer your own cluster rather than spinning up a managed cluster on GKE or EKS.

My advice: - Grab a copy of Kubernetes Up and Running - Install minikube on your local PC - Experiment and have fun learning

Hope this helps.

---

1. https://twitter.com/kelseyhightower/status/93525292372179353...

2. https://github.com/kelseyhightower/kubernetes-the-hard-way

Re: The architecture behind a one-person tech startup

#236

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 services/metal in the cloud or going serverless or whatever is cheaper and with much lower risks for most minor businesses.

Re: The architecture behind a one-person tech startup

#237
post #103

Since you're in Germany, how do you handle VAT, EU tax returns, invoices, etc? What about taxes and invoices to other countries?

I am wondering about this too. Tax compliance is complicated and Stripe doesn't do much for you on this front.

In short, it’s painful :)

Looking into a Stripe plugin like https://www.quaderno.io/

I really enjoy using Stripe, and their support is great, but sales tax compliance makes me a bit jealous of those using Paddle.

Re: The architecture behind a one-person tech startup

#239

My infrastructure is $2,800/year. There are two Servers load balanced with DNS. Each Server has 3 jails (Nginx, App, DB) and 2 NICs The internal NIC is for replicating the DB, and for the App Servers to target the Primary one. Diagram and Configs: https://blog.uidrafter.com/engineering/freebsd-jails-network...

Very interesting. Do you mind sharing the hardware specifications of your servers? Are you confident that FreeBSD is a secure OS to face the internet, say, as compared to OpenBSD?

Hi xianwen,

Both servers are SuperMicro with:

- 6 Cores 3.3/4.5GHz (E-2136)

- 32GB ECC DDR4

- 2 × NICs (em, igb)

- 2 × 480GB SSD

- 20TB on 1Gbps with DDoS FENS

- IPMI over VPN

I rent them to Hivelocity.

===

FreeBSD vs OpenBSD

Ilja van Sprundel answers your question by comparing the number of kernel vulnerabilities since 1999 of the BSDs and Linux. [1]

I don't think FreeBSD, even well hardened [2], is as secure as OpenBSD. After all, OpenBSD's main focus is security. I use OpenBSD for orchestration and monitoring, and I have an experimental setup of OpenBSD with VMM but they crash sporadically, so I'll wait a bit.

At any rate, my goal is to have two heteregenous paths (maybe OpenBSD, FreeBSD) or (Solaris, Linux). This way I could simply shutoff the vulnerable path when there's an unfixed vulnerability.

[1] https://youtu.be/rRg2vuwF1hY?t=264

[2] https://vez.mrsk.me/freebsd-defaults.html

===

BTW, I have the FreeBSD hardening and setup scripted, which you could add into the ISO in `/etc/installerconfig`, or downloaded from the orchestration and manually ran with `bsdintall script myinstallerconfig.sh` if you wish.

Re: The architecture behind a one-person tech startup

#240

My infrastructure is $2,800/year. There are two Servers load balanced with DNS. Each Server has 3 jails (Nginx, App, DB) and 2 NICs The internal NIC is for replicating the DB, and for the App Servers to target the Primary one. Diagram and Configs: https://blog.uidrafter.com/engineering/freebsd-jails-network...

Hey great job on the documentation! So nice to see it done well.

Thank you!
Post reply on HN