- 112
- 58 163
Fermyon
United States
เข้าร่วมเมื่อ 30 มี.ค. 2022
🛠 Developer guides and architectural discussions to enable you to run WebAssembly-powered apps. 🛠
Fermyon builds dev tools that make it easy to deploy and run Wasm compute. #wasm #cloudnative #opensource
Fermyon builds dev tools that make it easy to deploy and run Wasm compute. #wasm #cloudnative #opensource
Introducing Selective Deployments
In this whiteboard walkthrough, Matt Butcher introduces "Selective Deployments" - a new feature that harnesses Component Selectors in Wasm applications to create new possibilities for how apps, functions and microservices can be deployed.
#webassembly #wasm #platformengineering #kubernetes #microservicesarchitecture #devops
#webassembly #wasm #platformengineering #kubernetes #microservicesarchitecture #devops
มุมมอง: 84
วีดีโอ
Spin Project Meeting - November 4, 2024
มุมมอง 3614 วันที่ผ่านมา
Spin Project Meeting - November 4, 2024
Spin Project Meeting - October 21, 2024
มุมมอง 5128 วันที่ผ่านมา
Weekly planning call for the Spin Project where the Spin community can come come together to discuss key project decisions, new features, open issues, and/or demo new projects. [Meeting notes](docs.google.com/document/d/1EG392gb8Eg-1ZEPDy18pgFZvMMrdAEybpCSufFXoe00/edit?tab=t.0#heading=h.nipf5q8p4tl) [Discord](discord.gg/AAFNfS7NGf)
Spin Project Meeting - October 14, 2024
มุมมอง 51หลายเดือนก่อน
Spin Project Meeting - October 14, 2024
Spin Project Meeting - September 30th, 2024
มุมมอง 70หลายเดือนก่อน
Weekly planning call for the Spin Project where the Spin community can come come together to discuss key project decisions, new features, open issues, and/or demo new projects. Meeting notes - discord.gg/AAFNfS7NGf Discord - docs.google.com/document/d/1EG392gb8Eg-1ZEPDy18pgFZvMMrdAEybpCSufFXoe00/edit
Continuous Integration for your Spin Apps with GitHub Actions
มุมมอง 903 หลายเดือนก่อน
Every project requires Continuous Integration (CI), and your Spin Apps are no exception! In this video, we’ll create a GitHub Action for building, packaging and distributing Spin Apps. We’ll start with a simple Spin App consisting of a single component and advance to a Spin App consisting of two components written using different programming languages (JavaScript and Rust). We’ll publish the OC...
🔎 Exploring the Spin Command ⚡️ Trigger
มุมมอง 1383 หลายเดือนก่อน
🔎 Exploring the Spin Command ⚡️ Trigger
Introduction to Spin Triggers - HTTP & Redis Triggers
มุมมอง 2075 หลายเดือนก่อน
Introduction to Spin Triggers - HTTP & Redis Triggers
SpinKube Tutorial- Setup a Kubernetes cluster, install the Spin Operator and run your first Spin App
มุมมอง 1K8 หลายเดือนก่อน
SpinKube Tutorial- Setup a Kubernetes cluster, install the Spin Operator and run your first Spin App
Intro to SpinKube & Fermyon Platform for Kubernetes - Powered by WebAssembly.
มุมมอง 6768 หลายเดือนก่อน
Intro to SpinKube & Fermyon Platform for Kubernetes - Powered by WebAssembly.
Leveraging Python Standard Library via WebAssembly
มุมมอง 29110 หลายเดือนก่อน
Leveraging Python Standard Library via WebAssembly
Wasm-powered web applications using Python and SQLite
มุมมอง 64211 หลายเดือนก่อน
Wasm-powered web applications using Python and SQLite
Persisting Data in WebAssembly Applications Using Redis.
มุมมอง 28711 หลายเดือนก่อน
Persisting Data in WebAssembly Applications Using Redis.
Build your first AI app in Rust using Serverless AI Inferencing
มุมมอง 2Kปีที่แล้ว
Build your first AI app in Rust using Serverless AI Inferencing
How the Component Model enables Polyglot Programming
มุมมอง 652ปีที่แล้ว
How the Component Model enables Polyglot Programming
Build Your First WebAssembly App with Spin 2.0
มุมมอง 3.8Kปีที่แล้ว
Build Your First WebAssembly App with Spin 2.0
Announcing Spin v2.0 - Polygot Programming, Performance Upgrades, Portability and more.
มุมมอง 935ปีที่แล้ว
Announcing Spin v2.0 - Polygot Programming, Performance Upgrades, Portability and more.
WebAssembly's Game-Changer: The Component Model.
มุมมอง 955ปีที่แล้ว
WebAssembly's Game-Changer: The Component Model.
Matt Butcher explains how Serverless AI Inferencing works | LIVE from Civo Navigate
มุมมอง 148ปีที่แล้ว
Matt Butcher explains how Serverless AI Inferencing works | LIVE from Civo Navigate
Introducing Componentize-Py (https://www.fermyon.com/blog/introducing-componentize-py)
มุมมอง 211ปีที่แล้ว
Introducing Componentize-Py (www.fermyon.com/blog/introducing-componentize-py)
Introducing Fermyon Serverless AI - Execute inferencing on LLMs with no extra setup
มุมมอง 1.3Kปีที่แล้ว
Introducing Fermyon Serverless AI - Execute inferencing on LLMs with no extra setup
Cool
Does WASM need to be signed / notarized for successful distribution?
Company name is Fermyon Tech Product name is Link Prev brand name is: shopping pal is this correct ?
Bindings sounds pretty promising to increase the ecosystem around spin. What I'm wondering is how you could improve the DX if you add dependencies? Maybe set up a default registry? It should be simple, like other registries: “pnpm add X” or “cargo add Y”
what about .NET and IL code?
Java applets 25 years ago did the very same thing.
Did they compile from Rust or C?
Akıllı herşey bir şeyler yapılabilir..
Awesome on WASM.
I love the engagement but any chance you can do a session using python code so my n00b brain can comprehend it
damn this goes on every tuesday??? imma subscribe!!!
It's not really a good tutorial if you don't show us how to clone and install...
Awesome and congrats 🎉 The Redis trigger was on my wish list and essential for a communication between internal services. The Async feature/ non blocking is one of the main argument for Javascript.
Great video, thank you. It would be great to know more what to do next after OCI artifacts are published. Kuberntes video would be cool, but it could be even something simpler. How to run these artifacts on Docker Desktop? How to run this with spin cli (e.g spin.toml refers registry image and spin up download and runs it) - is that even possible? How to manually download image, extract wasm file and feed them to spin run?
Great presentation, thank you. Example at 31:47 is confusing. I think a custom function should have been imported instead of console.log. How does built in console.log is supposed to conjure a string out of two numbers?
Tried this and getting a message saying it currently doesn't support more than one component?
Is this fully live? Great work by the team. This will be super useful
@@chokosabe yes, we published version 0.1.0 of the plugin ~2 weeks ago
Nice demo, I like how clearly you explain all the steps and concepts. Is there a repo somewhere with the steps to reproduce? I'm interested in running inference in a custom k8s cluster using spinkube.
@@cloud-native-corner thanks. 🙏🏻. We‘re in the process of creating and publishing an article that guides you through everything.
In local architecture we trade procesing power with security/privacy. In cloud based the opposite. I don't get the advantages of the hybrid architecture to be honest! I get the "how" from the video (great one btw) but I think i'm missing the "why"
@@glitchinLife that’s a fair point. However I (Thorsten) was working with many corporations, which required persistence of data on-premises. If one is facing regulatory compliances like that, it could be handy to offload inferencing, while having compute and persistence on-premises.
I love this :)
Thank you 🙏🏼
uhhhh isnt that just cargo but with differnt commands?😂😂
In the case of rust, yes! But spin itself is language agnostic. No matter which language you use, you end up with a simple “spin build”
this is super exciting stuff. I am looking forward to a future where this stuff becomes the standard
These videos are very helpful.
Thanks for the great feedback
Even With 720p I was not able to read your code on screen maybe next time zoom a little bit
Thanks for the feedback! We’ll ensure that font sizes will be big enough in future streams
Nice explanation on WASM, thanks
this talk was exactly what I was looking for. really interesting stuff, and good details. thanks.
Thank you <3
"RISC Vee" 😔
Glad I'm not the only one who noticed that one
P r o m o S M
❤
Zig is an excellent option for WebAssembly. The resulting modules are fast and ridiculously small compared to Rust. Moreover, memory usage is also very low, so if you have to pay based on resource usage, using Zig is a no-brainer.
100% agree!
Wow, that was the best explanation for wasm
Thank you! Do check out Spin
That was a great demo, thanks! I too am enjoying A100 access on Civo!☁😁
Glad you liked it!
Great video and great presentation -- very clear and easy of understand explanation by Caleb 👍
Thank you!
Awesome and will there a *k3s* quickstart documentation as well?
The k3s guide is on k3s dot io. Should be straightforward to get that started. Let us know if you run into any issues there.
UDDI was essentially abandoned in 2005, for good reason ... please don't revive it
Is it production ready and does it support redis triggers?
It absolutely is! Check the keynote from Kubecon Paris where ZEISS spoke about how the use Wasm in production - th-cam.com/video/tu8a-GefJL8/w-d-xo.html They also did a livestream here recently: th-cam.com/video/BwaXNjzbIeI/w-d-xo.html And yes, Spin does support Redis triggers.
8:11 Why would you need to have 2 replicas? I was thinking that the app is got executed each time it needed so technically we do not need repliacs. Is this app runs in a pod? What would docker ps on a host would return? I was initially thinking that there won't be any additional pods/containers running when you create apps.
You can specify the number of replicas you need. For the video, we chose 2 for load balancing purposes.
porter(spin + dapr) = 🔥
Better SWAG from Chainguard .. Can't wait for the next one :)
Thank you!!! Thanks to you, leptos became easier!!!
Great to hear that!
Hey, that's a great video can we get the Github repo for reference.
Thank you! Here you go: github.com/fermyon/code-things It's a year old, so it probably uses SDK v1. Feel free to add a GitHub issue or put in a PR for it if something is borked :)
This was really helpful! I'm loving Leptos more each day! go #Rust, go #Leptos, go #Fermyon and #WebAssembly !!
Leptos is great <3 Thanks for watching
I appreciate that @Mikkel has a Tele within reach. Helps to noodle while thinking.
💯💯
How did you do those code window visualizations? They look awesome! 🙂
Thanks! That's just Google Slides / Powerpoint :-D
Awesome! Could you please make tutorial little bit more realistic, for example: spin cloud + db + redis + docker ?
That's a good suggestion. Will perhaps do a livestream about it in the near future :)
You know what I am missing in all talks (I have already found) on the internet? The explanation of "what can be done with wasm". If it is so secured.. how the hell can they run Doom in it? How for example Figma website, Google Earth does use wasm? Can Wasm create whole GUI on the web? Because for an beginner trying to understand wasm, it seems like I can do whole Figma, Google Earth, Doom in wasm, right? But in the end.. isn't Figma (or any similar website) still fuuuuull of javascript and only small portion is in Wasm (the math performance oriented things)?
The security in Wasm is about the sandboxed environment. Each WebAssembly module executes within a sandboxed environment separated from the host runtime using fault isolation techniques. So you can run Doom in a Wasm module which will execute independently, and can’t escape the sandbox without going through appropriate APIs. At the same time, no buggy or malicious modules can access this Doom app unless explicitly given permissions to do so.
What is confusing for me is, that the first definition says that Wasm is "portable binary-code format" and few moments later you say it is "another bytecode format". I thought, that binary = machine code. And bytecode is something higher level. But maybe I am wrong?
A binary format does not necessary mean machine code. It just means that it is not text-based. For example wasm and protobuf (used grpc) are binary formats, the underlying bytes do not conform to a text-representation. On the other hand wat and json are text formats, if you look at them in a text editor, you see textual characters that should means something. So wasm is both a binary-code format and a bytecode format. It is binary-encoded and represents some sort of machine-understandable computation, although on a higher level that machine-code itself, but lower level that programming languages. Wat would be a text-based bytecode format. It still represents some sort of computation, but now encoded in a textual-representation. Keep in mind that these terms are not perfectly defined and there are a lot of edge cases that would break these definitions. For example most people would assume that a bytecode format also is encoded as binary, but if you look up wikipedia for a definitions, it did not say whether a bytcode as to be binary, just that it needs to be efficiently interpretable by machines, whatever that mean. But then its just wikipedia, and binary encodings are usually faster for machines than textual.
awesome stream, thank you!
Glad you enjoyed it
this is not working in window os. Can you help me?
'spin build' runs two commands. The syntax used for this works on Linux and Mac, but not on Windows. If you’re a Windows user, you’ll need to copy the two commands (separated by &&) out of spin.toml and run them separately by hand.
Firstly great presentation.. Caleb has this uncanny abiility to explain things clearly. Please invite him more :) Confused about AOT and JIT.. Please validate my understanding AOT: In server-side usecases, generally we are aware of the processor architechture so instead of interpreting unopinionated wasm bytecode, we could compile the wasm bytecode to machine code of a known architecture. The runime like wastime need not do everything from scratch and can directly execute the AoT compiled instructions. JIT: I am assuming JIT compilation can implement more advanced techniques branch prediction, inlining etc.. based on the stats collected when the AoT compiled wasm module is actually running.
The dividing line between JIT and AOT is whether you're compiling code while executing. Wasm's AOT is basically classical compilation but delayed a bit, but still before the program starts. JIT comes out of the land of interpreted languages, as a way to make interpreters faster. You can JIT everything, while not everything can be AOT compiled. AOT has less runtime overhead but also less flexibility, in the end restricting wasm to features supported by AOT means that implementations can choose between both approaches. It also makes supporting heavily dynamic languages (say, lua or python) quite a bit more involved but that can be dealt with by extensions to the AOT-capable core, no need to make everyone use JIT which would be rather pointless if your source language is C or Rust or such. As to JIT being faster due to being able to collect stats: Not really. Java is blazing fast for a dynamic language (reflection and everything) but it still doesn't compete at the very top end. Your CPU is already tracking lots of stats, including what's necessary to predict branches. If you want to exploit that kind of thing to get faster than plain AOT native code an off the shelf JIT probably won't gain you anything, you have to roll something specific to your algorithm so that it can exploit domain knowledge.
@@aoeuable Thanks a ton for the detailed response. > while not everything can be AOT compiled. Is this because the target architecture is NOT known in advance? I am assuming that wasm bytecode does not have any dynamic behaviour (like JVM bytecode which poses a challenge for AoT compilation) > no need to make everyone use JIT which would be rather pointless if your source language is C or Rust This is interesting and definitely makes sense. For languages like Java, JS because of their dynamic nature JIT can generate actual machine code based on the invocations stats (dynamic dispatch for eg). Definitely not needed for C / Rust as the targets are known during compilation time.
@@GK-rl5du wasm bytecode indeed isn't dynamic and in the video they're kinda mixing up AOT and JIT (or at least not making the same distinction as I). While wasm doesn't know the architecture in advance it still compiles everything before starting execution, which is AOT, just a bit later than usual. Or, differently put: While native compilation usually goes source -> intermediate representation -> native code, WASM does source -> (probably intermediate representation) -> portable interchange format (i.e. .wasm files) -> (possibly intermediate representation) -> native code.
@@aoeuable When we execute a wasm module via a wasm runtime (wasmtime for eg) the runtime interprets the wasm bytecodes? Or would it compile wasm module to native code, put it in some tmp dir and fork a process out of it?
@@GK-rl5du That depends on the implementation. But wasmtime compiles directly into memory and then executes it.
Thank you guys for this collaborative demo!
Thanks for tuning in!