446 karma · joined October 21, 2015
I ended up with a mix of nix and it's vm build system which is based on qemu. The issue is too tied to NixOS and all services run in the same place which forces you to manage ports and other things.
How I wish it could work is having a flake that defines certain services, these services could or could not run in different µVMs sharing an isolated linux network layer. Your flake could define your versions, your commands to interact and manage the lifecyle of those µVM's. As the nix store can be cached/shared, it can be provide fast and reproducible builds after the first build.
In a related note, I was checking for tech meetups (at meetup.com) in Missoula and Bozeman and except for Montana programmers, there's no much there. There are a few slack communities but nothing specific for technologies or other groups.
I think the biggest hurdle to implement a solution like this is your application MUST be a 12 factor app which sadly is not the case from what I've seen. Many devs hardcode values when shipping their code and containers which make it really difficult to add nodes to a DAG. Had this change, SDLC testing would be waaay easier.
In the same space, labeling of all services is a thing. As you are annotating it can be tracked but if you had different gateways or destination routes or other things that need to be tweaked at the mesh level, it could be daunting to track it. In my case, I ensure the whole mesh representation of a version could be tracked by a label so if you had a app=vote1,version=release-4,feature=shiny you could track the shiny components across the whole cluster.
Another hurdle is you are tied to a service mesh implementation. Istio is ok but it can be a beast. It also constraints your org to implement other networking alternatives which is something we wanted to explore.
I do like the project uses Nix =).
I recall the bug/cheat to duplicate spell books. Those fireballs and lightning chains at max level could wipe everything in seconds.
- the application has hardcoded paths.
- the service discovery isn’t dynamic
- the branching strategy doesn’t account for edge cases.
- the build process doesn’t account for edge cases.
- and many other things that are related to bad practices.
I recall an old boss saying he wanted stable dev environments which sounded an oximoron. I’ve always aimed to have an environment where I can reproduce a desired behavior wether is a faulty or not.
I discourage this behavior but there could be many cases when this could be useful.
A ton of projects have stopped working which forced to fork or replace completely due maintainers not caring anymore, getting sick or just switching priorities. Why is this different. For all the licenses change cases, contributors who disagreed forked and stablished a new route. This is 100% the spirit of the license.
Pretty much Chaccu. Free festival. It's usually in June. You can make a trip of it going to Paracas, Ica's dunes, Nazca Lines and finish in Pampas Galeras. Keep in mind in Galeras there's nothing. Just a post of the National reserve and that's it. It's also at 4K meters of altitude so walking for hours could be a whole experience.
I personally like cuelang's philosophy but it could become a little messy when you have to iterate and handle user inputs in large codebases.