4 ms·
Everything is assembly, that's how your CPU works. If you run C code, rust, go whatever you have to Target an architecture so the compiler can generate the corr
by stevemk14ebr 5y ago
Everything is assembly, that's how your CPU works. If you run C code, rust, go whatever you have to Target an architecture so the compiler can generate the correct assembly instructions. Even python or js interpreters must be recompiled per each architecture you wish to run those languages in. Lambda doesn't change that, as the comment above says its just a container
- aynyc 5y agoThe whole point of container is to abstract away the underlying OS & hardware. If you need CPU architecture specific code, running it on lambda seem a bit pointless to me.
- monocasa 5y agoContainers are more about abstracting away kernel state tables, but not deeper env like processor arch. You can see this in how there was a lot of work into deploying aarch64 containers over the past year to support M1 docker. And lambda is more about changing the process lifecycle from traditional always using resources. Sort of the inetd for hyperscalers.
- aynyc 5y agoThe whole arch64 and docker is my point. I use docker to abstract that pain so I don’t have to care about (to a certain degree). If all of sudden, I need to worry about my underlying arch, then I might as well run on VMs. For lambda, it’s more of a micro-OS anyway than a generic docker container.
- monocasa 5y agoDocker explicitly doesn't abstract aarch64. That's why it took tons of work to build up the ecosystem this far and even then and still you'll come across public images that aren't multiarch.
- viraptor 5y agoI'm not sure what you mean by not caring about underlying arch. With docker you use an arch-specific image. The author may transparently provide multiple arch versions of the image, but I wouldn't call it abstracting. (not in the sense fat-binaries do for example) Specifically, if you then make your own app image on top of the base one, it will again need to be built for each architecture separately.
- detaro 5y agoHow does docker abstract arch64 for you?
- __turbobrew__ 5y agoThe default docker runtime does not run the containers in a VM but instead on top of the host kernel using namespaces. In this case the kernel which the container utilizes is the same kernel running the rest of the system. The container is limited by the CPU architecture and configuration of the underlying kernel. If your container runtime uses an emulator (say QEMU) you are able to run containers which do not match the host system, albeit at a slower speed than running the container using a matching architecture and namespaces.
- imtringued 5y agoHere is what you want: https://blog.cloudflare.com/webassembly-on-cloudflare-workers/ https://blog.cloudflare.com/webassembly-on-cloudflare-worker...