Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: PENVM – Programmable, extensible, network virtual machine (penvm.dev)
9 points by j4m on May 17, 2023 | hide | past | favorite | 5 comments
The PENVM platform provides the building blocks to facilitate the leveraging of networks: https://github.com/penvm/penvm#what-does-penvm-offer.

There is no lack of frameworks and tools for working with servers, communicating over the network, and processing. What PENVM does is make this simple and easy to use, reuse, and share.

Low-level concerns with networking and communication are not exposed. Network setup and management is simple. Communication is uncomplicated. And integration within applications is smooth with freedom to apply as needed.

PENVM provides the means to get up to speed quickly with little hassle. This kind of development does not need to be difficult anymore.




Can you explain what it does?


To build applications that run across many machines in a network it is typically necessary to write low-level code (sockets), set up servers, create protocols for communicating, etc. This can be time consuming, especially when all you want to do is write an application, not a library. PENVM makes all of this work much easier to do.

As an example, the pvx tool (https://github.com/penvm/penvm-pvx) allows a user to run commands on a collection of machines and get the results. There are other tools that do this (e.g., dsh, parallel). What PENVM does is make this kind of application easy to write. See how much code the pvx tool is. Not much at all. Most of it is actually processing the command line arguments.

pvx is just one example. There are many other situations when distributing work across many machines is required. Any application that needs to use many machines (to reduce the time to get a result!) can leverage PENVM. You can see this with the Jupyter examples (https://github.com/penvm/penvm-jupyter-demos) and some videos (https://penvm.dev/docs/examples/jupyter/jupyter-demos-videos...).

One of the key features of PENVM is that the kernel (set of operations that can be executed) can be extended, or even a new one put in place, to offer new custom functionality. These kernels can be shared, too.

More examples will be coming to demonstrate how PENVM makes this kind of work easier.


I'm trying to figure it out too. My initial assessment is that it's a service that gets deployed across a fleet of participating clients so they can easily communicate without the developer having to bootstrap all of that manually. However, looking at the docs so far, this is a much more complicated solution than to deploy a Wireguard mesh using docker-compose. Or something like NetMaker. I may be wrong about the use-case though. I'm interested in learning more about what problems this solves better than other solutions.


The perspective of PENVM is the application. It is meant to tie processes of an application (just one) together to produce results.

So it is different from wireguard mesh which is for setting up VPNs.

It is different from docker compose because it is works within the application. One area that does seem similar is that resources are booted on behalf of the application. However, there is no need for docker or containers.

It looks like netmaker is about actual networking, a-la VPNs and the like. So, it is different from PENVM.

From a Python example, suppose an application has a function "calculate". With PENVM, an alternative function named "calculate" could be provided (in its place, taking the same arguments) which runs across a network of machines (as specified in a .penvm configuration file). This would be transparent to the application itself.

I think the pvx tool (https://github.com/penvm/penvm-pvx) actually demonstrates how PENVM can be used. The Jupyter demos show this as well (https://github.com/penvm/penvm-jupyter-demos) with videos (https://penvm.dev/docs/examples/jupyter/jupyter-demos-videos...).

Let me know if those examples clarify things.


FYI: Problem with "502 Bad Gateway" issue resolved for https://penvm.dev/.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: