Introducing execonnect: Access Private HTTP Services from exe.dev

execonnect is a way to let your exe.dev VMs connect to HTTP services, even if those services aren’t on the public internet. You run execonnect on the machine hosting the service (or on any machine that can access the service), and this establishes a link between your service and exe.dev. From that point on, you can configure integrations.

For example, at exe.dev, we run a Victoria Metrics service inside of our network. I’m running execonnect inside the VM, and there’s a “victoria” integration in exe, and I can access our metrics. I configured it as a team integration, so it works for all of my co-workers as well.

Diagram: inside the exe.dev production network, a monitoring VM runs Victoria Metrics and exe connect. exe connect dials out to the exe.dev exe connect switchboard. On my development VM, a Shelley session asked to “use the victoria integration to build a distribution of our disk usage” runs curl, sending GET /query to victoria.int.exe.xyz; the exe.dev integrations proxy forwards it through the switchboard to exe connect, which sends GET /query to Victoria Metrics. Caption: exe connect dials o...

How does it work? Execonnect is a Go program with a userspace wireguard. On the exe.dev side, our anycast proxy network works as the other end of that wireguard tunnel. Execonnect—the part which you may run in your own infrastructure—is open source, of course, so you can see what it’s doing.

参与讨论