firecracker-containerd VS aws-codebuild-docker-images

Compare firecracker-containerd vs aws-codebuild-docker-images and see what are their differences.

firecracker-containerd

firecracker-containerd enables containerd to manage containers as Firecracker microVMs (by firecracker-microvm)

aws-codebuild-docker-images

Official AWS CodeBuild repository for managed Docker images http://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref.html (by aws)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
firecracker-containerd aws-codebuild-docker-images
9 9
2,048 1,091
1.5% 1.5%
4.3 6.1
2 days ago 3 days ago
Go Dockerfile
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

firecracker-containerd

Posts with mentions or reviews of firecracker-containerd. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-03.
  • Savings cost for self managed K8s?
    3 projects | /r/kubernetes | 3 May 2023
    My team is working on multi-cloud AWS Bottlerocket remix (Azure, GCP) with opt-in support for [firecracker-containerd](https://github.com/firecracker-microvm/firecracker-containerd) for our in-house CNCF distro, investigating microkernels applicability (tldr; they are not production-ready). We test kubernetes compat and migration plans for over 40+ cherry-picked solutions, and facing numerous compat issues for every k8s update. We do have support for Container Managed Control Planes described above, as well.
  • Multi-tenancy in Kubernetes
    13 projects | dev.to | 10 Apr 2023
    You could use a container sandbox like gVisor, light virtual machines as containers (Kata containers, firecracker + containerd) or full virtual machines (virtlet as a CRI).
  • Firecracker internals: deep dive inside the technology powering AWS Lambda(2021)
    9 projects | news.ycombinator.com | 27 Feb 2023
    There is this project, which I have never used, but seems promising. https://github.com/firecracker-microvm/firecracker-container...
  • Python 3.11 is out !
    2 projects | /r/programming | 25 Oct 2022
  • Deploying Firecracker VMs
    5 projects | dev.to | 5 Oct 2022
    , "should represent the path to a file that contains a JSON which stores the entire configuration for all of the microVM's resources" (okay this is fair enough). Also, they stipulate, "**The JSON must contain the configuration for the guest kernel and rootfs, as these are mandatory, but all of the other resources are optional, so it's your choice if you want to configure them or not. Because using this configuration method will also start the microVM, you need to specify all desired pre-boot configurable resources in that JSON.**" **File Names for the Pre-Boot Resources** (included within the greater repo here): 1. **firecracker.yaml** - Names of resources are contained here ; 'file nad the names of their fields are the same that are used in API requests' (cool) 2. **tests/framework/vm_config.json** (boilerplate config file to guide us - great) > *"After the machine is booted, you can still use the socket to send API requests for post-boot operations."* (this honestly feels clunky as a mf) ### Conclusion Somewhat of a pain in the ass (just looking through the directions); the fact that we'd have to go grab a uncompressed kernel image + file system image (ext4) is kind of a fucking hassle / burden. Was hoping for a solution more akin to Docker where it can just be spun up real quick & then deployed. But they claim that this 'jailer' feature (that they keep hyping) will **ensure** (I guess?) that whatever is done within the container will remain within the container (and not escape). I haven't seen anything that sticks out about this project that leads me to believe that it possesses that capability, but I definitely don't want to rule it out. ### Extra Documentation + Information 1. **OSv Running on 'Firecracker'** (yay more work though) - http://blog.osv.io/blog/2019/04/19/making-OSv-run-on-firecraker/ 2. **Building OSv Images Using Docker** - http://blog.osv.io/blog/2015/04/27/docker/ 3. **firecracker containerd** (this is something that's probably important for the overall mission of what we want to accomplish here) - https://github.com/firecracker-microvm/firecracker-containerd ### Firecracker Containerd **Description** - "*firecracker-containerd enables containerd to manage containers as Firecracker microVMs*" - "This repository enables the use of a container runtime, containerd, to manage Firecracker microVMs. Like traditional containers, Firecracker microVMs offer fast start-up and shut-down and minimal overhead. Unlike traditional containers, however, they can provide an additional layer of isolation via the KVM hypervisor." **They Also Identify Potential Use-Cases in the Repo Such as** 1. "*Sandbox a partially or fully untrusted third party container in its own microVM. This would reduce the likelihood of leaking secrets via the third party container, for example.*" 2. "*Bin-pack disparate container workloads on the same host, while maintaining a high level of isolation between containers. Because the overhead of Firecracker is low, the achievable container density per host should be comparable to running containers using kernel-based container runtimes, without the isolation compromise of such solutions. Multi-tenant hosts would particularly benefit from this use case.*" Really interesting feature of this repo here is: "*A root file filesystem image builder that constructs a firecracker microVM root filesystem containing runc and the firecracker-containerd agent.*" (that could save a lot of time on that whole filesystem image thing that they were mentioning prior) **Additional Links of Importance** 1. **Getting Started Guide** - https://github.com/firecracker-microvm/firecracker-containerd/blob/main/docs/getting-started.md 2. **Quickstart Guide** - https://github.com/firecracker-microvm/firecracker-containerd/blob/main/docs/quickstart.md 3. **A Root Filesystem Image Builder** - https://github.com/firecracker-microvm/firecracker-containerd/blob/main/tools/image-builder 4. **Runtime Linking Containerd** - https://github.com/firecracker-microvm/firecracker-containerd/blob/main/runtime **Documentation All Located Here** - https://github.com/firecracker-microvm/firecracker-containerd/tree/main/docs (definitely fucking needed because there's a lot here to wrap one's head around) - **Design Approaches Doc** - https://github.com/firecracker-microvm/firecracker-containerd/blob/main/docs/design-approaches.md - **Shim Architecture** - https://github.com/firecracker-microvm/firecracker-containerd/blob/main/docs/shim-design.md - **Launching 4k VMs Using Firecracker** - https://github.com/firecracker-microvm/firecracker-demo - **firectl** (CLI options for manipulating this tool from terminal ; this is important as well) - https://github.com/firecracker-microvm/firectl [damn, there's a lot that came with this here!]
  • Is Fargate just a part of ECS?
    1 project | /r/aws | 12 Nov 2021
    Exactly, it is about secure multi-tennancy. If I recall correctly firecracker doesn't replace containerd, microVMs still runs some sort of it. Anyway, you still need a base OS because container doesn't have the whole OS image. Also I think you can have multiple containers in a single Fargate task so they have to be isolated too.
  • Firecracker MicroVMs
    5 projects | news.ycombinator.com | 18 Oct 2021
    How does that compare to firecracker-containerd?

    https://github.com/firecracker-microvm/firecracker-container...

    This repository enables the use of a container runtime, containerd, to manage Firecracker microVMs. Like traditional containers, Firecracker microVMs offer fast start-up and shut-down and minimal overhead. Unlike traditional containers, however, they can provide an additional layer of isolation via the KVM hypervisor.

  • Docker Without Docker
    16 projects | news.ycombinator.com | 8 Apr 2021
    I'm really impressed by fly.io, and the candidness with which they share some of their really awesome technology. Being container-first is the next step for PaaS IMO and they are ahead of the pack.

    I aim to build a platform like theirs someday (probably not any time soon) but I don't think I'd do any of what they're doing -- it feels unnecessary. Bear with me as I recently learned that they use nomad[0] and some of these suggestions are kubernetes projects but I'd love to hear why the following technologies were decided against (if they were):

    - kata-containers[1] (it does the whole container -> VM flow for you, automatically, nemu, firecracker) with multiple VMM options[2]

    - linuxkit[3] (let's say you didn't go with kata-containers, this is another container->VM path)

    - firecracker-containerd[4] (very minimal keep-your-container-but-run-it-as-a-VM)

    - kubevirt[5] (if you just want to actually run VMs, regardless of how you built them)

    - Ceph[6] for storage -- make LVM pools and just give them to Ceph, you'll get blocks, distributed filesystems (CephFS), and object gateways (S3/Swift) out of it (in the k8s space Rook manages this)

    As an aside to all this, there's also LXD, which supports running "system" (user namespace isolated) containers, VMs (somewhat recent[7][8]), live migration via criu[9], management/migration of underlying filesystems, runs on LVM or zfs[10], it's basically all-in-one, but does fall behind in terms of ecosystem since everyone else is aboard the "cloud native"/"works-with-kubernetes" train.

    I've basically how I plan to run a service like fly.io if I ever did -- so maybe my secret is out, but I sure would like to know just how much of this fly.io got built on (if any of it), and/or what was turned down.

    [0]: https://news.ycombinator.com/item?id=26745514

    [1]: https://github.com/kata-containers/kata-containers

    [2]: https://github.com/kata-containers/kata-containers/blob/2fc7...

    [3]: https://github.com/linuxkit/linuxkit

    [4]: https://github.com/firecracker-microvm/firecracker-container...

    [5]: https://github.com/kubevirt/kubevirt

    [6]: https://docs.ceph.com/

    [7]: https://discuss.linuxcontainers.org/t/running-virtual-machin...

    [8]: https://github.com/lxc/lxd/issues/6205

    [9]: https://criu.org/Main_Page

    [10]: https://linuxcontainers.org/lxd/docs/master/storage

  • I discovered FaaS and what it changed for me
    1 project | news.ycombinator.com | 6 Feb 2021
    https://github.com/firecracker-microvm/firecracker-container...

aws-codebuild-docker-images

Posts with mentions or reviews of aws-codebuild-docker-images. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-21.
  • DevSecOps with AWS- IaC at scale - Building your own platform - Part 1
    8 projects | dev.to | 21 Mar 2024
    Based on public repository for Codebuild Image, the image base will be the Ubuntu standard 7.0.
  • Firecracker internals: deep dive inside the technology powering AWS Lambda(2021)
    9 projects | news.ycombinator.com | 27 Feb 2023
    This is basically what CodeBuild does.

    The default Docker containers that CodeBuild uses (you can create your own) and the shell script it uses to parse the yaml configuration file (mostly a list of shell scripts) are all open source and the entire process can be run locally.

    https://github.com/aws/aws-codebuild-docker-images

    https://docs.aws.amazon.com/codebuild/latest/userguide/use-c...

    Disclaimer: I work for AWS. But nowhere near the team that developed Firecracker

  • CircleCI says hackers stole encryption keys and customers’ source code
    6 projects | news.ycombinator.com | 15 Jan 2023
    Disclaimer: I work for AWS in Professional Services. All opinions are my own.

    The beauty about CodeBuild is that there is no “lock-in”. All it is fundamentally is a Linux or Windows Docker container with popular language runtimes and a shell script that processes a yaml file or you can supply your own Docker container.

    You just put a bunch of bash commands or PowerShell commands in the yaml file and it runs anything.

    The Docker container and the shell scripts are all open source and you can quite easily run them locally.

    I could see outside of AWS keeping your Docker containers for your specific build environments in a local repository and doing all of your builds inside them using Jenkins.

    https://github.com/aws/aws-codebuild-docker-images

    https://docs.aws.amazon.com/codebuild/latest/userguide/use-c...

    For a “batteries included” approach though, I really like Azure DevOps Pipelines.

    I’ve even done a couple of integrations between Azure DevOps and AWS when we had clients that are Microsoft shops.

    https://aws.amazon.com/vsts/

    For AWS, if you use CodeCommit (AWS git service), all access is via IAM and granular permissions. If you integrate with Azure DevOps, the AWS credentials do have to be stored in a separate MS hosted credential storage.

    CodeBuild also supports at least Github natively.

    I’m not shilling for AWS. I have an MS development background (.Net) and only have “DevOps” experience using AWS and Microsoft tooling.

  • Continuous Integration and Deployment on AWS - and a wishlist for CI/CD Tools on AWS
    4 projects | dev.to | 22 Nov 2022
    Docker Images provided by the CodeBuild team should be updated regularly and should support all "modern" toolkits. The open source project has some activity, but an issue for supporting newer Android versions is now open for some time...
  • Building a Flutter application for Web, iOS and Android using a CI/CD pipeline on CodeBuild – #cdk4j
    3 projects | dev.to | 14 Jun 2022
    The runtimes available and exposed by CodePipeline support Android runtime 29 – and the Docker images are provisioned using Java 8. Unfortunately, as of July 2021, the Android gradle tools (used by Flutter) require Java 11. I have created an issue in the corresponding Github (see here) but needed to find a workaround to move on – I think I’ve found one, but I hope that anyone reading this might have a better way or idea?
  • Is there a way to request a new runtime for codebuild?
    1 project | /r/aws | 28 Jan 2022
  • Run local Graviton2 builds with AWS CodeBuild agent
    2 projects | dev.to | 14 Apr 2021
    $ git clone https://github.com/aws/aws-codebuild-docker-images.git $ cd aws-codebuild-docker-images/al2/aarch64/standard/2.0 $ docker build -t codebuild/amazonlinux2-aarch64-standard:2.0 .
  • Build and share Docker images using AWS CodeBuild and Graviton2
    3 projects | dev.to | 2 Mar 2021
    This also is the place where we specify this is an AArch64 build. The managed image indicates to use a standard image provided by AWS. The source of the Graviton2 image can be found on GitHub.
  • DevOps tools you should have on your belt
    18 projects | dev.to | 22 Jan 2021
    🏗 AWS CodeBuild Local Builds - Simulate a CodeBuild environment locally to quickly troubleshoot the commands and settings located in the BuildSpec file.

What are some alternatives?

When comparing firecracker-containerd and aws-codebuild-docker-images you can also consider the following projects:

kata-containers - Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolation and security advantages of VMs. https://katacontainers.io/

cfn-python-lint - CloudFormation Linter

kubevirt - Kubernetes Virtualization API and runtime in order to define and manage virtual machines.

hello-arm

lxd - Powerful system container and virtual machine manager [Moved to: https://github.com/canonical/lxd]

saml2aws - CLI tool which enables you to login and retrieve AWS temporary credentials using a SAML IDP

buildbuddy - BuildBuddy is an open source Bazel build event viewer, result store, remote cache, and remote build execution platform.

copilot-cli - The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on AWS App Runner or Amazon ECS on AWS Fargate.

garden-shed - Volume management for linux garden backends

aws-extend-switch-roles - Extend your AWS IAM switching roles by Chrome extension, Firefox add-on, or Edge add-on

phoenix-liveview-cluster - LiveView in a global cluster.

awsume - A utility for easily assuming AWS IAM roles from the command line.