2 ms·
Because I can go from main.go to a load balanced, autoscaling app with rolling deploys, segeregated environments, logging & monitoring in about 30 minutes, and
by maccard 3y ago
Because I can go from main.go to a load balanced, autoscaling app with rolling deploys, segeregated environments, logging & monitoring in about 30 minutes, and never need to touch _any_ of that again. Plus, if I leave, the guy who comes after me can look at a helm chart, terraform module + pipeline.yml and figure out how it works. Meanwhile, our janq shell script based task scheduler craps out on something new every month. What started as 15 lines of "docker run X, sleep 30 docker kill x" is now a polyglot monster to handle all sorts of edge cases.
I have spent vanishingly close to 0 hours on maintaining our (managed) kubernetes clusters in work over the past 3 years, and if I didn't show up tomorrow my replacement would be fine.
- sroussey 3y agoI spent zero hours on a MySQL server on bare hardware for seven years. Admittedly, I was afraid of ever restarting as I wasn’t sure it would reboot. But still…
- viraptor 3y agoYou better invest some time in migrating away from your 5.7 (or earlier) in that case, because it's EOL already ;)
- maccard 3y agoYou still need to get mysql installed and configured though. On AWS, it's 30 lines of terraform for RDS on an internal subnet with a security group only allowing access from your cluster. For that, you get automated backups, very simple read proxies, managed updates of you ever need them. You can vertically scale down, or uo to the point of "it's cheaper to hire a DBA to fix this".
- sroussey 3y agoThere was no AWS, and there was no Terraform. I did have a shell script that would install what was needed, compile my own version of Mysql, configure it, and go.
- yellow_lead 3y agoIf you can do all that in 30 minutes (or even a few hours), I would love to read an article/post about your setup, or any resources you might recommend.
- maccard 3y agoI've just done it a dozen times at this point. Hello world from gin-gonic [0], terraform file with a DO K8s cluster [1] and load balancer, and CI/CD [2] on deploy. There's even time to make a cuppa when you run terraform. We use this for our internal services at work, and the last time I touched the infra was in 2022 according to git [0] https://github.com/gin-gonic/gin https://github.com/gin-gonic/gin [1] https://gist.github.com/donalmacc/0efbb0b377533232da3f776c60690869 https://gist.github.com/donalmacc/0efbb0b377533232da3f776c60.... [2] https://docs.digitalocean.com/products/kubernetes/how-to/deploy-using-github-actions/ https://docs.digitalocean.com/products/kubernetes/how-to/dep...
- yellow_lead 3y agoThanks! Does DO K8s come with sufficient monitoring / logging or do you add anything?
- yolo3000 3y agoYou can just deploy other applications to Kubernetes, for example you can deploy this operator https://prometheus-operator.dev/ https://prometheus-operator.dev/ and you get Prometheus and Grafana running with a bunch of dashboards already created. Then you annotate your pods to tell Prometheus what to scrape, and you got monitoring. It also comes with AlertManager for alerting. Same for logging, you deploy Elasticsearch and Kibana and you're good to go.
- maccard 3y agoAs the other commentor said, you can deploy Prometheus/grafana into the k8s cluster and it pretty much does what you want it to do.
- flemhans 3y agoYou'll need to touch it again. These paid services tend to change all the time. You also need to pay them which is an event.