3
17 Comments

I suck/hate devops please help

I've given up trying to do my own Devops... I have failed to implement my own production ready Kubernetes cluster for the third time :shame:

My wishlist now:

  1. OpenFAAS
  2. Java
    2b: unit tests + checkstyle + sonar (Ci/CD)
  3. A/B testing.deploy or canary deploys
  4. Gitlab auto-ops ?

Is there a startup company out there that has solved this problem of taking all of the above and just making it work from gitlab/github?

  1. 9

    Why are you using k8s in the first place? 98% of startups don't need the additional complexity and operational overhead that k8s + docker + microservices introduces.

    I'd recommend https://render.com for hosting any backend services that scale horizontally and https://zeit.co for hosting any serverless functions.

    The advantage of these services over using a cloud provider directly like AWS or GCP (or worse trying to do all of this yourself) is that the developer experience is freakin amazing.

    If one or both of these work for you it'll be like you never have to think about devops again which is perfect for indie hackers... cause if you're an indie hacker, you should probably be focusing on the differentiating parts of your product and business, not on devops stuff.

    Hope this helps ✌️

    1. 3

      Thank you for this comment! Sometimes I'm truly astounded and the amount of self-inflicted complexity solo devs can suffer.

      I second the recommendation for Render, but even if you're on a VPS you don't need k8s. You don't need Docker, either. I've seen multiple successful businesses run on WP on shared hosts where the founder "deploys" by editing PHP files on the server directly.

      I don't go that far. I use git (and Gitlab CI/CD), and I have some bash scripts to deploy via SSH but containerization still isn't something I've found necessary (or a productivity win) for this project.

      1. 2

        💯 Simplicity > everything for productivity

        It's tough cause we as developers love to focus on the hard technical challenges and I need to constantly remind myself of what matters: product and customers.

        1. 2

          Also "self-inflicted complexity" is a great idea for the title of a blog post -- I'm gonna steal that 😄

    2. 1

      I would politely disagree with this;

      As an indie hacker I like to focus on technical excellence in order to make my own life easier. Note that this is not something I can sell directly to my customers.

      What it enables me to do however is to achieve incredible speed in building new features, which is something I need as I still have more than enough ideas to keep me busy for the upcoming five years. Most important enabler here is a proper CI/CD pipeline.

      By continuing to focus on your own productivity you will eventually (depending on the complexity of your product) end up on Kubernetes. If you ever enter this stage a platform like Istio may greatly help you achieve a higher velocity by providing the tools to monitor your application effectively, and release new experimental software without necessarily running the risk of bringing the whole infrastructure down, which is part of the quality of service I want to offer customers.

      Last weekend I have attended a session on this topic by Edwin van Wijk, which really clarifies some complex topics related to running a Kubernetes cluster. Another run of this presentation is available here: https://www.youtube.com/watch?v=qWUINCZHs6E. His source code is available here: https://github.com/EdwinVW/pitstop. I can really recommend this session if you're just starting out with a service mesh.

      1. 3

        Yeah, at the end of the day different products & developers have different needs 😄

        I completely agree that focusing on your own productivity is a winning strategy -- the part I disagree with is that k8s is even remotely the best option to do so for indie projects.

        I would (politely 😄) challenge you to reconsider how k8s helps you focus on productivity any better than a PaaS would. All of the reasons you cite are entry-level features of the best PaaS providers out there without you having to worry about any of the complexity.

        Things like proper CI / CD, git integration, world class monitoring, zero-downtime deploys, etc are all great examples of things that a service like render.com or AWS Amplify offers without you having to think about it.

        Personally, I'm significantly more productive never having to think about any of this stuff but still reaping all the same benefits.

        At the end of the day, though, it's a very personal decision and there's no one right answer for everyone. If you enjoy this side of things, then go for it 💪

        1. 1

          Also @anuragg you guys should pay me for stuff like this 😂

          1. 1

            😀 We should, but then it wouldn't be a true endorsement! Still, you'll be one of the first people to get Render swag once we create some. Thank you!

            1. 2

              Lemme know if you guys are interested in setting up any type of referral model down the road. 💪

    3. 1

      I agree, ditch k8s, and use the easiest thing. This might be firebase / netlify. I’m an Azure person so webapps is another fine choice. At worst get some VMs and install directly on them with a shell script.

      These are services where you don’t really have to worry about devops at all.

      I inherited some k8s at work and it’s a mission maintaining and troubleshooting it! And that’s cloud managed let alone diy.

      1. 1

        How would you deploy a docker app made of 2 services (nginx + backend) + database preferably automatized on push?

        1. 1

          For a indie project I probably wouldn't use docker. Depending on your tech stack there are service that will handle an automated push. For example with ASP.NET you can publish to Azure from Visual Studio, and use Entity Framework migrations to do DB upgrades automatically. For Rails, I think Heroku would be the easy choice, which comes with some tools to push up from the command line, and you'd use something like ActiveRecord to do the migrations.

          That said if you MUST use Docker, then docker-compose offers a simpler solution than Kubernetes, but the advantage of using the done-for-you solutions I mentioned earlier is they can handle scaling and other aspects for you. The catch is they might cost a bit more to host, but your time is also valuable.

    4. 2

      This comment was deleted a year ago.

  2. 1

    If you're dead set on implementing K8s, use a managed cluster like GKE and look at a PaaS built on K8s like https://rio.io/

  3. 1

    AWS Lambda, GCloud Functions, Zeit, Netlify, etc all offer serverless PaaS options that fit your requirements.

    The only question mark is canary deploys. That will be provider dependent. In AWS for example, you should be able to handle using API Gateway in front of Lambda.

    Regardless, I agree with @saasify, Kubernetes is probably overkill for your situation.

  4. 1

    Is there any specific reason why you even tried to build your won k8s cluster instead of running it on cloud providers like AWS or GCP? Nevertheless, I think you would be better off to start with pre-packaged DevOps tools that are coming from like Gitlab or Travis etc. If you absolutely need k8s based CD/CI pipeline have a look argo-cd ( https://github.com/argoproj/argo-cd )

Trending on Indie Hackers
Getting first 908 Paid Signups by Spending $353 ONLY. 24 comments I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments How I Sourced 60% of Customers From Linkedin, Organically 12 comments Hero Section Copywriting Framework that Converts 3x 12 comments Join our AI video tool demo, get a cool video back! 12 comments