TRANSCRIÇÃO · CC BY 3.0

Painel de Discussão Keynote: Revolucionando Arquiteturas Cloud Native com WebAssembly

Tradução automática para o português do Brasil. Gerada e salva em 2026-10-23. Pode conter erros; confira os termos e as citações na versão em inglês e no vídeo original. Os horários são os mesmos da fonte. A transcrição original em inglês está disponível abaixo.

Um painel nativo da nuvem compara máquinas virtuais, contêineres e WebAssembly, explicando o SpinKube e a execução de aplicações Wasm no Kubernetes.

CNCF [Cloud Native Computing Foundation] · Publicado em · 16 min · Inglês · Licença: CC BY 3.0 · Fonte: assistir no YouTube

Fonte da transcrição: reconhecimento automático de fala no Vidleaf (pode conter erros). Pontuação por IA adicionada pelo Vidleaf; redação original e âncoras de timestamp mantidas. A transcrição original está disponível abaixo.

Resumo gerado por IA

A palestra usa as categorias de peso do boxe como metáfora para os runtimes de nuvem: máquinas virtuais são a categoria dos pesos-pesados, que podem fazer muito mas muitas vezes levam minutos para iniciar, contêineres são a categoria dos pesos-médios, que iniciam em segundos e são adequados a um único servidor de longa duração, e WebAssembly é a categoria dos pesos-leves, compilado uma vez e reutilizado entre arquiteturas e sistemas operacionais, com uma inicialização a frio de cerca de meio milissegundo. O SpinKube ajuda a executar WebAssembly no Kubernetes: um recurso personalizado SpinApp referencia um artefato OCI contendo um binário WebAssembly, e um operador Spin implanta o pod e o serviço correspondentes, com o pod usando um runtime Wasm em vez de um runtime de contêiner. Em um cluster AKS de dois nós, aumentar as réplicas para 50 distribui os pods entre um nó x86 e um nó baseado em Ampere ARM64. Kai, da Zeiss, descreve a investigação do WebAssembly na nuvem para aproximar a granularidade semântica e técnica; uma demonstração mostra três aplicações Spin escalando com primitivas regulares do Kubernetes, e substituir uma implantação regular por uma aplicação Spin com um artefato WebAssembly reduz uma aplicação Node.js Express de 400 megas para quase 2 megas. A troca de x86 para ARM sozinha reduziu o custo em 60%. Construído sobre o RunWazi, o shim ContainerD de WebAssembly para Spin permite que o Kubernetes escale rapidamente e mova cargas de trabalho entre sistemas operacionais e CPUs sem builds multi-arquitetura, e cargas de trabalho WebAssembly podem ser executadas no mesmo pod que contêineres. Fermion, Microsoft, SUSE e Liquid Reply anunciam o SpinKube, uma pilha de código aberto que inclui um gerenciador de classe de runtime e o operador Spin, e enviaram a solicitação para contribuir com o SpinCube para a CNCF.

Gerado a partir da transcrição. Verifique as passagens vinculadas em relação ao vídeo original.

Resumos de capítulos com carimbos de tempo

Categorias de Peso do Boxe e Computação em Nuvem

  • [0:00] O palestrante recentemente começou a se interessar por boxe, mas na maior parte apenas assiste do sofá.
  • [0:09] O boxe tem categorias de peso como peso-pesado, peso-médio e peso-leve, e um boxeador deve atingir um determinado peso para lutar dentro de uma categoria.
  • [0:30] Essas categorias de peso lembram o palestrante das nuvens da computação em nuvem.
  • [0:36] As máquinas virtuais são a categoria dos pesos-pesados: poderosas, mas lentas para se levantar novamente se forem nocauteadas.
  • [0:54] As máquinas virtuais são o runtime peso-pesado original da nuvem e muitas vezes levam minutos para iniciar.
  • [1:02] As máquinas virtuais contêm um sistema operacional inteiro, do kernel às aplicações, então você pode fazer muita coisa com elas.

Contêineres vs WebAssembly na Nuvem

  • [1:10] Um contêiner é mais leve e menor, posicionado como a categoria dos pesos-médios na computação em nuvem.
  • [1:19] O peso-médio estabelece um equilíbrio entre velocidade e potência.
  • [1:23] Os contêineres fornecem um ambiente adequado para executar um único servidor de longa duração.
  • [1:30] Os contêineres iniciam em segundos em vez de minutos e consomem menos recursos que as máquinas virtuais.
  • [1:39] O WebAssembly é descrito como a terceira onda da computação em nuvem e a categoria dos pesos-leves, onde velocidade e agilidade importam mais.
  • [1:39] Uma aplicação pode ser compilada uma vez diretamente para o formato binário WebAssembly e reutilizada sem alterações em várias arquiteturas e sistemas operacionais.
  • [2:01] Uma aplicação WebAssembly pode ser iniciada a frio em cerca de meio milissegundo.
  • [2:09] Essa inicialização de meio milissegundo torna o WebAssembly muito mais rápido de iniciar do que até mesmo os contêineres.

Executando WebAssembly no Kubernetes com SpinKube

  • [2:30] O SpinKube é um projeto que ajuda a executar WebAssembly no Kubernetes e em ambientes nativos da nuvem.
  • [2:36] Um recurso personalizado SpinApp no Kubernetes referencia um artefato OCI contendo um binário WebAssembly.
  • [2:57] Um operador Spin é executado por trás do recurso personalizado SpinApp.
  • [3:11] O operador Spin detecta o SpinApp aplicado e implanta o pod de implantação e o serviço correspondentes.
  • [3:18] O pod é configurado para usar um runtime Wasm em vez de um runtime de contêiner para executar a aplicação.
  • [3:25] Externamente ainda há pods e serviços como de costume, mas internamente são aplicações WebAssembly, não contêineres.
  • [3:35] Aumentar a contagem de réplicas para 50 em um cluster AKS de dois nós distribui os pods entre um nó x86 e um nó baseado em Ampere ARM64.
  • [3:59] Para escalar mais, o mesmo binário pode ser colocado em qualquer instância burstable que esteja barata naquele momento.
  • [4:12] Esse tipo de coisa tem sido importante para a equipe do Zeiss Group.

WebAssembly para Serviços de Nuvem Mais Rápidos e Menores

  • [4:24] Kai, da Zeiss, diz que a empresa trabalha com esferas, lentes e óptica, de microscópios a sistemas de litografia de alta abertura numérica usados para produzir silício da Apple ou GPUs da NVIDIA.
  • [5:18] Muitos de seus modelos de negócio exigem processamento de informações eletronicamente, seja pela escala enorme de informações ou por especificações de produto anexadas.
  • [5:36] No início do projeto, dinheiro não é o problema; os riscos do projeto são altos e compromissos são assumidos, e eles adicionam ferramentas da CNCF como DAP ou KEDA.
  • [5:55] Uma vez que o negócio se estabiliza, o financeiro exige uma abordagem mais de design para custo.
  • [6:08] Os serviços são inicialmente projetados dentro de contextos delimitados usando design orientado a domínio, mas depois aspectos logísticos como tamanhos de runtime de contêiner e limitações de peças forçam a granularidade técnica a divergir da granularidade semântica.
  • [6:32] Eles começaram a investigar o WebAssembly na nuvem para aproximar a granularidade semântica e técnica.
  • [7:34] Uma demonstração mostra três aplicações Spin lidando com carga com primitivas regulares do Kubernetes, escalando réplicas à medida que os pedidos chegam e a taxa de transferência aumentando.
  • [8:26] A taxa de transferência total acaba em torno de 34 segundos, o que Kai chama de muito bom em comparação com outros ambientes.
  • [8:47] Usar uma aplicação Spin com um artefato WebAssembly em vez de uma implantação regular reduz uma aplicação Node.js Express de 400 megas para quase 2 megas, e adicionar mais lógica não aumentará drasticamente esse tamanho.
  • [9:06] O tamanho pequeno permite que os serviços escalem para cima e para baixo rapidamente, de modo que os mesmos recursos possam ser reutilizados com leve sobreposição por ondas posteriores de processamento enquanto ainda usam ferramentas e ambientes conhecidos.
  • [9:42] O empacotamento menor permite colocar mais serviços nos mesmos recursos ou usar recursos mais baratos, com escalonamento mais rápido e maior reutilização de recursos.
  • [10:09] A troca de x86 para ARM sozinha reduziu o custo em 60%, permitindo 60% recursos mais baratos.

SpinKube: cargas de trabalho WebAssembly no Kubernetes

  • [10:28] Os resultados da demonstração de Kai vêm de projetos de código aberto em Go e Rust, apoiados pelas fundações CNCF e Bytecode Alliance em todo o mundo.
  • [10:55] O Kubernetes é o primeiro projeto destacado; o trabalho com WebAssembly ainda depende do Kubernetes.
  • [11:04] A maturidade e a estabilidade do Kubernetes como plataforma possibilitam a inovação contínua em torno dele.
  • [11:12] O projeto ContainerD da CNCF tem muitos shims para integrar diferentes tipos de carga de trabalho ao Kubernetes.
  • [11:23] A Microsoft criou o projeto ContainerD baseado em Rust, usado por colaboradores incluindo Fermion, Docker e Second State para adicionar flexibilidade e agilidade de escalonamento ao Kubernetes sem afetar os contêineres existentes.
  • [11:56] Construído sobre o RunWazi, o shim ContainerD de WebAssembly para Spin permite que o Kubernetes escale rapidamente e mova cargas de trabalho entre sistemas operacionais e CPUs em tempo real sem builds multi-arquitetura.
  • [12:19] Cargas de trabalho WebAssembly podem ser executadas no mesmo pod que contêineres, então as cargas de trabalho de contêiner existentes continuam funcionando.
  • [12:30] O operador KWASM da Liquid Reply instala o SpinShim facilmente sem exigir um novo cluster ou inicialização.
  • [13:14] Fermion, Microsoft, SUSE e Liquid Reply anunciam o SpinKube, uma pilha de código aberto para simplificar o desenvolvimento, a implantação e a operação de cargas de trabalho WebAssembly no Kubernetes junto com contêineres.
  • [13:32] O SpinKube inclui um gerenciador de classe de runtime que lida com a instalação, atualização e desinstalação de shims ContainerD, como os shims baseados em RunWazi.
  • [14:01] O operador Spin otimiza as cargas de trabalho para densidade e agilidade de escalonamento, como a Zeiss estava fazendo.

SpinCube Enviado à CNCF

  • [14:36] Eles enviaram a solicitação para contribuir com o SpinCube para a CNCF.
  • [14:44] Muitos na comunidade nativa da nuvem têm se entusiasmado com o WebAssembly nos últimos vários anos.
  • [15:00] Eles esperam que as pessoas se juntem ao esforço para tornar o poder do WebAssembly mais acessível e aproveitável.
  • [15:23] Mais informações estão disponíveis no estande da Microsoft e no estande da Fermion, e há uma palestra mais tarde hoje às 2.30 na S3, SO6.

[0:00] Então, recentemente comecei a me interessar por boxe. Na verdade, não boxeo. Na maior parte apenas assisto do conforto do meu sofá. E no boxe, há categorias de peso como peso-pesado, peso-médio, peso-leve e assim por diante. E é exatamente como parece. Um boxeador deve atingir um determinado peso para lutar dentro de uma categoria. E essas categorias de peso me lembram as nuvens, as ondas da computação em nuvem.

[0:35] Obrigado. Então, primeiro, temos as máquinas virtuais. Esta é a categoria dos pesos-pesados. Estar na categoria dos pesos-pesados no boxe significa que você é poderoso. Mas se você for nocauteado, vai levar algum tempo para se levantar novamente. Isso é física básica, certo? As máquinas virtuais são o runtime peso-pesado original da nuvem. Muitas vezes, elas levam minutos para iniciar, mas contêm um sistema operacional inteiro, do kernel às aplicações, então você pode fazer muita coisa com elas.

[1:10] Um contêiner é mais leve e menor. E no mundo da Computação em Nuvem, essa seria a sua categoria peso-médio. O peso-médio equilibra velocidade e potência. Os contêineres nos deram o ambiente perfeito para executar um único servidor de longa duração. Eles levam segundos, não minutos, para iniciar, e consomem menos recursos do que máquinas virtuais. Agora, adicione a isso o WebAssembly, a terceira onda da computação em nuvem. Esta é a sua categoria peso-leve. Velocidade e agilidade são a ordem do dia aqui. Compile seu aplicativo uma vez diretamente para o formato binário WebAssembly, e use esse mesmo binário em várias arquiteturas e sistemas operacionais sem alterações.

[2:01] E um aplicativo WebAssembly pode ter inicialização a frio em cerca de meio milissegundo. Meio milissegundo, tornando-o vastamente mais rápido do que até mesmo -- tornando sua velocidade de inicialização vastamente mais rápida do que até mesmo os contêineres. Então, como executamos WebAssembly no Kubernetes e em ambientes nativos de nuvem? Vou falar com vocês hoje sobre o Spin Cube, que é um projeto que ajuda você a fazer exatamente isso.

[2:36] Então este é um recurso personalizado SpinApp no Kubernetes. Online 6 é uma referência a um artefato OCI contendo... Um binário WebAssembly. Sim, isso é algo que você pode fazer. Por trás deste recurso personalizado SpinApp vive um operador spin. Assim que eu aplicar meu spin app ao meu cluster, vamos vê-lo em execução no nosso cluster aqui.

[3:11] O spin app, o operador spin vai de fato capturá-lo e implantar o pod de implantação e o serviço correspondentes. Ele está configurando o pod para usar um runtime Wasm em vez de um runtime de contêiner para executar nosso aplicativo. Então, por fora, você ainda tem seus pods e serviços, como de costume, mas por dentro, eles são na verdade aplicativos WebAssembly, não contêineres. Este é o mesmo aplicativo. Vamos aumentar a contagem de réplicas para 50, e aplicá-lo ao nosso cluster.

[3:43] Estou executando em um cluster AKS de dois nós aqui. E se eu verificar meus pods, eles estão sendo distribuídos, olhe com atenção nos meus dois nós. Um é um nó x86 e o outro é um nó baseado em ARM da Ampere64. Obrigado. E se eu quiser escalar ainda mais, então posso simplesmente colocar esse mesmo binário em qualquer instância burstable, que é barata para mim naquele momento. Obrigado. Esses são o tipo de coisas que têm sido importantes para a equipe do Grupo Zeiss.

[4:18] E eu gostaria de convidar o Kai agora para falar conosco sobre a experiência deles nesse espaço. Obrigado, Kai. Merci, Michel. Então, vindo da Zeiss, eu me identifico com a física. Como o ARC em nosso logotipo sugere, lidamos com esferas, lentes, óptica. De microscópios até esses blocos volumosos parecidos com pedaços de metal, que são sistemas de litografia de alta NA, que você basicamente precisa para produzir seu amado silício da Apple ou as GPUs da NVIDIA. Esses são os únicos dispositivos ópticos em todo o planeta que podem fazer isso.

[4:58] Então meus especialistas em P&D sempre tentam me explicar esse tipo de óptica, mas não há ajuda nisso, então só consigo entender o básico. Mas o que eu entendo é como operar esses modelos de negócio em tecnologia da informação. Muitos dos nossos modelos de negócio exigem que processemos as informações eletronicamente, seja apenas pela pura escala de informação que temos que processar ou pelas especificações do produto que estão anexadas.

[5:34] Oh. Então, no começo, o dinheiro não é o problema quando iniciamos esses projetos. Nós... Os riscos do projeto são altos, os compromissos são assumidos, e basicamente fizemos um recapeamento completo desse caso. Até passamos um pouco de bondade do CNCF nele, como DAP ou KEDA, tanto faz. Assim que a poeira baixa e o negócio se estabiliza, nosso pessoal de finanças nos alcança, o que então exige que basicamente entremos em uma abordagem mais voltada para o design para custo.

[6:06] Em segundo lugar, muitas vezes no começo, temos o luxo de projetar esses serviços dentro de contextos delimitados, aplicando design orientado a domínio, realmente fazendo bons sistemas. Mais adiante, muitas vezes entram em jogo aspectos logísticos, como tamanhos de runtime de contêiner, limitações de número de peças, tanto faz. E logo somos forçados a ceder basicamente que a granularidade técnica do que executamos diverge da granularidade semântica. E este é um dos pontos pelos quais começamos a investigar o WebAssembly na nuvem, basicamente para aproximar essas duas coisas, a granularidade semântica e a técnica.

[6:58] Para isso, generalizamos um dos nossos muitos fluxos, que reflete como normalmente fazemos esse processamento. Isso significa que recebemos uma série de mensagens ou pedidos na nossa porta, e então a expectativa é que essas mensagens sejam processadas em um determinado tempo. Respondendo: ok, quando, como produzimos ou entregamos aquilo. E é exatamente isso que medimos. Desde a chegada dos pedidos até que eles cheguem a alguns buckets.

[7:30] Agora vamos ver isso em ação. Tchau. Então o que vemos aqui são esses três spin apps que lidaram com a carga e suas respectivas implantações. Então você vê primitivas de Kubernetes bem regulares. Vamos gerar alguma carga. Você vê a forma básica das réplicas. A carga aumenta. O primeiro conjunto de réplicas já recebe o primeiro lote de pedidos. E assim que o ambiente está escalando, o número de pedidos que podem ser processados na mesma fatia de tempo aumenta drasticamente. Primeiro, algumas funções de distribuidor pegam os pedidos, tomam algumas decisões básicas, e então os repassam por filas para uma segunda onda de serviços, que basicamente os colocam em buckets para algumas outras decisões.

[8:20] O que podemos ver aqui é quão rápido os serviços estão escalando e absorvendo o tráfego. Obrigado. No final, a taxa de transferência total ficará em torno de 34 segundos, o que, se você acompanhar outros posts que fiz com outros ambientes, é muito bom. Então, no final, é só física. Ao usar um spin app com artefato WebAssembly em vez de uma implantação regular, podemos, para um aplicativo Node.js Express como esse, reduzir o tamanho de 400 megas para quase 2 megas.

[8:57] Então, mesmo se adicionarmos mais lógica, esse tamanho não aumentará drasticamente. E isso permite que a... que a escala suba rápido e desça também rápido, o que, por outro lado, permite que os mesmos recursos, com uma leve sobreposição, sejam reutilizados já pela segunda, terceira ou quarta onda, qualquer que seja a onda de processamento que você tenha. Assim, podemos usar os mesmos recursos várias vezes dentro de um processo como esse.

[9:29] E isso ainda aplicando todas as ferramentas, todos os ambientes que já conhecemos. Sim. Novamente, para concluir: o tamanho de empacotamento menor permite que coloquemos mais serviços nos mesmos recursos ou, por outro lado, usemos recursos mais baratos para processar o mesmo conjunto de serviços. Podemos escalar para cima e para baixo mais rápido, ter um grau maior de reutilização dos mesmos recursos.

[10:02] mantendo as ferramentas que conhecemos. Aqui novamente em números, mesmo ao mudar apenas de x86 para ARM, pudemos reduzir com 60%, então pudemos usar recursos 60% mais baratos para isso. E com isso, quero passar para o meu irmão de cor de cabelo, Ralph. Obrigado. O que vocês acabaram de ver e ouvir do Kai é o resultado de uma coleção de projetos de código aberto tanto em Go quanto em Rust e fundações de código aberto, obviamente a CNCF e também a Bytecode Alliance Foundation em todo o mundo em colaboração. E quero destacar apenas alguns dos projetos importantes que vocês provavelmente conhecem e que de fato tornam possível esse tipo de inovação.

[10:55] Em primeiro lugar está o Kubernetes. É fácil pensar, quando mencionamos WebAssembly, que de alguma forma não estamos falando de Kubernetes. Estamos. É a maturidade e a estabilidade do Kubernetes como plataforma que nos permitem continuar inovando nele e ao seu redor. E, por exemplo, o projeto Container D na CNCF tem muitos shims diferentes que permitem integrar diferentes tipos de cargas de trabalho ao Kubernetes. E a Microsoft tem muito orgulho de ter criado o projeto Container D baseado em Rust, certo, que permite uma execução a frio, desculpe, e que permite aos contribuidores, junto com pessoas como Fermion, Docker, Second State e muitos outros, usar este projeto para trazer ainda mais flexibilidade e agilidade de escala ao Kubernetes sem afetar os contêineres que você já está usando em seus clusters agora. E a ZEISS não é diferente do que muitos, muitos outros já estão fazendo.

[11:56] Agora, como é construído sobre o RunWazi, o SHIM de Container D do WebAssembly para o spin permite que o Kubernetes escale para cima e para baixo muito rapidamente, como vocês acabaram de ver, mas também mova suas cargas de trabalho WebAssembly de um sistema operacional para outro e de uma CPU para outra em tempo real e sem builds multi-arquitetura. E porque eles permitem que cargas de trabalho WebAssembly sejam executadas no mesmo pod. Como contêineres, você pode continuar usando suas cargas de trabalho, suas cargas de trabalho de contêiner que você usa agora. Agora, finalmente, quero destacar, como coloquei aqui, o framework de operador.

[12:30] E o KWASM da Liquid Reply, esse operador é usado para instalar o SpinShim facilmente. Foi o que Kai e a Zeiss usaram sem exigir um novo cluster. Você não precisa inicializar algo novo. E há uma comunidade por trás de todo esse trabalho, cada coisa que fizemos. Então, a maioria das pessoas, porém, realmente preferiria não procurar ferramentas individuais. Eu sei que muitos de vocês estão curiosos para explorar os detalhes, e vocês podem, porque são projetos.

[13:02] Certo? Mas a maioria das pessoas gostaria de usar uma única pilha de ferramentas. Elas não querem encontrá-las todas juntas e depois alinhá-las da maneira certa e configurar cada uma. Então, trabalhando com o feedback da Zeiss e de outros... Fermion, Microsoft, SUSE e Liquid Reply têm o orgulho de anunciar a criação do SpinCube, que vocês viram no slide anterior, que é uma pilha de código aberto que você pode usar para simplificar a experiência de desenvolver, implantar e operar cargas de trabalho WebAssembly no Kubernetes junto com as suas de contêiner. Agora, o SpinCube inclui um gerenciador de classe de runtime, que cuida da instalação, atualização e desinstalação das cargas de trabalho, dos shims de Container D, como os shims baseados em RunWazi que estamos usando aqui.

[13:44] E para executá-los, na verdade temos uma série de shims. No SpinCube, estamos usando os Shims baseados em RunWazi. uh, shim para o spin, o projeto spin. E para otimizar essas cargas de trabalho, para fazer o que a Zeiss estava fazendo, tentando ajustar a densidade e a agilidade de escala, usamos o operador spin. E juntas, essa pilha muito completa de ferramentas Kubernetes permite que todos aqui e ao redor do mundo sigam em frente e obtenham o melhor de suas cargas de trabalho Kubernetes onde quer que estejam. Adoraríamos que vocês experimentassem o Spin Cube.

[14:16] E a melhor maneira de fazer isso é seguir em frente e escanear o código QR. e nos dizer o que você acha. Entre nos repositórios do projeto, nos dê feedback, e junte-se a nós e ajude-nos a torná-lo ainda melhor do que já é. Agora quero pedir à Michelle que volte aqui por um segundo. Obrigado. Obrigado. E hoje gostaríamos de anunciar que enviamos a solicitação para contribuir com o SpinCube para a CNCF. Muitos de nós na comunidade nativa de nuvem estivemos tão empolgados nos últimos anos com o WebAssembly.

[15:00] tem muitas pessoas e você tem muitos projetos trabalhando juntos para tornar essa tecnologia mais acessível em nosso ecossistema. E esperamos que você se junte a nós neste esforço de tentar tornar o poder do WebAssembly ainda mais acessível e aproveitável em nosso espaço. E se você quiser saber mais, estaremos no estande da Microsoft, bem como no estande da Fermion. E temos uma palestra mais tarde hoje às 2.30 no S3, SO6. Muito obrigado.

Ver a transcrição original em inglês

[0:00] So I've recently gotten into boxing. I don't actually box. I mostly just watch from the comfort of my couch. And in boxing, there are weight classes like heavyweight, middleweight, lightweight, and so on. And it's exactly how it sounds. A boxer must meet a certain weight to box within a class. And these weight classes, Remind me of the clouds of the waves of cloud computing.

[0:35] Thank you. So first up, you've got your virtual machines. This is your heavyweight class. Being in the heavyweight class in boxing means you are powerful. But if you get knocked down, it's going to take some time for you to get back up. That's basic physics, right? Virtual machines are the OG heavyweight runtime for the Cloud. Often, they take minutes to start, But they contain an entire operating system from kernel to applications, so you can do a lot with them.

[1:10] A container is lighter and smaller. And in the world of Cloud Computing, this would be your middleweight class. Middleweight strikes a balance between speed and power. containers have given us the perfect environment for running a single long-running server. They take seconds, not minutes, to start, and consume fewer resources than virtual machines. Now, add to that WebAssembly, the third wave of Cloud computing. This is your lightweight class. Speed and agility is the name of the game here. Compile your app once directly to the WebAssembly binary format, and use that same binary across multiple architectures and operating systems with no changes.

[2:01] And a WebAssembly app can be cold started in about half a millisecond. half a millisecond, making it vastly faster than even-- making its startup speed vastly faster than even containers. So how do we run WebAssembly on Kubernetes and in cloud-native environments? I'm going to talk to you about Spin Cube today, which is a project that helps you do just that.

[2:36] So this is a SpinApp custom resource in Kubernetes. Online 6 is a reference to an OCI artifact containing... A WebAssembly binary. Yeah, that's a thing you can do. Behind this SpinApp custom resource lives a spin operator. Once I apply my spin app to my cluster, we're going to see it running in our cluster here.

[3:11] The spin app, the spin operator will actually pick it up and deploy the corresponding deployment pod and service. It's configuring the pod to use a Wasm runtime instead of a container runtime to execute our app. So on the outside, you still have your pods and services, same as usual, but on the inside, they're actually WebAssembly apps, not containers. This is that same app. We're going to increase the replica account to 50, and apply it to our cluster.

[3:43] I'm running on a two node AKS cluster here. And if I check out my pods, they're being distributed, look closely on my two nodes. One is an x86 node and the other is Ampere's ARM64 base node. Thank you. And if I want to scale even further, then I can just throw that same binary on Any burstable incense, that's cheap for me at that time. Thank you. These are the kinds of things that have been important to the team over at Zeiss Group.

[4:18] And I'd like to invite Kai now to talk to us about their experience in this space. Thank you, Kai. Merci, Michel. So coming from size, I can relate to physics. As the ARC in our logo suggests, we handle with spheres, lenses, optics. From microscopes up to this bulk cube like looking clunks of metal, which are high NA lithocatheter systems, which you basically need to produce your beloved Apple silicon or NVIDIA GPUs. These are the only optic devices on the whole planet which can do that.

[4:58] So my R&D experts, they always try to explain this kind of optics to me, but there's no help there, so I can only grasp the basics of it. But what I understand is how to operate such business models on information technology. Many of our business models require that we process the information electronically, be it just for the pure scale of information we have to process or the product specifications which are attached.

[5:34] Oh. So in the beginning, money is not the issue when we start such projects. We The project risks are high, the commitments are made, And we basically recouponated the hell out of that case. Even rubbed some CNCF goodness on it like DAP or KEDA, whatever. As soon as the dust and the business settles, our finance folks catch up with us, which then requires us to basically go into more design for cost approach.

[6:06] Secondly, Often in the beginning, we are capable to have the luxury of designing those services Within bounded contexts, applying domain-driven design So really doing nice systems. Further down the road, often logistic aspects kick in, like container runtime sizes, number of parts limitations, whatever. And soon we are forced to give in basically that the technical granularity of what we run diverges from the semantic granularity. And this is one of the points why we started looking into WebAssembly in the cloud, basically to get those two closer together, the semantic and technical granularity.

[6:58] For that, we generalize one of our many flows, which reflects how we usually do that processing. That means we get a number of messages or orders dropped at our doorstep, and then the expectation is that these messages, they are processed in a given time. answering, okay, when, how we produce or deliver that thing. And this is exactly what we measure. from the arrival of the orders to until they are landing in some buckets.

[7:30] Now let's see that in action. Bye. So what we see here are these three spin apps which had handled the load and their respective deployments. So you see quite regular Kubernetes primitives. Let's generate some load. You see the basic shape of replicas. The load picks up. The first set of replicas already takes in the first chunk of orders. And as soon as the environment is scaling up, the number of orders that can be processed in the same time slice increases dramatically. First, some distributor functions picks the orders, does some basic decisions, and then hands it over over queues to a second wave of services, which basically put it in buckets to some other decisions.

[8:20] What we can see here is how fast the services are scaling up and picking up the traffic. Thank you. In the end, the whole throughput will be around 34 seconds, which if you follow other posts I did with other environments, is pretty darn good. So in the end it's just physics. By using a spin app with WebAssembly artifact instead of a regular deployment, we can for such a Node.js Express app, we can reduce the size from 400 megs to almost 2 megs.

[8:57] So even if we would add more logic, that size will not dramatically increase. And that allows that the... that the scale goes up fast and scales down also as fast, which then on the other hand allows that the same resources with a slight overlap can be reused already by the second or third or fourth wave, whatever wave of processing you have. So we can use the same resources multiple times within such a process.

[9:29] And that's by still applying all the tools, all the environments we already know. Yeah. Again, to conclude, The smaller packaging size allows that we pack more services into the same resources or on the other hand use cheaper resources to process the same posture of services. We can scale up down faster, have a higher grade of reusability of the same resources.

[10:02] while keeping the the the tools we know Here again in numbers, even when switching from just from x86 to ARM, we could reduce with 60%, so we could use 60% cheaper resources for that. And with that, I want to hand over to my brother in hair color, Ralph. Thank you. What you've just seen and heard from Kai is a result of a collection of open source projects in both Go and also Rust and open source foundations, obviously the CNCF and also the Bytecode Alliance Foundation across the entire world in collaboration. And I want to highlight just some of the important projects that you're probably familiar with that actually make this kind of innovation possible.

[10:55] First and foremost is Kubernetes. It's easy to think when we mention WebAssembly that we're somehow not talking about Kubernetes. We are. It's the maturity and the stability of Kubernetes as a platform that allows us to continue innovating in and around it. And for example, the Container D project in the CNCF has many different shims. that allow you to integrate different kinds of workloads into Kubernetes. And Microsoft is very proud of having created the Rust-based Container D project right that allows a cold run was the excuse me and that allows the contributors along with people like Fermion, Docker, Second State, and many others, can use this project to bring even more flexibility and scaling agility to Kubernetes without affecting the containers you're already using in your clusters right now. And ZEISS is no different than what many, many others are already doing.

[11:56] Now, because it's built on RunWazi, the WebAssembly container DSHIM for spin allows Kubernetes to scale up and down very quickly, as you just saw. but also move your WebAssembly, your workloads from one operating system to another and from one CPU to another on the fly and without multi-arch builds. And because they enable WebAssembly workloads to run in the same pod. As containers, you can continue using your workloads, your container workloads that you use right now. Now finally I want to call out, as I put up here, the operator framework.

[12:30] And KWASM from Liquid Reply, that operator is used to install the SpinShim easily. That's what Kai and Zeiss used without requiring a new cluster. You don't have to bootstrap something new. And there's a community behind all of this work, every single thing we've done. So, most people, though, would really prefer not to search for individual tools. I know a bunch of you are curious to dig into the bits, and you can because they're projects.

[13:02] Right? But most people would like to use a single stack of tools. They don't want to find them all together and then line them up the right way and configure each one. So working with the feedback of Zeiss and others... Fermion, Microsoft, SUSE, and Liquid Reply are proud to announce the creation of SpinCube, which you saw the slide before, which is an open source stack that you can use to streamline the experience of developing, deploying, and operating WebAssembly workloads on Kubernetes along with your container ones. Now, SpinCube includes a runtime class manager, which handles the installation upgrade and uninstallation, of the workloads, the container D shims, like RunWazi-based shims that we're using here.

[13:44] And to run them, we actually have a series of shims. In SpinCube, we're using the RunWazi-based Shims. uh, shim for spin, the spin project. And to optimize those workloads, to do what Zeiss was doing, trying to dial in the density and scaling agility, We use the spin operator. And together, this very full stack of Kubernetes tools allows everyone here and around the world to go ahead and get the very best of their Kubernetes workloads wherever they are. We'd love you to give Spin Cube a try.

[14:16] And the best way to do that is go ahead and snap the QR code. and tell us what you think. Jump into the project repos, give us feedback, and join up and help us make it even better than it already is. Now I want to ask Michelle to come back up here for a second. Thank you. Thank you. And today we'd like to announce that we have submitted the application to contribute SpinCube to the CNCF. Many of us in the cloud native community have been so excited over the last several years about WebAssembly.

[15:00] got lots of people and you got lots of projects working together to make this a more accessible technology in our ecosystem. And we hope that you join us in this endeavor of trying to make the power of WebAssembly even more accessible and leverageable in our space. And if you want to learn more, we'll be at the Microsoft booth as well as the Fermion booth. And we have a talk later today at 2.30 in S3, SO6. Thank you so much.

Abrir no ambiente de trabalho do Vidleaf

Pesquise a transcrição, selecione linhas, copie citações com carimbos de data/hora, traduza.

Abrir no ambiente de trabalho →

Atribuição

"Painel de Discussão Principal: Revolucionando Arquiteturas Nativas da Nuvem com WebAssembly" por CNCF [Cloud Native Computing Foundation] (https://www.youtube.com/@cncf), licenciado sob CC BY 3.0 (https://creativecommons.org/licenses/by/3.0/). Vídeo original: https://www.youtube.com/watch?v=tu8a-GefJL8. Esta página é uma transcrição em texto do vídeo com quebras de parágrafo e carimbos de data/hora adicionados; o criador não é afiliado e não endossa o Vidleaf. O Vidleaf adicionou pontuação por IA e um resumo gerado por IA; o texto original permanece disponível nesta página.

Você é o criador ou detentor de direitos? Solicite uma correção ou remoção: copyright@vidleaf.app (veja Sobre estas páginas).

Última atualização