13 ms·
MRSK vs. Fly.io
- pictur 4y agoMarketing is truly an art. Although there are thousands of projects on this subject, the man can share wonderfully as if he has discovered something new. I appreciate.
- chuankl 4y agoI am new to these kinds of lightweight low-complexity deployment systems. Can you point me to a few other good projects? Thanks!
- endisneigh 4y agoDocker swarm, nomad
- stepbeek 4y agoNomad requires a control plane that you actively maintain though. I’d argue that running a container on a VM is significantly simpler.
- stavros 4y agoI wrote one: https://gitlab.com/stavros/harbormaster https://gitlab.com/stavros/harbormaster
- 1ba9115454 4y agoI'm surprised 37signals built MSRK as an alternative to Kubernetes. They stated 2 reasons. Deployments to K8s are slow. K8s is hard to setup on bare metal.
- datadeft 4y agoAfter they argued that k8s is better than AWS. ¯\_(ツ)_/¯
- pc86 4y agoJust because something is hard to use and slow doesn't mean it's worse than AWS.
- lobstrosity420 4y agoHow would you say that both statements can’t be true at the same time?
- datadeft 4y agoSure they can. I was just watching the video DHH put online about this new project and it was quite good seeing copy pasting IP addresses to YAML files still excites some people or think that this is somehow on par with a serverless offering to any cloud company.
- tstrimple 4y agoIt feels like so many people who complain about the cloud expense and complexity are only ever using VM based solutions and ignore all of the capabilities you get out of the box using managed or "serverless" services. When you treat the cloud like just another data center but someone else manages it for you you're likely not going to have an optimal cloud based solution and of course it's going to be more expensive. If you're building a simple app, using Functions as a Service along with serverless document based storage solutions will enable you to have a very cost effective cloud deployment which includes so many things out of the box like the ability to scale globally without having to change your application architecture. For my small hobby projects, this amounts to a few dollars a month per application as the only cost which isn't purely consumption based is disk space for the database. I built an application for a small company (around 10k MAU) which costs them around $40 / month using these tools. Yeah, they could be on a small VPS somewhere with the same performance characteristics for the current user load. But then I would have had to build in all of the things I get from managed solutions myself. I haven't had to think about patching my server OS in years.
- maxmcd 4y agoI believe 37Signals is replacing their Capistrano-based deploy for Basecamp with MSRK. It seems they're keeping their k8s deploy setup for Hey. (Just what I'm inferring from the first two paragraphs here: https://world.hey.com/dhh/introducing-mrsk-9330a267 https://world.hey.com/dhh/introducing-mrsk-9330a267)
- mdasen 4y agoThe third paragraph ends: "With MRSK, we can deploy a new version of HEY in as little as 20 seconds." They didn't say that they're replacing their k8s setup for Hey explicitly, but they go on to say the reason they wrote MRSK is that they like the advantages of containers while getting lower complexity and being able to use their bare metal hardware. It seems like they want to go in that direction.
- FridgeSeal 4y agoAzure, AWS (and I therefore assume GCP) now have K8s products where can BYO own compute, and they’ll manage everything else. Best of both worlds, no?
- ofchnofc 4y ago[dead]
- davedx 4y agoHe said it in the YouTube video he made. They explicitly estimate they're going to save 7M/year moving Hey to MRSK
- ofchnofc 4y ago[dead]
- mr_ndrsn 4y agoYes, we're actively de-k8s/de-clouding all workloads, including Hey, with mrsk as the pattern. We've started with simple apps and moved up our complexity tree, updating mrsk as we go. My co-worker, Farah Schüller, wrote up a good summary of things so far: https://dev.37signals.com/bringing-our-apps-back-home/ https://dev.37signals.com/bringing-our-apps-back-home/
- Thaxll 4y agoSuch a terrible idea, let's build something that everyone else has a solution for, we're on our own with our custom solutions that no one else know or use. We'll see how many years it will take them to come back to Kubernetes or equivalent. And the argument k8s is too complicated so build our own looks really bad from an engineering perspective. When you look at the issues: https://github.com/mrsked/mrsk/issues/44 https://github.com/mrsked/mrsk/issues/44 you can some see trivial shortcoming that has been solved for years by other solutions.
- throwaway110535 4y agoSame could’ve been said for Rails…
- mbreese 4y agoHonestly, the same could have been said about K8s when it was started too. There’s nothing wrong with multiple projects in a space. It’s a big market with different niches.
- firemelt 4y agoAs an engineer reading this makes me feel ashamed
- datadeft 4y agoAnd use IP addresses like it was 1999 again. Your IP addresses belong to exactly one location, the DNS server's config. Using a non-type safe configuration language is also meh. I am not sure why most people are unaware of Dhall...
- akvadrako 4y agoDeploys with k8s are faster than most of the competition. When your process is optimized you can expect to go from code change to updated UI in about 5 seconds.
- gurrone 4y ago... and mrsk is imperative compared to the declarative approach of swarm and k8s. Especially if you go all in on gcp and use gke + config-connector + fluxcd or argocd and all the other controller, it takes time to know and understand how successful your latest change was. In the end k8s + controller is a huge asynchronous reconciliation loop. It might succeed to apply your changes at some point in time, but you've no idea when it starts and when it ends. That often sucks and takes a lot of time. And even more time if you've to figure out which change failed and why and if it's the final state already. Some older dudes with grey hair might remember cfengine and its eventual consistency approach.
- chrisweekly 4y ago"vs." (versus) is misleading; TLDR Fly.io likes and claims alignment with MRSK, which is 37signals/DHH's new mechanism for managing dockerized apps with a strong "get off the cloud, run it locally" story.
- dcre 4y agoSecond half is a comparison!
- stingraycharles 4y agoYeah they’re completely and totally different things. Fly.io is actually hosting servers / services, while MRSK is basically a bunch of scripts to deploy things using Docker containers. It’s like comparing AWS with Chef. Maybe there’s some overlap in philosophy, but that’s about it. Maybe fly.io is just using it as a way to do a bit of marketing.
- deleted 4y ago[deleted]
- paxys 4y agoA head to head comparison makes some amount of sense. Fly.io is a platform-as-a-service provider, and natively handles stuff like like building/storing images and orchestrating your services across their DC. MRSK is a direct competitor to Fly's own orchestrator, and is meant for use when hosting on your own hardware or on a VM rented from an infrastructure provider. So it's still a "use either A or B" situation. I guess a better title would be – Hosting on the Fly.io platform vs. on your own servers/VMs with MRSK.
- sergiotapia 4y agoSeems like Fly is trying to borrow some thunder here haha
- PKop 4y agoThat's them being respectful, but make no mistake the point of the blog post is "vs"
- dzonga 4y agosomething to note DHH is a beast. MSRK seems most of MSRK was written by him alone - https://github.com/mrsked/mrsk/commits/main?after=83dc82661b8a02dd1fbb0ee91261104cee127862+594&branch=main&qualified_name=refs%2Fheads%2Fmain https://github.com/mrsked/mrsk/commits/main?after=83dc82661b... his output is crazy. that's why he gets the big bucks
- deleted 4y ago[deleted]
- tiffanyh 4y agoI think what’s more shocking is they were still using Capistrano for the past ~17 years. https://world.hey.com/dhh/introducing-mrsk-9330a267 https://world.hey.com/dhh/introducing-mrsk-9330a267
- atonse 4y agoI sorely missed Capistrano all these years I moved off rails. The closest the elixir ecosystem had to it (that I found) was edeliver. So why fix something that ain’t broken?
- faizshah 4y agoInterestingly there has been a resurgence of the Capistrano approach in the PHP community with ansistrano: https://github.com/ansistrano/deploy https://github.com/ansistrano/deploy That’s Capistrano v2 implemented in Ansible. Honestly been tempted just to try it on a side project for fun.
- malinens 4y agoAt my work we use Capistrano for PHP projects. It does not matter in which language project is written. You can still use ruby Capistrano and it works good enough
- rsanheim 4y agoThis is a great point, and something that I think of often as someone who has been building rails apps for almost 20 years. Once MSRK has gotten "good enough" for whatever Basecamp needs and DHH has moved on, how many other folks with the dedication and skills will help take over when maintenance and weird edge cases surface? So far the rails community has been strong enough where this _usually_ isn't an issue, but it definitely is a real concern. You can see the impact of this in some of the recent asset bundling solutions DHH spiked out and then mostly left to the community, where things like js-bundling and css-bundling are close but not completely solid for a bunch of use cases.
- bkazez 4y agoI recently migrated a small Rails project (16,000 monthly users) from Heroku to Helm/Kubernetes, after having tried Fly.io and everything else. It was easy, and I like the peace of mind of zero-downtime deploys and non-beta infrastructure. Cost is comparable to Heroku. My writeup, in case it helps others: https://www.vmii.org/blog/2023/03/12/kubernetes/ https://www.vmii.org/blog/2023/03/12/kubernetes/
- number6 4y agoThanks for your writeup I am thinking of moving our Django Apps to kubernetes
- robertlagrant 4y agoThanks for this. Having tried similar with AWS, and having to specify security groups, static IPs, etc etc with many annotations in EKS, that Google Cloud version looks refreshingly simple.
- selcuka 4y agoI was going to ask "why", but you already explained it in your writeup: > The prevailing wisdom is that Kubernetes is overkill for a small Rails/Elasticsearch app, but overkill is my life philosophy.
- loveparade 4y agoI'll never understand these arguments against Kubernetes and its complexity that are so prevalent on HN. Yup, k8s has a learning curve, just like any new technology. You'll need to spend a couple days understanding it. But once you've grasped the abstractions it's actually quite easy to setup, operate, and manage, even for small side projects. I'd pick it any day over "third party magic" that is a black box and I have no control over. It feels like many developers these days are so spoiled by magic services that they are unwilling to even spend a few days going deep into something. Everything has to work in minutes. Next, what inevitably happens is that services shut down, pricing changes, or something stops working, and they have no way to debug it or move off it. And then we get customer support complaints and posts on HN about it. These developers look for the next shiny 3rd party service that solves the problem immediately and repeat the cycle, without ever learning anything that helps in the long term.
- rozenmd 4y agoI wish there was something like MRSK for deploying generic Dockerfiles onto VMs from scratch, without the mess of Kubernetes or needing to use Rails. Like, provision Hetzner -> pass the IP address to the tool + a Dockerfile -> your image Just Works on the server and restarts if it crashes.
- nwienert 4y agoDocker Swarm is very underrated, more for multiple apps but you can of course just have one.
- jordemort 4y agoI think this is what MRSK is? There's no Kubernetes. It even installs Docker for you.
- jahsome 4y agoI may be ignorant but doesn't that scenario you described encapsulate how MRSK functions? From the MRSK readme[1]: Connect to the servers over SSH (using root by default, authenticated by your ssh key) Install Docker on any server that might be missing it (using apt-get) Log into the registry both locally and remotely Build the image using the standard Dockerfile in the root of the application. Push the image to the registry. Pull the image from the registry onto the servers. Ensure Traefik is running and accepting traffic on port 80. Ensure your app responds with 200 OK to GET /up. Start a new container with the version of the app that matches the current git version hash. Stop the old container running the previous version of the app. Prune unused images and stopped containers to ensure servers don't fill up. --- 1. https://github.com/mrsked/mrsk#readme https://github.com/mrsked/mrsk#readme
- andrewmutz 4y agoI don't think you need to use rails to use MRSK
- stavros 4y agoI wrote something to do just that: https://gitlab.com/stavros/harbormaster https://gitlab.com/stavros/harbormaster SSH into the server, run the Docker container, give it a config file with the images you want to run, and it handles everything else automatically.
- ofrzeta 4y agoWow, the MRSK homepage is truly Web 1.0: https://mrsk.dev/ https://mrsk.dev/
- paxys 4y agoI don't care about the lack of design frills on a webpage (in most cases it is preferable), but having to make sense of a wall of text stretching from edge to edge of a 4K screen is where I draw the line. Adding one line of CSS to set more readable column widths should be the bare minimum.
- jrockway 4y agoWhy should the designer pick how wide you want the text? You are the one who knows what you like, and you can resize the browser window.
- quest88 4y agoWhy should the designer design. Brilliant.
- deleted 4y ago[deleted]
- handsclean 4y agoThis is actually why I serve soup on a plate. Only my guests know what bowls they like, and they can pour the soup into a bowl of their choice.
- e12e 4y agoBecause the designer of today needs to wear the hat of yesteryear's typesetter (among many other hats)?
- tasuki 4y agoDo you resize the browser window differently for each website you visit? I want my text no wider than 80 characters, but I like the images to be potentially much wider than that. What is your solution?
- ofrzeta 4y agoI'd really like something like platform.sh as open source. I'd be willing to contribute as well :)
- hankmh 4y agoHave you checked out Dokku [0] or others like it? If so, what do you perceive as the gaps between Dokku and Platform.sh? I ask as an employee of a PaaS (not Platform.sh). So I'm curious for discovery and learning. [0] https://dokku.com/ https://dokku.com/
- ofrzeta 4y agoI tried it once and concluded it wasn't good enough but I don't remember the specific gaps. Now that I browse the docs it actually looks quite powerful, so I guess I will have to take another look. Other contenders are CapRover and Coolify that I just recently got to know here. I guess it would make more sense to contribute to one of these projects than start a new project. What PaaS are you working at?
- hankmh 4y agoI work at Aptible. We've been around for about 10 years, have about 300 customers, all companies that prioritize reliability, scalability, and security. Many are late stage startups/recently minted unicorns....but nobody has really heard of us. If you want I can hook you up with an extended trial, beyond what's offered on the website. I'd love your feedback. We aren't open source, though we have considered it. Maybe your feedback can help push us over the edge. My email is henry AT aptible.com. Same offer goes to anyone here. Feedback would be really valuable to me personally.
- mgz 4y agoDokku is great, I switched to it from Capistrano and never looked back.
- netcyrax 4y agoCheckout CapRover (https://caprover.com/ https://caprover.com/)
- kungfufrog 4y agoCouldn't something like this be a few hundred lines of Ansible? Not trying to be intentionally negative but I don't really get the use case as I feel this is a pretty well established process by existing tools for server automation and provisioning.
- intelVISA 4y agoYeah not sure I see the value prop here it's just run of the mill Docker glue?
- nine_k 4y agoAnsible is Python, and MRSK is Ruby. Each appeals to their own ecosystem; switching between the two is a noticeable cognitive load. Also, it could be implemented using Ansible, but it has been implemented in MRSK. A serious difference if you plan to count on someone to keep it updated and supported.
- gtirloni 4y agoSwitching between Python and Ruby is a noticeable cognitive load. However, you barely touch Python while using Ansible.
- jillesvangurp 4y agoIt's all yaml files. The amount of python you touch is basically zero indeed. Same with msrk as far as I can see.
- nickjj 4y agoPretty much. I've been using Ansible with Docker Compose since 2015. I can set up a full server with all of the bells and whistles in about 20 lines of inventory configuration. Behind the scenes there's a bunch of portable and generic roles that work for baseline "server level" components. I've done this now for dozens of companies, it's a tried and true model with an easy way to customize things if needed. Ansible sets up the server, Docker Compose runs the apps (stand alone `docker compose` commands, not the Ansible module) and git is used to deploy everything.
- nathants 4y ago(movie trailer voice) in a world where backend is a single binary and frontend is a single html file… who needs containers or complicated devops?
- intelVISA 4y agoImagine how many jobs that'd obsolete... you'd probably automate more devs than ML ever could!
- emmelaich 4y agoI'm curious about the name. Is it from Maersk the Danish shipping company?
- say_it_as_it_is 4y agoRight
- strzibny 4y agoIt's not a really apple to apple kind of comparison. MRSK won't handle your load balancer, SSL, etc. Btw if you are interested in Rails config for Fly.io, I have one: https://businessclasskit.com/docs/how-to-deploy-rails-sidekiq-fly-io/ https://businessclasskit.com/docs/how-to-deploy-rails-sideki...
- riffic 4y agofly.io's been a little under my radar but are they the new DigitalOcean or something?
- WaxProlix 4y agoDepends on what you use DigitalOcean for. Fly historically provided a network of edge serving and some compute, and has recently taken in a monster pile of Heroku free tier (and partial free tier) refugees, whose needs don't really align with their original core business. I've not been following much, but it seems like they're in a transitory period. For what it's worth, "lots of new interested customers" is nowhere near the top of the list of Bad Problems To Have In Business, I think, so they're probably fine medium term. Just the growing pains and possibly unwanted pivoting -- and monetizing the freebies -- might be an issue for a bit.
- the_gastropod 4y agoI’d categorize fly as more akin to Heroku or Render than DigitalOcean.
- subarctic 4y agoInteresting to see fly comparing themselves to an open source project. I guess they legitimately think it's cool and want to see mrsk catch on? I'm not sure what the marketing angle is here (and "competitor vs us" is such a common thing that it's hard not to think of the marketing angles here)