7,439 karma · joined March 31, 2016
Is this effectively very similar to Atuin?
After adopting actuated, they went down to 4 minutes.
Since then Patrick's been moving AMD64 builds over and seeing good improvements on those builds too - and most importantly, whilst they are paying us for a service, they're saving money too.
Alex
"k2d - Kubernetes to Docker Translator"
The use-case is for edge and seriously constrained devices.
Not quite Docker, not quite K3s. Have a read of the docs and license - what do you think?
We were able to run the exploit inside of a Firecracker VM with KVM, and of course Docker, K8s etc has the same set of issues.
Short story - if you're running an AMD CPU, check the exploit (it's very quick) and update your OS.
Feel free to tweet to @selfactuated or @alexellisuk with questions and comments.
We have a tech preview of our work with actuated and we're looking for self-hosted GitLab customers to reach out and try it.
Feedback would be appreciated via Twitter or the form on the blog post: https://twitter.com/alexellisuk
Thanks for the support
If you'd just like to know about why we think Firecracker is the right option for CI, check out my talk about the tech and how it compares to containers at Cloud Native Rejekts Amsterdam - https://www.youtube.com/watch?v=pTQ_jVYhAoc
Alex
This was one of those blog posts that I had on my list for a long time. I've finally gotten around to writing it to help a new customer onboard.
What else do we need to consider adding to the overview/guide?
Alex
I had this question today and it's been covered before, but a long time ago. So here's my latest and most up to date advice:
> When you look under the hood at an OpenFaaS function, you’ll find that it’s represented by a Kubernetes Service and Deployment object. That’s the same primitive that most Kubernetes users will be using to deploy just about anything they build to their cluster.
> So if a function is just a Kubernetes Deployment, how easy is it to deploy an existing container to OpenFaaS?
I know a lot of companies use our free Community Edition (CE) in production. If you'd like to support the project, please consider becoming a sponsor via GitHub, checking out what OpenFaaS Standard/Enterprise offers over and above CE or sending us a PR to the ADOPTERS.md file in the openfaas/faas repo at the very least.
Thanks,
Alex
> We were able to achieve these improvements because the second generation execution environment is based on a micro VM. This means that unlike the first generation execution environment, which uses gVisor, a container running in the second generation execution environment has access to a full Linux kernel.
They moved to microVMs.
> Then we switched to the second-generation execution environment and it sped up our boot time by 4x!
And they were 4x faster to start-up than containers with gVisor were for at least this one customer.
And of course, there's nothing stopping you visiting the releases page - or installing my tap and getting it from Brew!
I'm particularly interested because I've done a lot to explain and use Firecracker through my own content and products - a lab to convert a Docker image to a microVM - https://github.com/alexellis/firecracker-init-lab
A deep-dive webinar on Linux internals and microVMs with myself and Richard Case - we've both built projects/products with Firecracker - Liquid Metal and actuated - https://www.youtube.com/watch?v=CYCsa5e2vqg
More recently I spoke at Cloud Native Rejekts on - Face off: VMs vs. Containers vs Firecracker - including why DIND and Privileged containers are a poor fit for CI - https://www.youtube.com/watch?v=pTQ_jVYhAoc
We wrote a simple Go CLI to retrieve and format this data from the GitHub API. My favourite thing is being able to run it in a GitHub Action - screenshot at the end of the post.
> Whenever GitHub Actions users get in touch with us to ask about actuated, we ask them a number of questions. What do you build? What pain points have you been running into? What are you currently spending? And then - how many minutes are you using?
> That final question is a hard one for many to answer because the GitHub UI and API will only show billable minutes.
We have a tech preview of our work with actuated and we're looking for self-hosted GitLab customers to reach out and try it.
Feedback would be appreciated via Twitter or the form on the blog post: https://twitter.com/alexellisuk
Thanks for the support
Alex
> I often deploy faasd with NixOS on a Raspberry Pi and to the cloud, so I build binaries for both x86_64 and aarch64. The build usually runs on the default GitHub hosted action runners. Now because GitHub currently doesn't have Arm support, I use QEMU instead which can emulate them. The drawback of this approach is that builds can sometimes be several times slower.
I wrote up a quick guide back in early May - seems relevant to this article as one of the newest users couldn't get Cloudflare to work with TCP how he wanted.
https://inlets.dev/blog/2023/05/04/expose-local-tcp-ports.ht...
> A serverless approach means writing efficient, stateless functions that respond to events and can be scaled independently. They only need to run when an event is available and can be scaled down to zero when not in use. Fortunately, most platforms that support websockets, also support webhooks for responding to events.
Code repo for this write-up: https://github.com/alexellis/discord-to-zoom/
Folks might also be interested in two free resources:
1 - K3sup https://github.com/alexellis/k3sup - the author mentions HA K3s - K3sup is an easy way to get that using SSH. It's also a good pairing for K3s with Raspberry Pi 2 - Kubernetes at the Edge with K3s (CNCF / LF course) - I was commissioned to write this and I talk a lot about the differences and also the origin story of K3s and what Darren was aiming for.
Have fun with Kubernetes - whichever flavour you go for.
We don't think that Docker in Docker is safe for CI, neither is mounting a Docker Socket.
We also think that managing runners is boring and time-consuming.
So we've automated it, and secured it with Firecracker.
This article talks about some of the challenges we've faced, and lessons we've learned working with pilot customers so far.
Alex
I asked it to quote Marcus Aurelius, then for 5 more similar quotes - it didn't get the context that I meant from the same person and found 5x others. But otherwise it was very snappy and I've seen similar results from ChatGPT.
For "Write an openfaas function with the python3-http templates to convert from text to speech" (something I saw a community member share) - it did a much worse job (just showing how to access Amazon Polly) - it also didn't have any styling or code blocks.
I'd be interested to know more about the model that's being used here.
Alex
Co-pilot has been handy for generating structs and boilerplate code.
Where I think these models are currently interesting is in discovering conventions - libraries - approaches. Like an outline, which we know is probably broken - but enough for us to squint at and then write our own version.
Kind of like browsing an OSS repository to see "how it works" for inspiration.
Someone asked ChatGPT to write an OpenFaaS function for TTS - he needed to prompt it with the template name, and even then it got the handler format wrong. But it did show us a popular library in Python. To find the same with Google - we'd have to perhaps scan through 4-5 articles.
https://twitter.com/Julian_Riss/status/1641157076092108806?s...
tail -f /var/logs/* just doesn't work
That's why we have fstail.
Contributions welcome - MIT licensed.
You are technically right that Docker changed their stance since their original announcement.
But they committed to remove all images within 30 days, and I think you'll find that's the understanding that many had - in fact there were hundreds of Hacker News comments because of this.
We brought it forward so we could handle the fall-out outside of KubeCon which would fall during the date of the deletion.
Since their original statement they have done a U-Turn and won't delete images from open source organisations.
But it's already too late - many maintainers like myself have already had to take action. Because we took Docker Inc. at their word.
Hope this helps?
Alex
crane cp docker.io/openfaas/gateway:0.10.0 ghcr.io/openfaas/gateway:0.10.0
If you've not used it yet - do take a look. Crane doesn't pull the images into a local Docker library for re-tagging and re-pushing.
https://github.com/google/go-containerregistry/blob/main/cmd...