<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: lynett.eth</title>
    <description>The latest articles on DEV Community by lynett.eth (@0xlynett).</description>
    <link>https://dev.to/0xlynett</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3291058%2F2c5b04d5-26c6-442a-9f5b-81202b93b106.jpeg</url>
      <title>DEV Community: lynett.eth</title>
      <link>https://dev.to/0xlynett</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/0xlynett"/>
    <language>en</language>
    <item>
      <title>Misadventures in Docker and WASM Benchmarking</title>
      <dc:creator>lynett.eth</dc:creator>
      <pubDate>Tue, 01 Jul 2025 14:06:13 +0000</pubDate>
      <link>https://dev.to/0xlynett/misadventures-in-docker-and-wasm-benchmarking-4fon</link>
      <guid>https://dev.to/0xlynett/misadventures-in-docker-and-wasm-benchmarking-4fon</guid>
      <description>&lt;p&gt;&lt;em&gt;Hi, I'm Lyn! I'm the sales lead at &lt;a href="https://altivox.net" rel="noopener noreferrer"&gt;Altivox Networks&lt;/a&gt;, a cloud compute company with a presence in Springfield, MA. We are at a perpetual state of war with expensive compute.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I may be a sales lead, but I am also a programmer (a pretty bad one). My only experience with compiling to WebAssembly before this was playing around with Hyperware, so I thought, "why not try it out?"&lt;/p&gt;

&lt;p&gt;Recently, I came across &lt;a href="https://wasmtime.dev/" rel="noopener noreferrer"&gt;wasmtime&lt;/a&gt;, a fast and secure runtime for WebAssembly on the server, which sent me down on a path of researching about WebAssembly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If WASM+WASI existed in 2008, we wouldn't have needed to create Docker. That's how important it is. WebAssembly on the server is the future of computing. -Solomon Hykes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Specs
&lt;/h2&gt;

&lt;p&gt;We'll be running these benchmarks inside a VM on my server running Proxmox, which should have similar CPU performance to Altivox's Budget VPS line.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS: Ubuntu 22.04&lt;/li&gt;
&lt;li&gt;CPU: 8 vCPUs (Intel Xeon E5-2660v3)&lt;/li&gt;
&lt;li&gt;RAM: 32GB DDR4-2133&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This benchmark will be using Docker &lt;code&gt;version 28.1.1, build 4eba377&lt;/code&gt;. Docker has support for wasm through the wasmedge runtime!&lt;/p&gt;

&lt;h2&gt;
  
  
  Initial setup
&lt;/h2&gt;

&lt;p&gt;We'll be benchmarking three different environments: Docker (musl, distroless), &lt;a href="https://wasmtime.dev/" rel="noopener noreferrer"&gt;wasmtime&lt;/a&gt; standalone and native standalone (musl). Using musl because static linking for distroless + it's faster. The benchmark programs are written in Rust &amp;lt;3&lt;/p&gt;

&lt;p&gt;(I could not get &lt;a href="https://docs.docker.com/desktop/features/wasm/" rel="noopener noreferrer"&gt;Docker + WASM&lt;/a&gt; working.)&lt;/p&gt;

&lt;p&gt;There will be two benchmark programs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recursive Fibonacci&lt;/li&gt;
&lt;li&gt;HTTP webserver&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'll be running the Fibonacci program 10 times for each setup using &lt;code&gt;hyperfine&lt;/code&gt;. The webserver will be stress tested using &lt;code&gt;bombardier&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;The setup is a kludgy mess, but it works. I decided to target the new &lt;code&gt;wasm32-wasip2&lt;/code&gt; / WASI v0.2 target rather than &lt;code&gt;wasm32-wasip1&lt;/code&gt; (formerly &lt;code&gt;wasm32-wasi&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;First, I prepared Docker's WebAssembly support. A quick web search couldn't find any information for Docker Engine, so I went ahead and asked Perplexity for this information. It told me to add the following to &lt;code&gt;/etc/docker/daemon.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="nl"&gt;"features"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"containerd-snapshotter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I restarted the Docker daemon. But my troubles didn't end there: see, enabling this gets rid of your preexisting images, so you have to rebuild them. I built the images beforehand (uh oh)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker buildx build -t fibonacci-regular .
docker buildx build -t fibonacci-wasm . -f wasm.dockerfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And after that, I needed to install the shim. Unfortunately, there doesn't seem to be any good way other than downloading from &lt;a href="https://github.com/containerd/runwasi/releases" rel="noopener noreferrer"&gt;https://github.com/containerd/runwasi/releases&lt;/a&gt; and dropping the binaries into &lt;code&gt;/bin&lt;/code&gt; or some other folder in PATH.&lt;/p&gt;

&lt;p&gt;Oops. The shims (wasmtime and wasmedge) for some reason simply did not work: they would just hang without outputting anything, and I had to kill it with 3 &lt;code&gt;^C&lt;/code&gt;s.&lt;/p&gt;

&lt;h2&gt;
  
  
  Giving up
&lt;/h2&gt;

&lt;p&gt;Okay. I just ran &lt;code&gt;docker run --rm --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm secondstate/rust-example-hello:latest&lt;/code&gt; to see if it was an issue with my program, and nope, same hanging.&lt;/p&gt;

&lt;p&gt;Docker still works though. &lt;code&gt;docker run --rm hello-world&lt;/code&gt; outputted a beautiful little hello world message. Drats. Whatever, we can scrap the Docker shim...&lt;/p&gt;

&lt;h2&gt;
  
  
  Finally, the gosh-darned results
&lt;/h2&gt;

&lt;p&gt;As expected, when it came to time taken to compute, the native code outperformed the code running in Docker, which then outperformed the WASM code. However, it's not really a big difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fibonacci
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Benchmark 1: docker run --rm fibonacci-regular
  Time (mean ± σ):     16.324 s ±  0.469 s    [User: 0.045 s, System: 0.048 s]
  Range (min … max):   15.749 s … 17.393 s    10 runs

Benchmark 2: ./target/x86_64-unknown-linux-musl/release/fib
  Time (mean ± σ):     15.698 s ±  0.935 s    [User: 15.690 s, System: 0.006 s]
  Range (min … max):   14.561 s … 17.415 s    10 runs

Benchmark 3: wasmtime ./target/wasm32-wasip2/release/fib.wasm
  Time (mean ± σ):     23.533 s ±  0.769 s    [User: 23.535 s, System: 0.045 s]
  Range (min … max):   22.184 s … 25.009 s    10 runs

Summary
  ./target/x86_64-unknown-linux-musl/release/fib ran
    1.04 ± 0.07 times faster than docker run --rm fibonacci-regular
    1.50 ± 0.10 times faster than wasmtime ./target/wasm32-wasip2/release/fib.wasm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Webserver
&lt;/h3&gt;

&lt;p&gt;Compiling the webserver written in Actix Web to WASM did not work due to a Tokio compile error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;error: Only features sync,macros,io-util,rt,time are supported on wasm.
   --&amp;gt; /home/lyn/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.45.1/src/lib.rs:475:1
    |
475 | compile_error!("Only features sync,macros,io-util,rt,time are supported on wasm.");
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;:(&lt;/p&gt;

&lt;p&gt;I used an HTTP stress tester called &lt;a href="https://github.com/codesenberg/bombardier" rel="noopener noreferrer"&gt;Bombardier&lt;/a&gt; to benchmark the webserver. I originally worried that the bottleneck would be the stress tester itself, as it's written in Go, but for lack of a better option I went through with it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run --rm -p 3030:3030 webserver-regular

./bombardier -c 200 -d 10s http://localhost:3030
Bombarding http://localhost:3030 for 10s using 200 connection(s)
[=========================================================================================================================================================================] 10s
Done!
Statistics        Avg      Stdev        Max
  Reqs/sec     38065.93    4459.31   49631.32
  Latency        5.25ms     1.77ms    85.75ms
  HTTP codes:
    1xx - 0, 2xx - 380270, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:     9.17MB/s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./target/x86_64-unknown-linux-musl/release/webserver

./bombardier -c 200 -d 10s http://localhost:3030
Bombarding http://localhost:3030 for 10s using 200 connection(s)
[=========================================================================================================================================================================] 10s
Done!
Statistics        Avg      Stdev        Max
  Reqs/sec     62399.35    8079.63   80232.54
  Latency        3.20ms     0.94ms    44.35ms
  HTTP codes:
    1xx - 0, 2xx - 623764, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    15.05MB/s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  To conclude
&lt;/h2&gt;

&lt;p&gt;Well, this was fun. It did sate my curiosity, and now I know a little more about WebAssembly. Though WebAssembly on the server isn't production ready yet (especially with all the random issues I ran into, such as Docker runtime and Tokio compilation), it's still an interesting idea!&lt;/p&gt;

&lt;p&gt;Though containers compute at near-native speeds, the addition of the Docker networking stack added a lot of overhead even for a simple port binding.&lt;/p&gt;

&lt;p&gt;Could WebAssembly runtimes beat Docker on the networking aspect? I don't know, but my guess is yes. Anyhow, til next time! I've got to get back to work.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Ready to try self-hosting out for yourself? &lt;a href="https://coolify.io" rel="noopener noreferrer"&gt;Coolify&lt;/a&gt; offers an excellent self-hosted PaaS experience combined with a solid server like those provided by &lt;a href="https://altivox.net" rel="noopener noreferrer"&gt;Altivox&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>container</category>
      <category>benchmark</category>
      <category>webassembly</category>
    </item>
    <item>
      <title>You Don't Need Serverless</title>
      <dc:creator>lynett.eth</dc:creator>
      <pubDate>Tue, 24 Jun 2025 16:31:13 +0000</pubDate>
      <link>https://dev.to/0xlynett/you-dont-need-serverless-1mjf</link>
      <guid>https://dev.to/0xlynett/you-dont-need-serverless-1mjf</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclaimer: I'm the sales lead at &lt;a href="https://altivox.net" rel="noopener noreferrer"&gt;Altivox Networks&lt;/a&gt;, a cloud compute company with a presence in Springfield, MA and with plans for expansion into Amsterdam, NL.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'm a big fan of cheap things that just work. Servers are one of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not very cash money of you
&lt;/h2&gt;

&lt;p&gt;According to industry reports, &lt;strong&gt;33% of organizations are spending over $12 million annually on public cloud services&lt;/strong&gt;, with small to medium businesses averaging &lt;strong&gt;over $1.2 million yearly&lt;/strong&gt;. A good chunk of this is going to serverless or overpriced servers.&lt;/p&gt;

&lt;p&gt;Take a new trendy web app (&lt;a href="https://cataas.com/" rel="noopener noreferrer"&gt;meow?&lt;/a&gt;) that handles steady traffic throughout the day. I'll do some quick calculations based on Vercel Pro's pricing to compare costs.&lt;/p&gt;

&lt;p&gt;Let's say you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;have 4 other team members ($20/seat)&lt;/li&gt;
&lt;li&gt;get around 200,000 function invocations per day, or 6,000,000 per month ($0.60/M reqs minus 1M included reqs)&lt;/li&gt;
&lt;li&gt;use 256MB RAM and 150ms on average per request, 90% of which is idle time ($0.18/GB-hr minus 1,000 GB-hr included)&lt;/li&gt;
&lt;li&gt;get 100GB in and 1.5TB out ($0.06/GB Fast Origin Transfer minus 100GB included, $0.15/GB Fast Data Transfer minus 1TB included)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For simplicity's sake, let's say we have enough scale for Fluid Compute to fill up all the idle time with other requests.&lt;/p&gt;

&lt;p&gt;That's about $20 (plan) + $80 (seats) + $3 (invocations) + $832.50 (CPU time) + $30 (Fast Origin Transfer) + $75 (Fast Data Transfer), which sums to just over &lt;strong&gt;1 thousand US dollars per month&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Meanwhile, let's compare that pricing to a more server-based stack.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://altivox.net/products/cloud-vps" rel="noopener noreferrer"&gt;12GB Budget VM&lt;/a&gt; ($11.99/mo) from Altivox, which comes with 4 vCPU cores and 1TB included bandwidth can handle 200,000 rpd (2.3 rps) very very comfortably.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwh4u1ys15fvnbx9p3mt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwh4u1ys15fvnbx9p3mt.png" alt="me: "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Extra bandwidth is $4/TB, so that's an extra $2.40 in transfer costs. Total server cost is $14.39, a large drop compared to the more 'modern', 'efficient' serverless stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about latency / being close to my users?
&lt;/h2&gt;

&lt;p&gt;Spin up more servers in different regions. Altivox has limited scale, but there are various other inexpensive hosting providers like Hetzner and OVH.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm70erap7rl6ivtlnhoh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm70erap7rl6ivtlnhoh.png" alt="Map sourced from BeaconDB"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To be within 200ms of your users, you only really need five servers: Europe, Tokyo, US East, US West and Australia. Even without calculations, you can already tell that it beats Vercel easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Server management is not hard
&lt;/h2&gt;

&lt;p&gt;Serverless companies &lt;em&gt;actually&lt;/em&gt; make money off telling developers that the alternatives are difficult to manage, rather than providing high cost efficiency, as shown by the estimates above. This is also false due to modern tools like Docker and Kubernetes which make managing your apps easy.&lt;/p&gt;

&lt;p&gt;Deploying an application today looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; myapp &lt;span class="nb"&gt;.&lt;/span&gt;
docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 80:3000 myapp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. No dependency issues, no environment mismatches, no configuration drift. Want zero-downtime deployments? Docker Compose with a load balancer handles it fine. Need even more scale? Get another VM, or maybe even bare metal.&lt;/p&gt;

&lt;p&gt;Compare that to debugging why your serverless function works locally but fails in production because of Node.js version mismatches between your development environment and Vercel's runtime. &lt;strong&gt;These environment inconsistencies literally cannot exist when you control the entire stack&lt;/strong&gt;, especially when combined with devcontainers or other reproducible dev environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Complexity is transferred
&lt;/h2&gt;

&lt;p&gt;Generally, serverless doesn't eliminate complexity, rather, it shifts it to a different place. Instead of managing servers, you're now managing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Function timeout limits and memory configurations&lt;/li&gt;
&lt;li&gt;Cold start optimization strategies&lt;/li&gt;
&lt;li&gt;Vendor-specific deployment configurations&lt;/li&gt;
&lt;li&gt;Configuring efficient CDN and caching
etc etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You've traded straightforward server administration for vendor-specific serverless cloud architecture which changes based on your choice. Though the learning curve for a totally new dev is slightly simpler than managing Linux servers, these are skills that are solely useful for proprietary platforms, which leads to...&lt;/p&gt;

&lt;h2&gt;
  
  
  Vendor lock-in
&lt;/h2&gt;

&lt;p&gt;Traditional server applications, especially containerized ones, are portable. A Docker container running on DigitalOcean will run identically on Hetzner, OVH, or your laptop. Your nginx config, database setup, and deployment scripts work everywhere.&lt;/p&gt;

&lt;p&gt;Serverless apps become strongly architecturally-coupled to their platforms. When you use AWS, you don't just use AWS Lambda, you use API Gateway's request/response format, CloudWatch's logging system, IAM's permission model, and tons of other AWS-only services. When you use Vercel, it's the same thing. &lt;strong&gt;Moving away ends up being a total rewrite of your code!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This lock-in has real costs beyond just switching friction. It limits your ability to negotiate pricing, constrains your architectural choices, and makes you dependent on a single vendor's roadmap and reliability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Linux skills
&lt;/h2&gt;

&lt;p&gt;Server management teaches fundamental concepts: how operating systems allocate resources, how networks route traffic, how databases store and retrieve data, how applications scale under load. &lt;strong&gt;These concepts remain relevant even in serverless development&lt;/strong&gt;, because they're not perfectly abstracted away!&lt;/p&gt;

&lt;p&gt;The skills learned by developing with servers are transferable and valuable throughout a dev career. If you understand Linux, networking, and system administration, you become a better developer overall, regardless of your deployment target.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical alternative
&lt;/h2&gt;

&lt;p&gt;Serverless is not always a bad option. For very event-driven workloads or applications with extremely variable traffic patterns, serverless can make sense. Do the numbers before making important decisions!&lt;/p&gt;

&lt;p&gt;But for the majority of web apps: APIs, web services, background workers; traditional deployment models offer better pricing and more control.&lt;/p&gt;

&lt;p&gt;Modern server management isn't the nightmare it was 10 years ago. With Docker, excellent VPS providers, and mature tooling, running your own infrastructure is more accessible than ever. You'll likely save money, gain flexibility, and build valuable skills.&lt;/p&gt;

&lt;p&gt;Major cloud providers profit from your dependencies and won't teach you these fundamentals. But for most applications, well-managed servers outperform serverless on cost, perf, and maintainability while keeping you in control of your own technology stack.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Ready to try it out for yourself? &lt;a href="https://coolify.io" rel="noopener noreferrer"&gt;Coolify&lt;/a&gt; offers an excellent self-hosted PaaS experience combined with a solid server like those provided by &lt;a href="https://altivox.net" rel="noopener noreferrer"&gt;Altivox&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Cd9aRtwj9xA"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
