I don't do devops/sysadmin anymore, so this would have been before the age of k8s for everything. But I once interviewed for a company hiring specifically because their deployment process lasted hours, and rollbacks even longer.
In the interview when they were describing this problem, I asked why the didn't just put all of the new release in a new dir, and use symlinks to roll forward and backwards as needed. They kind of froze and looked at each other and all had the same 'aha' moment. I ended up not being interested in taking the job, but they still made sure to thank me for the idea which I thought was nice.
Not that I'm a genius or anything, it's something I'd done previously for years, and I'm sure I learned it from someone else who'd been doing it for years. It's a very valid deployment mechanism IMO, of course depending on your architecture.
Worked pretty well in production systems, serving huge amount of RPS (like ~5-10k/s) running on a LAMP stack monolith in five different geographical regions.
Just git branch (one branch per region because of compliance requirements) -> branch creates "tar.gz" with predefined name -> automated system downloads the new "tar.gz", checks release date, revision, etc. -> new symlink & php (serverles!!!) graceful restart and ka-b00m.
Rollbacks worked by pointing back to the old dir & restart.
not surprised about the chrome part, but pretty shocked at the phone OS part. I know APFS migration was done in this way, but wouldn't storage considerations for this be massive?
Not really, because only the OS core is swapped in this way. Apps and data live in their own partitions/subvolumes, which are mutable and shared between OS versions.
The OS core is deployed as a single unit and is a few GB in size, pretty small when internal storage is into the hundreds of GB.
Clearly, there's a wildly baroque stack of abstractions meters deep that is way better than a simple, reliable, well tested, ubiquitous, idiomatic one line solution. Modern software at it's finest.
This. It is resume-driven development. Especially at startups where the engineers aren't compensated well enough or don't believe the produce can succeed.
Speaking of which, is there a Tailwind CSS equivalent for React Native? I find passing `style` objects around (ala CSS Modules) to be a pain after using Tailwind for so long in web projects.
In my career I've seen startups "shut down" and lay off the NA team.
I've seen venture capital acquire startups for essentially nothing laying off the entire product team aside from one DevOps engineer to keep everything running.
I've seen startups go public and have their shares plummet to zero before the rank-and-file employees could sell any shares (but of course the executives were able to cash out immediately).
I've seen startups acquired for essentially nothing from the lead investor.
In none of these scenarios did any of the Engineers receive anything for their shares.
Yet every day people negotiate comp where shares are valued as anything more than funny money.
The only reason I paid my yearly JetBrains subscription this year was to keep my lower price locked-in. I've been using VS Code all year. I won't renew my JetBrains subscription that I've had since 2009. Sad.
I thought you would just use another computer in your house for the flows?
My development flow takes a lot of RAM (and yes I can run it minimally editing in the terminal with language servers turned off), so I wouldn't consider running the local LLM on the same computer.
It's not about which of your computers you run it on, it's about the relative capability of any system you're likely to own vs. what a cloud provider can do. The difference is hilarious - probably 100x. Knowing that, unless you have good reasons (and experimenting/playing around IS a good reason) - not many people would choose to actually base their everyday workflow on an all-local setup.
It's sort of like doing all your work on an 80386. Can it be made to work? Probably. Are you going to learn a whole lot making it work? Without a doubt! Are you going to be the fastest dev on the team? No.
I can see how someone could misunderstand or forget what they're taught though.
reply