5 ms·
Very cool setup. I know it's a bit silly, but anyone building out cloud services should look at this post and think about how easy it is to set up this. This i
by rtpg 4y ago
Very cool setup.
I know it's a bit silly, but anyone building out cloud services should look at this post and think about how easy it is to set up this. This is just slightly more complex than a static site, has a bit of heterogenity, but otherwise is a lot of known tools.
Can your stack provide all of this without breaking the bank for the people signing up? Can it be done without having to learn a bunch of bespoke systems? I think that Heroku's success in particular is totally down to managing this bespoke-ness balance (that is still kinda missing from container-based setups).
- threeseed 4y ago> This is just slightly more complex than a static site That's because their product is only slightly more complex than a static site. I wish every project was as basic as a web server and database but it's pretty rare these days.
- rjh29 4y agoAlso pragmatically choosing data centres in one physical location (even though this is a health checking service) rather than immediately going for highly available Aurora Serverless multi-AZ or something that would inflate the bill 10x.
- nojito 4y agoMost saas companies are simple crud apps.
- threeseed 4y agoNo they aren't. Even seemingly basic ones like Notion hide a lot of complexity. What you're seeing is survivorship bias where the SaaS companies that are doing well are the ones that can provide a simple, clean UI whilst adding the functionality that you need for the product to be useful.
- capableweb 4y ago> I wish every project was as basic as a web server and database but it's pretty rare these days. Is it? What functionality are you thinking about that absolutely require more than that? I find that most ideas even today can be solved with a web server + DB, while developers today like to over-engineer things and think about scaling a service for a million users while they haven't even figured out the value proposition of their product/service yet.
- exdsq 4y agoIf you’re programming autonomous weapons for fighter jets it tends to require a little more than a web server, or so I’ve heard!
- capableweb 4y agoWell, I'd say it's more rare to work on autonomous weapons for fighter jets than not, wouldn't you agree?
- exdsq 4y agoDepends where you live :)
- capableweb 4y agoNow I'm curious, where do people live where it's more common to write software for any type of weapons compared to software for anything not weapons?
- exdsq 4y agoI was being a little facetious, but there are some DoD/military industry towns where the majority of code will be C/C++ based stuff.
- toqy 4y agoI fail to see how AWS helps with that though
- skc 4y ago> I wish every project was as basic as a web server and database but it's pretty rare these days. I feel like the overwhelming majority of web based software projects can be catered for with exactly this setup. If it's rare it's because everybody's drunk the Kool-aid
- threeseed 4y agoMaybe in the past, sure. But these days people rely far more on their web apps. Having a 1-2 day outage because your architecture is not highly-available across data centres like this one just doesn't cut it. And multi-day outages are very much real because of the thundering herd effect as companies rapidly try to move between data centres exhausting capacity. And much of the complexity in modern day architectures come from high availability and security.
- welterde 4y agoIt's already multi-datacenter, since the servers are distributed across multiple datacenters on the Falkenstein campus (and they also have other locations in their eco-system).
- nijave 4y agoThe post mentions he picked multiple Hetzner DCs to put his servers in
- threeseed 4y agoMultiple DCs in the same "park" equivalent to an availability zone. i.e. they would likely be sharing the same power and network infrastructure. So not redundant by any normal definition.
- therealdrag0 4y agoMajority by what metric? Solo projects? Enterprise? What? That’s an incredibly broad brush that doesn’t match my experience at all. Could it be you just haven’t been involved in many complicated projects?
- russellendicott 4y agoTo be fair, the author is using several SaaS apps for core parts of his business: monitoring, email, DNS, etc. He's just "self-hosting" the more expensive parts (e.g, the EC2 parts) to get more for his money. This is great if you feel comfortable sysadmin'ing and dba'ing servers. A lot of people don't feel comfortable doing this and prefer to use ELB instead of HAProxy, RDS instead of DB servers, etc. To each his own.
- afroboy 4y ago> A lot of people don't feel comfortable doing this and prefer to use ELB instead of HAProxy, RDS instead of DB servers, etc. To each his own. But you gotta pay more than 500$, way more.
- thejosh 4y agoWhat happens when the datacenter catches fire? (OVH in 2021). If you're running a site like this, it's fine to be down for a bit, people will forgive you as you restore from backup (looks like a very solid foundation the site has).
- withinboredom 4y agoThe bus factor is 1. It's much more likely the dev can't do something for some reason than the datacenter catch fire.
- unionpivo 4y agoThe nice bit about this is, that you can deploy the same thing everywhere. on other bare metals, or on AWS, azure, ... As long as you have database backup, git code, and build-scripts. I run something similar (although smaller). My disaster recovery is: I have everything prepared, to go on AWS, if necessary. Would take less, than 1 hr to be back up (database size being the biggest time sink). If I wanted to minimize that time, I could have small DB replica running, so I would just have to run last day of wall files. But for my purposes everything less than a day is good enough. And then you can take a few days, to find something cheaper, to migrate to.
- Beltalowda 4y agoPretty much this. I can quickly set up an entire new environment for my SaaS in under an hour; on a good day probably in about 10 minutes. It will run on any Linux environment: AWS, DigitalOcean, Linode, Azure, what-have-you. At my last job we had one of those hyperfancy devops setups with all the fancy devops tools. Literally no one in the company knew how to spin up a new environment. I'm not exaggerating: no one knew how to run a dev environment and when they had to set up a new region for legal purposes it took weeks for the team. All of that was initially set up in an age of legends in the mythical past of a year and a half ago. Theoretically it would all failover and scale to the moon and back. Emphasis on theoretically because no one seemed to understand how it all worked, so who knows how well it would behave when it failed. There was actually some major downtime in my time there which was rationalized away as "growing pains", but in in my opinion a major factor was just that no one really understood how it al worked. If something goes wrong with a simple system then often the diagnosis and fix is simple (in this case: just deploy a new environment). If something goes wrong with a complex system then all of this is much harder. Not saying you can't use these tools correctly or that there isn't an appropriate use for it, but it's a good case study on how the complexity can spin out of control if you're not careful in how you apply it.