I really think that’s the secret end game behind all the AI stuff in both Windows and MacOS. MS account required to use it. (anyone know if you need to be signed in to apple ID for apple ai?) “on device” inference that sometimes will reach out to the cloud. when it feels like it. maybe sometimes the cloud will reach out to you and ask your cpu to help out with training.
that, and better local content analysis. “no we aren’t sending everything the microphone picks up to our servers, of course not. just the transcript that your local stt model made of it, you won’t even notice the bandwidth!)”
Not sure what you’re doing, but if we’re talking about a bog standard service backed by a db, I don’t think having automated reverts of that data is the best idea. you might lose something! That said, triggering a snapshot of your db as a step before deployment is a pretty reasonable idea.
Reverting a service back to a previous version should be straightforward enough, and any dedicated ci/cd tool should have an API to get you information from the last successful deploy, whether that is the actual artifact you’re deploying, or a reference to a registry.
As you’re probably entirely unsurprised by, there are a ton of ways to skin this cat. you might consider investing in preventative measures, testing your data migration in a lower environment, splitting out db change commits from service logic commits, doing some sort of blue/green or canary deployment.
I get fairly nerd-sniped when it comes to build pipelines so happy to talk more concretely if you’d like to provide some more details!
just to give you the term to search for, these types of applications are called snippet managers. for example, https://snibox.github.io/
there’s a ton of them around. I don’t have a particular one that I recommend, since it’s not something I use in my workflow.
I don’t have a particular guide at the tip of my fingers, but I can share some recommendations based on my experience:
I fully expect the screen thing and the batteries bring in there constantly charging to kill the phones I’m using eventually, but it’s something I expect and accept. my octoprint phones have been fine so far, for a bit over a year 🤷♂️
The value proposition of old or used android phones as SBCs is insane! You’ve probably got some in your drawers, or can at worst buy some carrier locked ones for 30$. You get a device with better compute than a raspberry pi, with a screen, cameras, speakers, flashlight and battery attached!
Personally, I use them to run and monitor my 3d printers.
Why do you need to back up that server data? The great thing about joplin, is that the full content of your notes (and history) is distributed, like a git repo. As long as you have one device left with your notes, everything else can be bootstrapped from there. If your sync server burns down, start a new one and sync your notes to it again.
I use Firefox on all my devices and couldn’t be happier with it. I especially love how sync works: there’s options to both pull tabs from other devices, and push to them. Quite frequently I’d be just browsing on my phone and send a tab over to my laptop to deal with/read/act on when I’m sitting down at a bigger screen.
My point is, having PRs desn’t result in perfect code either. They might help sometimes, maybe 10% of the time if I’m being generous, but the rest of the time they are a hindrance. The problems people tend to try and solve with them, validation and indoctrination are better solved with a good CD pipeline, and pairing sessions.
I would recommend you avoid relying on features of GitHub, and only use features of git. You never know when you might decide to switch repo hosting providers!
With that said, you’ve got a number of options: you can use tags or branches as “labels” to choose what’s applied to what environment, or depending on the flavor of IaC you’re using, have an entry point for each environment in your code which includes and parameterizes a common “environment” module.
John Oliver take on it https://youtu.be/gYwqpx6lp_s