5 ms·
This looks cool as a learning experience and all, but... Self-hosting all your own stuff has to be the worst thing you can do as a new startup. You need to be
by dolni 5y ago
This looks cool as a learning experience and all, but...
Self-hosting all your own stuff has to be the worst thing you can do as a new startup. You need to be focused on impactful work, not dealing with critical security updates to your Mattermost install. And definitely not worrying about figuring out how to properly HA databases and your self-hosted S3.
Just use managed services.
- motoxpro 5y agoAgree. Cant think of anything that is more of waste of time.
- quesera 5y agoIt works both ways. You can save your startup thousands of dollars per month on services, with very little effort -- if you know how. A larger group of people would struggle with the effort to do so competently. Energy spent bringing more people into the first group is generally a positive thing.
- hkchad 5y agoLabor cost to maintain is far more than the service cost for a small startup, most of the time you can get by on the free tiers for quite some time. Founders need to focus time/energy on what adds value, not updating services.
- cersa8 5y agoThis idea that you need a ton of money to maintain self hosted servers is not true. You may have to update to a new OS or software major version at some point in time, but in the meantime things can pretty much auto-security-update for the distribution provided version until you gain traction with your startup.
- deleted 5y ago[deleted]
- quesera 5y ago> Labor cost to maintain is far more than the service cost for a small startup This is the common wisdom which is correct in many cases, but not all. If you have a decent systems/infrastructure person in your startup, the incremental cost of running a lot of these kinds of services is effectively zero. If you are bootstrapped, this can be financially significant. Most startups do not need a decent infra person on day one, and no one would recommend hiring one for this purpose. But if someone on the team has the skills, it can make a ton of sense to leverage them. I think it's good to help people obtain these skills which add value to (or at least save money for) their project, and correspondingly enable more people to start up in the first place.
- raffraffraff 5y agoVery real example coming up. I was one of 3 engineers with a "day one" start-up just over 2 years ago. I was dedicated to infrastructure, and have experience with hardware > OS > config management > orchestration > CICD > monitoring. I've deployed hashicorp stack and Kubernetes. I've managed in-house services like gitlab, database clusters, metrics/logs solutions, Jenkins etc. I've also managed firewalls and I'm rusty on switches etc but I've done that too. At the start-up we ran nothing ourselves, except the gitlab runners. (Well, except for the first month where a bunch of laptops are used to prototype the app). I spent my first year writing terraform and helping design the product for low-cost scalability. So much of what we did for that whole year was in the free tier that our runway money could cover team building. 1 year in, I could deploy our entire stack from scratch into a new region in under an hour. VPC, subnets, security rules, IAM, queues, workers, Kubernetes cluster with autoscaling nodes, databases, DNS, CDN, monitoring, metrics, email (AWS SES)... That type of fast deployability to a new region shouldn't be a late consideration after you've spent a year tinkering with in-house stuff. In fact, getting to another round of funding requires that you have that stuff ironed out. Can you support FedRAMP requirements? Yes, because that was a day one consideration. How about GDPR? Ditto. Do you have separate dev, test and prod environments which are identical apart from scale/cost? Yep! Right now I'm working with a company that built everything in-house, from the perspective of "one single data center". It's a disaster. If you're not thinking at scale from the start, your probably not doing basic stuff like proper naming conventions, non-clashing CIDR. They're using all the right tools, but badly. Their terraform is a mess because it was obviously introduced it gradually on top of existing "snowflake" infrastructure. Their next data center was pretty much copy-paste followed by a thousand changes. And their code coverage is low - lots of stuff still manually created. (This is a known company with a decent product and lots of customers!). All of the people hired to try to make it scalable after the fact are saying things like "...it would be easier to just throw it all out and start over". The problem with doing things badly because you think you can improve it later is that suddenly you've got customers on this thing, and you can't start over.
- motoxpro 5y agoI think the first step is getting to a place where your infra even costs 1000s of dollars.
- swipee 5y agoSo what should you focus on? What OSI layer is a good starting point? It depends on your skills right? I agree you should use as much established products as possible but you build your stack and create that unique differentiation on the market by also learning technology as you go. It all depends on where you land with your idea to the market. If you are selling knit figures online - you are right that you should not set this up but if you rely on technology advancements you should “own your technology” knowledge as much as possible because you will need it to solve problems along the way. Too often I see business leaders come in and say I don’t know technology - let’s buy it all from MS or Amazon. This is not the way to go for your whole business. It’s like saying can you run my business for me. Your business is only as good as your best knowledge workers. Another aspect is regulations, your data might not be allowed to leave the premise of your nation and these self hosted solutions at least with proper patching procedures offer this guarantee. Managed services in all its glory to hand over the problem to someone else also hands over key learnings and if you have a complex enough environment you will need to deal with it at some point and for small businesses/startups the cost of outsourcing might be too high to begin with.
- dolni 5y agoYou should be focused on building a market for your product. What gives you a competitive advantage? I argue that self-hosting Mattermost doesn't help accomplish that vs. paying Slack. You are right that there is a time and place to start taking more ownership of those basic pieces. Doing it before you even have something to sell is not the right time. You have to survive as a small company before you can be a mid-size company.
- toomuchtodo 5y ago> So what should you focus on? Revenue via leverage (managed services) once you have traction (people will pay you for what you're offering). Outsource everything except your core competencies, and optimize as throughput allows for either growth or cost reductions (judgement calls by competent practitioners close to the machinery). Broad strokes, as a startup you're attempting to grow revenue as fast as you can through value delivery to customers; you should be ruthlessly cutting anything you're spending your time on that doesn't contribute to that goal. For sure, keep an eye towards your regulatory requirements, lock in risk (both vendor and technology), etc. That's not a call to self host everything, just what you absolutely can't grow or survive without (and in many cases, a product or service may come along down the road that allows you to refactor out of homegrown solutions). Organizational contributors who understand technology making these decisions de-risks suboptimal decisions being made. (observations from experience at a hyper growth startup)
- frizzy 5y agoHey, autor here) I agree with you: when you only start, you should pay 100% attention to custdev and use as much ready to go cloud services as you can. Thats why I included "Free for Dev" link. However, I think that when you started development, especially with a team up to 10 people, or if you work with private information - you should hosting some of services and databases yourself. In my experience, at least private hosting of gitlab with CI&CD, databases and sometime monitoring system is a normal case. Also, startup is not always start from zero, sometime it's just a new project in a tech company. So this pack can help to start just a usual new project) And finally, this pack can be useful for developers who want to test new services locally. And I hope that it will be helpful for someone :)
- rglullis 5y agoHave you considered turning this into a SaaS of your own? As in: here is the code if you want to self-Host, but if you want I can manage it for you for X/month?
- frizzy 5y agoI wish to but it's almost impossible: all services in this pack has a paas version that I never win, and a lot of people do the same things as devops engineers today, as I do as contractor and sometimes freelancer, for example))
- rglullis 5y agoBut none of them have a system where all of these services are put together. What I would really like to see is an offering where anyone can just pick a suite of open source tools, all managed with the same SSO, and pay a flat rate for it. Something like https://restack.io https://restack.io, but not where I´d have to manage.
- frizzy 5y agoYeah, I understand you) I'm not sure that I'll do it but thank you for idea. For now there are few alternatives like helm charts for k8s or juju from ubuntu, or providers like heroku, but nothing that I know which have level of heroku in open source - and I understand why xD I saw coolify.io on HN yesterday - mayby they will do...
- brimble 5y agoThe galaxy-brain plan is to start a SaaS for each thing, starting from the one with the fewest service dependencies to the one with the most, migrating earlier ones onto any services provided by later ones as possible/sensible, so by the end you are consuming a bunch of SaaS—but you own all of them.
- ptudan 5y agoLol that's all the big tech companies in a nutshell, except generally they built them for their own moneymakers and them made them a SaaS after
- earleybird 5y agoIn other businesses I believe that is called vertical integration.
- tluyben2 5y agoIf you need HA databases and something like s3. If you can just run docker compose and have it all running on a $1/mo vps, I am happy to pocket my extra profit thank you very much.