Unikernels seem like a really interesting way to tackle certain architectural problems effectively. I wanted to dive in and explore them a bit (just scratching the surface, though) and see what they're all about.
gifkernel
is a proof-of-concept project—a small, single-purpose web app built for quick and easy deployment as a unikernel on AWS EC2.
Note: Currently tested on Linux.
- Go for the web server (tested on 1.23.4)
- Ops to create and deploy the unikernel
- Giphy API key
- Vegeta (optional - for load testing)
- Clone this repository.
- Open
config.json
and provide your information, especially the S3 bucket name. - Open
www/index.html
and add your Giphy API key. - Build:
GOOS=linux go build -o gifkernel server.go
- Run:
ops run gifkernel
then visit http://localhost:8888.
A basic load test program is available under cmd/bench.go
. You can test locally or against your deployed server.
- Ensure your ~/.aws/credentials file is setup.
- Execute the
deploy.sh
script.