12.9 C
New York
Tuesday, December 6, 2022

Fermyon Built a WebAssembly Cloud to Push Serverless Microservices Beyond Containers – InfoQ.com

Learn the emerging software trends you should pay attention to. Attend online QCon Plus (Nov 30 – Dec 8, 2022). Register Now
Facilitating the Spread of Knowledge and Innovation in Professional Software Development


In this article, we introduce the topic of code obfuscation, with emphasis on string obfuscation. Obfuscation is an important practice to protect source code by making it unintelligible. Obfuscation is often mistaken with encryption, but they are different concepts. In the article we will present a number of techniques and approaches used to obfuscate data in a program.
In this podcast, Jim Barton explains some of the fundamentals of modern service meshes, and provides an overview of Istio Ambient Mesh and the benefits it will provide in the future.
Data transformation remains a continuous challenge in engineering and built upon manual toil. The open source utility Dynamo Data Transform was built to simplify and build safety and guardrails into data transformation for DynamoDB based systemsโ€“โ€“built upon a robust manual framework that was then automated and open sourced. This article discusses the challenges with Data Transformation.
Learning software craftership made me reconsider how I wrote code. Being an experienced software team manager, I try to reevaluate my management practices in the same way: what could Test Driven Management or Pair-management be? Here I propose different insights on how software craftership tools and mindset are transposable to the management domain.
In a recent article, Paula Kennedy shared her thoughts on the ever-increasing cognitive load being saddled onto development teams. Although platform engineering is touted as a solution to this challenge, a poorly designed platform will increase the cognitive burden on developers utilizing it. We must also be careful that we are not just transferring that cognitive load onto the platform teams.
Make the right decisions by uncovering how senior software developers at early adopter companies are adopting emerging trends. Register Now.
Learn how to implement and manage your API projects with a security strategy and a development mindset. Register Now.
Adopt the right emerging trends to solve your complex engineering challenges. Register Now.
Your monthly guide to all the topics, technologies and techniques that every professional needs to know about. Subscribe for free.
InfoQ Homepage News Fermyon Built a WebAssembly Cloud to Push Serverless Microservices Beyond Containers
Nov 20, 2022 3 min read
by
Sergio De Simone
At KubeCon/CloudNativeCon 2022, Fermyon launched its microservice-oriented platform for WebAssembly apps, called Fermyon Cloud, which is now available in open beta.
At the heart of Fermyon Cloud is the vision that WebAssembly holds the potential to make the serverless promise a reality, thus overcoming the limitations posed by containers and virtual machines. Fermyon CEO Matt Butcher argues that WebAssembly is superior to VMs and containers on two accounts: start up times and portability across platforms.
All microservices should ideally be stateless and use a stateful service to store their information. And because of those features, then you should be able to start and stop them as quickly as you can. Now imagine, instead of taking several minutes to start up a virtual machine or several seconds or a few dozen seconds to start up a container, you could instantly start up your application and instantly shut it down when it wasn't handling traffic anymore. That's the model we pursued with WebAssembly.
According to Butcher, you can get to execute the first instruction of your app in less than a millisecond, sometimes in the microsecond level. This would make it easier to build applications that scale up fast when there is a request peak and down to zero and no traffic is coming, without wasting CPU or memory. When using containers or VMs, on the contrary, the usual approach to cold boot is to run an instance idle for some time after a request has been served, in case a new one comes quickly in.
The other big benefit of WebAssembly is portability across architectures, down to the executable level:
My interest was being able to take the same compiled artifact, the same compiled bytes, and run those across operating systems and CPU architectures. That was the first thing that was coming from the world of containers where we had a container image and that was bound to an architecture, to a CPU architecture and an operating system, and you needed to have something like multi-arch images to get the same applications run in multiple environments. The fact that you can take the same WebAssembly module and run that in Linux on ARM and then Windows on AMD and then somewhere in the cloud that you don't really care about what the architecture is, was fascinating.
Portability also extends to languages, in that WebAssembly is a supported target for many languages currently available. The main requirement here for a language to be used on the Fermyon platform is WASI support. This means you can use Python, C# and other .NET languages, C/C++, Go, Rust, and others. Notable exceptions are Java, JavaScript/TypeScript, Scala, and others.
Based on Spin, Fermyon's open-source framework to build cloud microservices using WebAssembly, Fermyon Cloud leverages a number of other open-source projects, including Bindle to manage releases, Nomad for orchestration, and others. Instead of using Spin proper to execute apps, though, Fermyon Cloud uses a highly scalable execution environment, which they say is able to run thousands of applications on a five-worker Nomad cluster.
While stacking up WebAssembly and container-based microservices, Butcher is careful not to posit the former as a replacement for the latter. Rather, he sees it as a complementary technology that in some cases will run side by side with containers and VMs.
It's not that virtual machines got replaced by containers and WebAssembly will replace containers. Each time we make a sort of incremental step, it's additive. We're adding one more thing, but we're not subtracting anything else. So virtual machines are a stronger market now than ever before and the tooling for managing virtual machines continues to improve. Likewise with containers and I think WebAssembly will be that next complementary technology.
As mentioned, Fermyon Cloud in now available in open beta, with the only limitation of a maximum number of five allowed spins per developer. If you rather want to run your own platform to host Spin applications, you can use the Fermyon Installer on any of the major Cloud providers, including Azure, AWS, DigitalOcean, and Google.
NOTE: This article was amended for completeness on Nov 23 to include a mention to supported languages.

Becoming an editor for InfoQ was one of the best decisions of my career. It has challenged me and helped me grow in so many ways. We’d love to have more people join our team.

Presented by: Alex Lunev – Director of Engineering, Keith McClellan – Director of Partner Solutions Engineering
Save your seat
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example

We protect your privacy.
You need to Register an InfoQ account or or login to post comments. But there’s so much more behind being registered.
Get the most out of the InfoQ experience.
Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p
by Chris Richardson,
by Daniel Bryant,
by Chris Richardson,
by Sergio De Simone,
by Daniel Bryant,
by Chris Richardson,
by Daniel Bryant,
by Chris Richardson,
by Amir Shitrit,
by Sergio De Simone,
by Chris Richardson,
Your message is awaiting moderation. Thank you for participating in the discussion.
Interesting but a brief discussion of supported programming language would have been helpful.
by Daniel Bryant,
Your message is awaiting moderation. Thank you for participating in the discussion.
Hey Chris, I hope all is well! Yeah, this is a good point. In theory, any language that can be compiled to Wasm with WASI support will work on the platform.

This webpage contains some interesting context and additional links:
www.fermyon.com/wasm-languages/webassembly-lang…
by Amir Shitrit,
Your message is awaiting moderation. Thank you for participating in the discussion.
Fast startups are a great thing, but wouldn’t WASM run a (very) bit slower than native code?
I guess that since serverless functions run for a very brief duration, it’s not necessarily a problem, but for a medium to long duration, does this trade-off worth it?
by Sergio De Simone,
Your message is awaiting moderation. Thank you for participating in the discussion.
Hi Amir, that’s an interesting point. A lot of code in the Cloud is written in Python, Node, so that would possibly define the arena where Wasm is competitive or a very good option. On the other hand, I know the world of benchmarks can be tricky, but from this one here (programming-language-benchmarks.vercel.app/go-v…), I gather that Wasm is not always so much worse off than Go — although in some cases it is.
by Chris Richardson,
Your message is awaiting moderation. Thank you for participating in the discussion.
Sure.

But what about the Spin framework? That seems primarily Go and Rust.

Perhaps I’m #lazy but a sentence or two about whether it’s truly practical to run Java (or .NET) – ie. enterprise languages – on Fermyon would have been very useful. Or is it just some exotic tech. that simply sounds cool?
by Sergio De Simone,
Your message is awaiting moderation. Thank you for participating in the discussion.
Hi Chris, thanks for your comments. I have amended the article and included a brief mention to supported languages on the Fermyon platform, so future readers will get that information right away. Turns out Java is not supported, but .NET languages seem to be.
by Daniel Bryant,
Your message is awaiting moderation. Thank you for participating in the discussion.
Many thanks, Sergio!

@Chris — I would class this as “innovator” rather than “exotic” ๐Ÿ™‚ It looks like the Fermyon folks are targeting the Go and Rust ecosystem, which makes sense with adoption. Us Java folks are typically late adopters!
by Chris Richardson,
Your message is awaiting moderation. Thank you for participating in the discussion.
Awesome. Thanks for doing that!
by Chris Richardson,
Your message is awaiting moderation. Thank you for participating in the discussion.
Perhaps you could describe it as the Java community being late adopters.

Alternatively, you could view it as a new technology failing to support a major language ecosystem.

๐Ÿ™‚
by Daniel Bryant,
Your message is awaiting moderation. Thank you for participating in the discussion.
Yeah, I take your point. I’m curious to see how the Java/JVM Wasm story proceeds in general (and a quick Google pointed me to another of Fermyon’s page — their SEO game is strong! www.fermyon.com/wasm-languages/java )

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example

We protect your privacy.
Real-world technical talks. No product pitches.
Practical ideas to inspire you and your team.
QCon Plus – Nov 30 – Dec 8, Online.

QCon Plus brings together the world’s most innovative senior software engineers across multiple domains to share their real-world implementation of emerging trends and practices.
Uncover emerging software trends and practices to solve your complex engineering challenges, without the product pitches.Save your spot now
InfoQ.com and all content copyright © 2006-2022 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we’ve ever worked with.
Privacy Notice, Terms And Conditions, Cookie Policy

source

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles