Earlier quoted context omitted.
From a standard system upgrade? Never happened to me in 20 years. Between OS versions sure, once every few years spend 20 minutes building from scratch If it did happen, same as if your machine caught fire. restore from your backup
For me it's when a library my app uses gets an update then my app fails.
My self-hosting infrastructure, fully automated
151–160 of 228 posts
Re: My self-hosting infrastructure, fully automated
#152Repo owner here, I just created this account, I'm a long time HN lurker. I was surprised to find this on Hacker News, I wanted to wait until the stable release before posting on HN, but thank you for posting :) This project is still in alpha stage, but please feel free to critique; I'd appreciate it. Edit 1: After reading some of the comments, I want to clarify a few things: - Because it is currently in the alpha sta…
Mine is based around VMs using K3OS but I have also been looking at thinkstations and other cheap Intel-T CPU workstations.
How do you find disk performance and reliability?
Re: My self-hosting infrastructure, fully automated
#153I always found the hurdle with self-hosting to be maintaining, not the initial setup. Things like upgrading, in order to keep getting security fixes, and verifying everything works after the upgrade, are what has taken the most effort and time in the past for me. This looks like a great setup by the author, but difficult to maintain in the long run without significant time investment.
Docker and docker-compose make maintaining stuff dead simple to me. In like 95% of the cases it's just a matter of changing the version in a YAML file and running one command, and in the remaining 5% of the time I'm not concerned at all with some downtime because I'm (mostly) the only user.
Re: My self-hosting infrastructure, fully automated
#154Earlier quoted context omitted.
Oh. I’ve actually done that. It’s not as hard or complicated as you claim. This was before kubernetes, arguably learning kubernetes is harder than implementing auto discovery and auto healing because you have to learn a lot about cluster semantics, the various network providers, service accounts, role based access control, integrations with secrets manager or the very disparate implementations of custom operators whi…
I don't know how you implemented it, but the big innovation of kubernetes was doing this with declarative inputs and using control loops for reconciliation instead of edge triggered changes. It might not matter on a small scale, but on a large scale that's what makes it robust. It's also not trivial to implement a distributed version of this in house at scale. At the very least you need something like etcd at the cor…
Failure to register to the name service leads to registration towards the next name service in the list, we ran three- so there were two spares, the library would then keep trying to register to the first name service, this would be our reconciliation loop.
When you request a service you request “traits” through the name service.
Not “trivial” but even though it was implemented in C++ on windows it was much less complicated than kubernetes discovery systems, which there are many ways to integrate (env-var, dns, api) and some should or must be disabled for security reasons (eg. The environment variables that display all services) or can change depending on RBAC and service account.
We deployed about 300,000 or so services with this infrastructure and it’s been running in production since 2015.
(Original product release was supposed to be 2013 but due to the client changes it was delayed, not due to the backend. This is Video Games unfortunately).
I’m not like, “hard” on these opinions, but people talk about kubernetes as if it’s the only way of solving these problems, when it can be the case that you have to learn a lot about kubernetes before you can actually do what you need to do; if you already understand distributed systems then it’s a bigger effort to understand kubernetes than would be to implement a distributed system that solves your needs from scratch
Re: My self-hosting infrastructure, fully automated
#155Earlier quoted context omitted.
Docker and docker-compose make maintaining stuff dead simple to me. In like 95% of the cases it's just a matter of changing the version in a YAML file and running one command, and in the remaining 5% of the time I'm not concerned at all with some downtime because I'm (mostly) the only user.
What do you use for serving docker-compose?
If you then want to put a reverse proxy in front of the docker containers (you almost invariably will), then you can look at different options like caddy, Traefik, nginx etc. I, for one, like to be old-fashioned and have my docker containers' ports bound to localhost, then manually maintain my own "outside of docker" instance of nginx as a reverse proxy that uses these as upstreams. That's not the most "container-first" way of working, but it worked for me. Caddy can do similar. Traefik is more integrated with docker and the docker ecosystem, but that might do what you need better.
Re: My self-hosting infrastructure, fully automated
#156What has been an obstacle is the availability of officially maintained Docker images for some of the components I've been wanting to use - afaict neither Argo CD nor Rook have official armv7/aarch64 images (though it seems Argo will release one soon).
Until then, I'll hold off on that pet project until I get my hands on a reasonably priced x86 SFF PC (the ThinkCentre M700 Tiny from TFA looks interesting!).
Re: My self-hosting infrastructure, fully automated
#157Re: My self-hosting infrastructure, fully automated
#158This is very cool! Have you considered something like Tailscale so you can securely access it from outside your home? I've been thinking about spinning up my own home server that way, seeing as Tailscale makes it easy to securely access it from my phone when I'm out and about.
Are there any major benefits to using Tailscale over vanilla Wireguard?
Re: My self-hosting infrastructure, fully automated
#159Repo owner here, I just created this account, I'm a long time HN lurker. I was surprised to find this on Hacker News, I wanted to wait until the stable release before posting on HN, but thank you for posting :) This project is still in alpha stage, but please feel free to critique; I'd appreciate it. Edit 1: After reading some of the comments, I want to clarify a few things: - Because it is currently in the alpha sta…
Your stack looks a lot like my lab setup!! Mine is based around VMs using K3OS but I have also been looking at thinkstations and other cheap Intel-T CPU workstations. How do you find disk performance and reliability?
Re: My self-hosting infrastructure, fully automated
#160Earlier quoted context omitted.
Yes, but after the initial monoliths of mainframes, we had a golden era of operating systems, where all of the plumbing and infrastructure to run your applications was maintained by someone else (Microsoft, Apple, Commodore, Atari, SGI, Sun, Palm, Redhat, etc). Now we've come full circle back to the bad old days where you need an entire team of dedicated people and arcane knowledge just to run your application softwa…
Apt install your lamp stack Deploy your files Cronjob to apt upgrade every night Why does that need a full team? Or more than 10 minutes every few years?
I think tis thrust towards self hosting should make the construction of these systems closer towards what you describe, but it isnt really that simple yet.
For instance, if you want to self host even a decent all-in-one calendar/notes/etc system like nextcloud, it isn't just `sudo pacman -S nextcloud` and youre done.
There is an enormous consideration of how to construct the 1) network architecture, 2) encryption of disks, 3) secure/encrypted, incremental, and full filesystem offsite backup, 4) security and encryption of network, 5) secure interplay between self hosted and non self hosted data, etc.
An example of (1) may be that, much if the discussion around self hosting states that one should not open their LAN to the internet with port forwarding (as it's inviting you to be hacked), and you should rather point your registered domain to a VPN such that you must login with any remote devices to access your server (just to point out - likely here you would need to use a dynamic dns service to get access to your system, which is also another hassle for newcomers).
Further on (1), this involves ensuring that the choice of VPN is adequate (many older technologies have known security flaws, like oracle padding attacks, etc.) - and finding a combination of routers with correct firmware to allow for VPN servers, (also VPN clients on top of that if you care about not having your isp sell you to everyone) the correct hardware and network architecture that can properly mitigate the encryption of traffic on your network (e.g. can a raspberry pi really handle all of your traffic and maintain 1Gbps file download/uploads with vpn encryption?).
I recognize that much of this is not really possible to `sudo apt-get` on one system with recommended hardware, but the more FOSS out there that can get closer to mitigating all of this, and to have well packaged tutorials on how to safely and properly self host (e.g. complete google service replacement) while maintaining security and 10Gbps speeds, the better off we will be.
This really is what we should be driving towards. Companies can certainly offer their servers for customer use, but I think it should be expected that companies have the code that is used to store that customer data fully as FOSS, for auditing and to allow for self hosting. There's still money to be made for companies in helping people self host everything for themselves - we just have to push for it.
One decent enabler of this is companies that make software for data backups. This is another one of the enumerations above, because it is quite difficult to find a solution that has quantum secure encryption, excellent compression, incremental (only pushing diff like git) capabilities, and is reasonably simple to use. AFAIK, Duplicati is the only option that seems to be able to hit all of these well (hopefully someone can correct me).
Anyway, this was a meandering long way to say - self hosting is complicated, but i do really hope we can change that.