5 ms·
This seems like a pretty big stack for a single person to administrate - how much time do you spend on doing operations vs development?
by lnsp 6y ago
This seems like a pretty big stack for a single person to administrate - how much time do you spend on doing operations vs development?
- amzans 6y agoRight now the operational effort is pretty minimal to be honest. I spend most of my time developing new features and talking my customers. I know it seems like a lot of tools, but most of them are set up once and forget. Except for the occasional round of dependency updates. But even for that I have automated dependency/container scanning to detect vulnerabilities, and get notified if updating an image is recommended. Most of the stack consists of "platform" tools, such as the ingress-nginx, external-dns, or cert-manager. So it's stuff I take with me for every project. It's like a personal Heroku I've been building, but way cheaper and fully customizable. I've been iterating on this stack over the years with various other projects, and also learned a lot from running Kubernetes in production at my full-time job, so it's not something I'd advise for someone who just wants to deploy their MVP for the first time.
- vbsteven 6y agoReplace Python/Django with Java/Kotlin/SpringBoot and you pretty much have my preferred project stack, which also organically grew due to being exposed to these platform tools in my day job. Kubernetes/Terraform and friends are really useful as a solo-dev if, and only if you have the required experience with them.
- Wheaties466 6y agoany chance you could expand on this? "I know it seems like a lot of tools, but most of them are set up once and forget. Except for the occasional round of dependency updates. But even for that I have automated dependency/container scanning to detect vulnerabilities, and get notified if updating an image is recommended."
- amzans 6y agoRegarding docker images, I use the image scanning feature of ECR: https://aws.amazon.com/blogs/containers/amazon-ecr-native-container-image-scanning/ https://aws.amazon.com/blogs/containers/amazon-ecr-native-co... The docs make it look really complicated, but it comes down to enabling the service on the Terraform config. Also for app dependencies, I use bots to open PRs on my repo whenever an important security fix is published for one of my dependencies.
- jrochkind1 6y agoWhat would you advise for someone who doesn't have the pre-existing k8 expertise etc? The ops environment still looks overwhelming to me, if there's a way to do it sustainably without a really heavy-weight ops infrastructure, I haven't figured it out. Like, something that to me requires like a full-time job just to do ops, although maybe not if you've spent some years learning the ops tools, but then same same.
- redisman 6y agoI don't think diving into kubernetes makes any sense for a 1 person shop if you don't already know it. People love to evangelize about k8s more than your average tech but it's just one (IMHO overkill) way to do things. A better bet I think is to leverage tools from cloud providers. They specifically offer many different easy to use scaling platforms for a premium for small/not experienced teams. Heroku has been mentioned a bunch, something like Elastic Beanstalk on AWS is super easy for the first year or two of a company. Or just go for a single machine somewhere and worry about the 5% chance you need more than that when that happens.
- amzans 6y agoYes, this is what I would also recommend. You can get really far with the managed services from your cloud provider. If you're already familiar with Docker containers, just that already gives you plenty of options. I think every platform now provides a way to just run containers behind a load balancer with a few simple steps. Yes, maybe it's a form of vendor lock-in, but if your worry is acquiring customers, and growing a company, Kubernetes is probably not helping you in this case.
- romanovcode 6y agoExactly, I was expecting something like React, Next.js, Firebase, Mailchimp. This list looks huge to manage as a solo developer.