diff --git a/img/microvm@3x.png b/img/microvm@3x.png new file mode 100644 index 0000000..0e8c574 Binary files /dev/null and b/img/microvm@3x.png differ diff --git a/index.html b/index.html index 06c7e82..3739aa9 100644 --- a/index.html +++ b/index.html @@ -34,10 +34,33 @@
-
Secure and fast microVMs for serverless computing
- - View on GitHub - +
+
+
Secure and fast microVMs for serverless computing
+

+ Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services. +

+
+
+
+ Open Source +

Firecracker VMM

+

Build your own microVM infrastructure. Full control, Apache 2.0 licensed.

+
+ GitHub +
+
+
+ Fully Managed +

AWS Lambda MicroVMs

+

Serverless compute primitive with VM-level isolation, near-instant launch and resume speeds, and state preservation.

+
+ Docs + Workshop +
+
+
+
@@ -65,61 +88,112 @@
-
- Firecracker is an open source virtualization technology that is purpose-built for creating and managing - secure, multi-tenant container and function-based services. -
-
-

- Firecracker enables you to deploy workloads in lightweight virtual machines, called microVMs, which provide - enhanced security and workload isolation over traditional VMs, while enabling the speed and resource - efficiency of containers. Firecracker was developed at Amazon Web Services to improve the customer - experience of services like - AWS Lambda - and - AWS Fargate - . -

-

- Firecracker is a virtual machine monitor (VMM) that uses the Linux Kernel-based Virtual Machine (KVM) to - create and manage microVMs. Firecracker has a minimalist design. It excludes unnecessary devices and guest - functionality to reduce the memory footprint and attack surface area of each microVM. This improves - security, decreases the startup time, and increases hardware utilization. Firecracker is generally available on - - 64-bit Intel, AMD and Arm CPUs with support for hardware virtualization. - -

-

- Firecracker is used by/integrated with (in alphabetical order): - appfleet, - containerd via - firecracker-containerd, - Fly.io, - Kata Containers, - Koyeb, - Northflank, - OpenNebula, - Qovery, - UniK, - webapp.io, and - microvm.nix. - Firecracker can run Linux and - OSv - guests. Our latest roadmap can be found - here. -

-
+
+
+
Firecracker
+
+

+ Firecracker is an open source virtualization technology purpose-built for creating and managing secure, + multi-tenant container and function-based services. It enables you to deploy workloads in lightweight + virtual machines (microVMs) that provide enhanced security and workload isolation over traditional VMs, + while enabling the speed and resource efficiency of containers. +

+
+ Open Source · Apache 2.0 +
+
+
AWS Lambda MicroVMs
+
+

+ For teams that want the capabilities of Firecracker without managing infrastructure, Lambda MicroVMs is a fully + managed serverless compute primitive. Built on the same Firecracker virtualization powering 15 trillion+ + monthly Lambda function invocations, it provides isolated sandboxes with near-instant launch, state persistence + for up to 8 hours, and automatic suspend/resume. No capacity planning required. +

+
+ Fully Managed · Serverless +
+
+
+
+
Why Firecracker-based MicroVMs?
+
+
+
Firecracker (Open Source)
+
+
1
+
+

Security by Minimalism

+

Only 5 emulated devices. Minimal attack surface with KVM-based isolation.

+
+
+
+
2
+
+

Speed by Design

+

Boot in <125ms. Create up to 150 microVMs per second per host.

+
+
+
+
3
+
+

Density and Efficiency

+

<5 MiB overhead per VM. Pack thousands on a single server with built-in rate limiters.

+
+
+
+
+
AWS Lambda MicroVMs (Managed)
+
+
1
+
+

Zero Infrastructure

+

Start a MicroVM, connect over HTTP. No capacity planning, no isolation expertise needed.

+
+
+
+
2
+
+

Stateful and Persistent

+

Full memory and disk state preserved for up to 8 hours. Suspend when idle, resume on demand.

+
+
+
+
3
+
+

Elastic Scaling

+

Vertically scale up to 4x baseline during peak. Per-second billing, no charges when suspended.

+
+
+
+
+
+
+
+
+ Lambda MicroVMs +
+

Lambda MicroVMs — isolated, stateful compute sandboxes built on Firecracker.

+

Purpose-built for AI agents, developer platforms, and multi-tenant workloads.

+
+ +
+

Firecracker is open-sourced under Apache License, version 2.0.

@@ -138,48 +212,6 @@
-
-
-
Benefits
-
-
- -
- Firecracker microVMs use KVM-based virtualizations that provide enhanced security over traditional VMs. - This ensures that workloads from different end customers can run safely on the same machine. Firecracker - also implements a minimal device model that excludes all non-essential functionality and reduces the - attack surface area of the microVM. -
-
-
- -
- In addition to a minimal device model, Firecracker also accelerates kernel loading and provides a minimal - guest kernel configuration. This enables fast startup times. Firecracker initiates user space or - application code in as little as 125 ms and supports microVM creation rates of up to 150 microVMs per - second per host. -
-
-
- -
- Each Firecracker microVM runs with a reduced memory overhead of less than 5 MiB, enabling a high density - of microVMs to be packed on each server. Firecracker provides a rate limiter built into every microVM. - This enables optimized sharing of network and storage resources, even across thousands of microVMs. -
-
-
-
-
How It Works
@@ -222,8 +254,6 @@
Firecracker was built by developers at Amazon Web Services to enable services such as AWS Lambda - and - AWS Fargate to improve resource utilization and customer experience, while providing the security and isolation required of public cloud infrastructure. Firecracker started from Chromium OS's Virtual Machine Monitor, crosvm @@ -241,7 +271,7 @@ serverless experience. At launch we used per-customer EC2 instances to provide strong security and isolation between customers. As Lambda grew, we saw the need for technology to provide a highly secure, flexible, and - efficient runtime environment for services like Lambda and Fargate. Using our experience building isolated + efficient runtime environment for services like Lambda. Using our experience building isolated EC2 instances with hardware virtualization technology, we started an effort to build a VMM that was tailored to run serverless functions and integrate with container ecosystems.
diff --git a/style.css b/style.css index 57d1049..69fd8ee 100644 --- a/style.css +++ b/style.css @@ -303,7 +303,7 @@ img { margin-bottom: 0; } .mdl-article { - padding-top: 72px; + padding-top: 50px; } .mdl-article .m-content { margin: 0 auto; @@ -459,7 +459,7 @@ img { } } .mdl-banner { - padding-top: 60px; + padding-top: 30px; } .mdl-banner .m-content { margin: 0 auto; @@ -584,8 +584,8 @@ img { } } .mdl-benefits { - padding-top: 141px; - padding-bottom: 121px; + padding-top: 60px; + padding-bottom: 60px; background-image: linear-gradient(to bottom, #ffffff, #f8fafb 30%, #f8fafb 84%, #ffffff); position: relative; } @@ -1135,52 +1135,38 @@ img { } } .mdl-head { - overflow: hidden; + overflow: visible; padding: 0!important; position: relative; + background-color: #f46032; } .mdl-head:before { content: ''; background-image: url(img/header@2x.png); background-position: center top; background-repeat: no-repeat; - background-size: 2238px 494px; + background-size: cover; position: absolute; top: 0; - left: 50%; - transform: translateX(-50%); - width: 2238px; - height: 494px; - margin-left: -220px; + left: 0; + right: 0; + bottom: 0; } .mdl-head > * { position: relative; } @media (max-width: 900px) { .mdl-head:before { - content: ''; background-image: url(img/header@2x.png); background-position: center top; - background-repeat: no-repeat; - background-size: 2238px 524px; - position: absolute; - top: 0; - left: 50%; - transform: translateX(-50%); - width: 2238px; - height: 524px; - margin-left: -220px; + background-size: cover; } } @media (max-width: 767px) { .mdl-head:before { background-image: url(img/group-52@3x.png); - height: 434px; - width: 1673px; - background-size: 1673px 434px; - margin-left: -70px; - top: auto; - bottom: 0; + background-size: cover; + background-position: center bottom; } } .mdl-header { @@ -1717,21 +1703,19 @@ img { } } .mdl-hero { - margin: 95px 0 89px; + margin: 60px 0 50px; } .mdl-hero .m-content { margin: 0 auto; max-width: 1157px; - display: flex; - flex-direction: column; - align-items: flex-start; + display: block; } .mdl-hero .m-title { - font: 700 60px/1.08 'Brown', sans-serif; + font: 700 42px/1.15 'Brown', sans-serif; color: #fff; - max-width: 784px; + max-width: 480px; } -.mdl-hero a { +.mdl-hero > .m-content > a { min-width: 360px; margin-top: 20px; } @@ -1740,12 +1724,12 @@ img { } @media (max-width: 767px) { .mdl-hero { - margin: 64px 0 111px; + margin: 40px 0 40px; } .mdl-hero .m-title { - font: 700 30px/1.13 'Brown', sans-serif; + font: 700 26px/1.15 'Brown', sans-serif; } - .mdl-hero a { + .mdl-hero > .m-content > a { margin-top: 30px; min-width: 215px; } @@ -1753,3 +1737,288 @@ img { height: 51px; } } +/* Hero split layout */ +.mdl-hero .m-hero-grid { + display: flex; + align-items: center; + gap: 40px; + width: 100%; +} +.mdl-hero .m-hero-left { + flex: 1.2; +} +.mdl-hero .m-hero-right { + flex: 1; + display: flex; + gap: 16px; +} +.mdl-hero .m-subtitle { + font: 16px/1.6 'Work Sans', sans-serif; + color: rgba(255, 255, 255, 0.8); + max-width: 480px; + margin-top: 16px; +} +.mdl-hero .m-card { + flex: 1; + background: #fff; + border-radius: 6px; + padding: 20px; + box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1); + display: block; + transition: 0.3s ease transform, 0.3s ease box-shadow; +} +.mdl-hero .m-card .m-badge { + display: inline-block; + padding: 4px 10px; + border-radius: 4px; + font: 700 11px 'Brown', sans-serif; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 12px; +} +.mdl-hero .m-card .m-badge--fire { + background: #fff0eb; + color: #ff542a; +} +.mdl-hero .m-card .m-badge--lambda { + background: #fff5e6; + color: #cc7a00; +} +.mdl-hero .m-card h3 { + font: 700 16px 'Brown', sans-serif; + color: #4f483f; + margin-bottom: 8px; +} +.mdl-hero .m-card p { + font: 13px/1.5 'Work Sans', sans-serif; + color: #665d51; +} +.mdl-hero .m-card .m-card-buttons { + margin-top: 14px; +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn { + display: inline-block; + min-width: 0; + width: auto; + margin-top: 0; + margin-right: 6px; + padding: 6px 26px 6px 12px; + border-radius: 50px; + font: 700 10px 'Brown', sans-serif; + letter-spacing: 0.4px; + text-transform: uppercase; + text-decoration: none; + color: #ff542a; + background: transparent; + border: 2px solid #ff542a; + position: relative; + overflow: hidden; + transition: 0.25s ease all; +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn::after { + content: ''; + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + width: 14px; + height: 14px; + border-radius: 50%; + background: linear-gradient(135deg, #ff542a, #ff7849); + opacity: 0.8; +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn:hover { + background: #ff542a; + color: #fff; + box-shadow: 0 0 12px rgba(255, 84, 42, 0.4); +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn:hover::after { + background: #fff; + opacity: 0.9; +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn--lambda { + color: #e68a00; + border-color: #ff9900; +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn--lambda::after { + background: linear-gradient(135deg, #ff9900, #ffb347); +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn--lambda:hover { + background: #ff9900; + color: #fff; + box-shadow: 0 0 12px rgba(255, 153, 0, 0.4); +} +.mdl-hero .m-card .m-card-buttons a.m-card-btn--lambda:hover::after { + background: #fff; +} +@media (max-width: 1100px) { + .mdl-hero .m-hero-grid { + gap: 24px; + } + .mdl-hero .m-title { + font: 700 34px/1.15 'Brown', sans-serif; + } + .mdl-hero .m-card { + padding: 16px; + } + .mdl-hero .m-card h3 { + font: 700 14px 'Brown', sans-serif; + } +} +@media (max-width: 900px) { + .mdl-hero .m-hero-grid { + flex-direction: column; + gap: 24px; + align-items: flex-start; + } + .mdl-hero .m-hero-left { + flex: none; + width: 100%; + } + .mdl-hero .m-hero-right { + flex: none; + width: 100%; + } + .mdl-hero .m-title { + font: 700 30px/1.15 'Brown', sans-serif; + max-width: 100%; + } + .mdl-hero .m-subtitle { + max-width: 100%; + } +} +@media (max-width: 767px) { + .mdl-hero .m-hero-right { + flex-direction: column; + } + .mdl-hero .m-subtitle { + font: 14px/1.6 'Work Sans', sans-serif; + } + .mdl-hero .m-title { + font: 700 26px/1.15 'Brown', sans-serif; + } +} +/* Intro 2-column grid */ +.mdl-article .m-intro-grid { + display: flex; + gap: 48px; +} +.mdl-article .m-intro-col { + flex: 1; +} +.mdl-article .m-intro-col header { + font: 700 24px/1.4 'Brown', sans-serif; + color: #4f483f; + margin-bottom: 16px; + display: flex; + align-items: center; + gap: 12px; +} +.mdl-article .m-intro-col header .m-dot { + width: 10px; + height: 10px; + border-radius: 50%; + display: inline-block; + flex: none; +} +.mdl-article .m-intro-col header .m-dot--fire { + background: #ff542a; +} +.mdl-article .m-intro-col header .m-dot--lambda { + background: #ff9900; +} +.mdl-article .m-intro-col section { + font: 15px/1.8 'Work Sans', sans-serif; + color: #4f483f; + opacity: .75; +} +.mdl-article .m-tag { + display: inline-block; + margin-top: 16px; + padding: 4px 12px; + border-radius: 4px; + font: 700 11px 'Brown', sans-serif; + text-transform: uppercase; + letter-spacing: 0.5px; +} +.mdl-article .m-tag--fire { + background: #fff0eb; + color: #ff542a; +} +.mdl-article .m-tag--lambda { + background: #fff5e6; + color: #cc7a00; +} +@media (max-width: 900px) { + .mdl-article .m-intro-grid { + flex-direction: column; + gap: 30px; + } +} +/* Benefits dual grid */ +.mdl-benefits .m-dual-grid { + display: flex; + gap: 32px; + margin: 40px 0; +} +.mdl-benefits .m-dual-grid .m-item { + width: calc(50% - 16px); + margin: 0; + padding: 32px 30px; + border-top: 3px solid #ff542a; +} +.mdl-benefits .m-dual-grid .m-item--lambda { + border-top-color: #ff9900; +} +.mdl-benefits .m-dual-grid .m-item header { + font: 700 20px/1.3 'Brown', sans-serif; + color: #4f483f; + margin-bottom: 24px; +} +.mdl-benefits .m-benefit-item { + display: flex; + gap: 12px; + margin-bottom: 20px; +} +.mdl-benefits .m-benefit-item:last-child { + margin-bottom: 0; +} +.mdl-benefits .m-benefit-num { + width: 26px; + height: 26px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font: 700 11px 'Brown', sans-serif; + flex: none; + background: #fff0eb; + color: #ff542a; +} +.mdl-benefits .m-item--lambda .m-benefit-num { + background: #fff5e6; + color: #cc7a00; +} +.mdl-benefits .m-benefit-text h4 { + font: 700 14px 'Brown', sans-serif; + color: #4f483f; + margin-bottom: 4px; +} +.mdl-benefits .m-benefit-text p { + font: 13px/1.6 'Work Sans', sans-serif; + color: #4f483f; + opacity: .75; +} +@media (max-width: 900px) { + .mdl-benefits .m-dual-grid { + flex-direction: column; + } + .mdl-benefits .m-dual-grid .m-item { + width: 100%; + } +} +/* Lambda banner variant */ +.mdl-banner--lambda .m-bg { + height: 240px; + mix-blend-mode: multiply; +}