Required Background Knowledge

Thank you for build this incredible service. I have configured firecracker on my vm and now I want to do the same on my infrastructure. What are the step that allow me to complete the process. I am doing this for my own learning. When I hit the InstanceStart I get a new VM with bash available on the tap where firecracker binary is working. I need the next step like runtime and then execution. Also Which network topology is used at your end. is it shared network and having any vlans or anything else?

apis: firecracker/src/firecracker/swagger/firecracker.yaml at main · firecracker-microvm/firecracker · GitHub

Hey! I’m glad you enjoy the platform :slight_smile:

Can you detail what are your blocking points? I think that you will have a hard time making it work

Thank you for the response. I want to make a service like yours which allow me to get the github-repo from user and then deploy the service in firecracker-vm. I have firecracker binary running but network is not covered yet. I want to configure the network so that when I launch a vm the connectivity to the internet is configured. I checked the documentation where it’s mentioned that you can configure tan/tap, Bridge topology and you can pass the configuration while creation of VM. I want to hear from your side about the best network setup which you guys are following for the service. Also What are the steps for the application build/deployment. Do you guys are using ansible scripts or any kind of terraform or anything else which deploy the service in the VM automatically? I’m new in this field and I want to learn it. Thank you.

Hey!

You are already inside a VM with a specific setup that you don’t really control. If your goal is to learn the ropes, I would suggest to go with a simpler engine. Instead of firecracker, you could Docker: you can run the docker:dind image on Koyeb, as long as you run the Koyeb service as privileged. You will have access to a Docker daemon that you can contact to run containers.

To orchestrate your apps, you could implement an API in the language of your choice that would interact with the Docker daemon API to run containers. https://testcontainers.com/ Could be a good SDK!

Good luck :slight_smile:

I run the binary of firecracker of my bare-metal server and now i want to configure the network on the host so that my guest vms have internet access. I’ve read the kernel details where its mentioned that we can pass the IP to the VM in boot args. I want to know about the network topology which i implement. Should I go with tan/tap and use iptables for NAT. or go with the bridge. I want to make the infra for large scale customer base? Also you shared the SDK with me that allow to run the containers programmatically. What will happen when we deploy a web service on koyeb?

Build- You guys are using BuilderPack to create the Image and then you are storing it on you self-host container registry which is Harbor.

Deploy- Fetching the image from registry and running the container in the micro-vm.

are you guys doing SSH to the micro-vm first and then installing the container runtime so that image can be run on that vm?