Evolution of code deployment tools at Mixpanel
engineering.mixpanel.com
engineering.mixpanel.com
service_binary(
name = "foobar",
srcs = ["foobar.jsonnet"],
deps = ["//jsonnet/service.jsonnet"],
images = ["//a:image"],
)
Then make it possible to create a class of `*_test` rules that would start up a bunch of docker containers in the same network topology they would exist in prod, run your test in the same netns, then clean everything up. It could look something like this: cc_integration_test(
name = "...",
services = ["//a", "//b"],
srcs = ["main.cc"]
)
There's some BazelCon talks about people doing similar stuff but not actually open sourcing their code.P.S. if you use rules_docker please feel free to open a PR to add your company to our README: https://github.com/bazelbuild/rules_docker/#adopters
> service_binary
(and we are using rules_docker, and love it! Added a pr, gotta look into the CLA stuff (would like to do it from employer side, but that will have to wait until monday at least))
Another thing you could do is generate environment variables similar to what kube does: https://kubernetes.io/docs/concepts/services-networking/serv...
You also did it in a way that ignores all insecure cert warnings for requests from other libraries too: https://github.com/mixpanel/mixpanel-python/pull/102
kube was originally meant to abstract the datacenter, is there anyone who's abstracting the globe/internet yet? I'd love a geo-kube abstraction where based on annotations or something I could provision deployments/pods to arbitrary geographic locations. I want a scale-to-zero node-pool in every region, and one kube master api for the world.
> I want a scale-to-zero node-pool in every region, and one kube master api for the world.
Personally, I'd generalize this to: "I want to describe the reliability requirements and configuration for my software and have an automated system solve for where, how many, when, and how to route to it"
I want to have something where I can say "I need to have high availability, lowest latency, and X GB of RAM and Y cores" and have a system automatically schedule me wherever compute is cheapest while also intelligently routing traffic to my servers based on client origins.
For most use cases though what you're talking about will work and you can do it today with just setting up a VPN to have a flat internal network topology.