WebAssembly permite rodar código compilado de outras linguagens em dispositivos da Internet das Coisas de forma otimizada e segura. Runtimes como Wasm Micro Runtime trazem WebAssembly para ambientes embarcados. Demonstrações mostraram linguagens como Rust, TinyGo e AssemblyScript rodando diretamente em um ESP32 e acessando recursos como rede WiFi. WebAssembly também pode ser usado para definir regras de negócio customizáveis que atualizam a lógica de um dispositivo sem alterar seu código principal.
A Integração Contínua é referente aos estágios de criação e teste de unidade do processo de lançamento de software. Cada revisão confirmada aciona criação e teste automatizados.
A Distribuição Contínua é uma prática de desenvolvimento de software em que as alterações de código são criadas, testadas e preparadas automaticamente para que a ordem de produção seja liberada. Ela expande com base na integração contínua ao implantar todas alterações de código em um ambiente de teste e/ou ambiente de produção, após o estágio de criação.
O DevOps é a combinação de filosofias culturais, práticas e ferramentas que aumentam a capacidade de uma empresa de distribuir aplicativos e serviços em alta velocidade: otimizando e aperfeiçoando produtos em um ritmo mais rápido do que o das empresas que usam processos tradicionais de desenvolvimento de software e gerenciamento de infraestrutura. Essa velocidade permite que as empresas atendam melhor aos seus clientes e compitam de modo mais eficaz no mercado.
Muitas vezes quando desenvolvemos aplicações de escaláveis hoje em dia, acabamos atrelando parte deles a uma nuvem especifica. Porém isso traz problemas para como vendor lock-in, dificuldade de rodar em ambiente local, falta de portabilidade e entre outros problemas. E existem serviços em comum que são acessados em nuvem como Banco de Dados, Filas de Mensageria, Armazenamento de arquivo, logs, tracing e que poderiam ser abstraídos e preferencialmente intercambiáveis entre nuvens. Nessa palestra quero mostrar como desenvolver apps mais portáveis e ainda assim mantendo as vantagem de se rodar em nuvem.
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
Será mostrado uma aplicação de demonstração em IoT para monitorar o nível de tanques em uma fazenda. Será construída uma API com Django Rest Framework, salvando os dados básicos no Cloud SQL e dados de telemetria dos dispositivos no BigQuery. Tudo isso rodando em ambiente serverless no Google Cloud, sem ter que se queimar configurando servidores. Também veremos o básico de um dispositivo IoT para este projeto feito com MicroPython.
Uma visão geral do que é necessário na grande maioria dos projetos de IoT e ninguém conta.
Definindo em 5 partes os componentes do projeto:
* Coisa
* Conectividade e Comunicação
* Backend
* Frontend
* Analise de dados
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Alvaro Viebrantz
Uma introdução a diversas ferramentas e serviços que podem ser utilizados no Google Cloud para a construção de aplicações envolvendo Internet das Coisas. Vamos ver um overview de como construir várias soluções completas de IoT, desde a coleta de dados dos dispositivos de forma segura, armazenamento massivo de informação e como fazer analise e visualização dos dados. Tudo isso em sua grande maioria usando serviços gerenciados, sem ter que se queimar configurando servidores.
A Integração Contínua é referente aos estágios de criação e teste de unidade do processo de lançamento de software. Cada revisão confirmada aciona criação e teste automatizados.
A Distribuição Contínua é uma prática de desenvolvimento de software em que as alterações de código são criadas, testadas e preparadas automaticamente para que a ordem de produção seja liberada. Ela expande com base na integração contínua ao implantar todas alterações de código em um ambiente de teste e/ou ambiente de produção, após o estágio de criação.
O DevOps é a combinação de filosofias culturais, práticas e ferramentas que aumentam a capacidade de uma empresa de distribuir aplicativos e serviços em alta velocidade: otimizando e aperfeiçoando produtos em um ritmo mais rápido do que o das empresas que usam processos tradicionais de desenvolvimento de software e gerenciamento de infraestrutura. Essa velocidade permite que as empresas atendam melhor aos seus clientes e compitam de modo mais eficaz no mercado.
Muitas vezes quando desenvolvemos aplicações de escaláveis hoje em dia, acabamos atrelando parte deles a uma nuvem especifica. Porém isso traz problemas para como vendor lock-in, dificuldade de rodar em ambiente local, falta de portabilidade e entre outros problemas. E existem serviços em comum que são acessados em nuvem como Banco de Dados, Filas de Mensageria, Armazenamento de arquivo, logs, tracing e que poderiam ser abstraídos e preferencialmente intercambiáveis entre nuvens. Nessa palestra quero mostrar como desenvolver apps mais portáveis e ainda assim mantendo as vantagem de se rodar em nuvem.
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
Será mostrado uma aplicação de demonstração em IoT para monitorar o nível de tanques em uma fazenda. Será construída uma API com Django Rest Framework, salvando os dados básicos no Cloud SQL e dados de telemetria dos dispositivos no BigQuery. Tudo isso rodando em ambiente serverless no Google Cloud, sem ter que se queimar configurando servidores. Também veremos o básico de um dispositivo IoT para este projeto feito com MicroPython.
Uma visão geral do que é necessário na grande maioria dos projetos de IoT e ninguém conta.
Definindo em 5 partes os componentes do projeto:
* Coisa
* Conectividade e Comunicação
* Backend
* Frontend
* Analise de dados
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Alvaro Viebrantz
Uma introdução a diversas ferramentas e serviços que podem ser utilizados no Google Cloud para a construção de aplicações envolvendo Internet das Coisas. Vamos ver um overview de como construir várias soluções completas de IoT, desde a coleta de dados dos dispositivos de forma segura, armazenamento massivo de informação e como fazer analise e visualização dos dados. Tudo isso em sua grande maioria usando serviços gerenciados, sem ter que se queimar configurando servidores.
Vamos ver o passo a passo de como configurar um ambiente de integração continua e deploy continuo usando ferramentas gerenciadas no Google Cloud, sem se queimar tendo que gerenciar servidores.
Demos
Demo em Flask
https://github.com/alvarowolfx/flask-demo
Demo de Múltiplos Ambientes
https://github.com/alvarowolfx/gcloud-ci-cd-demo
Use Case em IoT
https://medium.com/google-cloud/serverless-continuous-integration-and-ota-update-flow-using-google-cloud-build-and-arduino-d5e1cda504bf
https://github.com/alvarowolfx/gcloud-ota-arduino-update
Referencias
Deploy de aplicativos móveis
Android APK
https://cloud.google.com/community/tutorials/building-android-apk-with-cloud-build-gradle-docker-image
Flutter e Cloud Build
https://medium.com/@lidemin/flutter-ci-cd-with-cloud-build-android-9cd12ade8306
Outros ambientes de execução
Google App Engine
https://medium.com/google-cloud/continuous-delivery-in-google-cloud-platform-cloud-build-with-app-engine-8355d3a11ff5
Cloud Functions
https://cloud.google.com/cloud-build/docs/deploying-builds/deploy-functions
https://medium.com/swlh/how-to-ci-cd-on-google-cloud-platform-1e631cded335
https://cloud.google.com/devops
https://github.com/GoogleCloudPlatform/github-actions/blob/master/get-secretmanager-secrets/README.md
https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context
https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values#yaml_2
https://cloud.google.com/cloud-build/docs/building/build-go#building_using_go_modules
Cloud Run Quickstart - https://www.youtube.com/watch?v=3OP-q55hOUI
https://fireship.io/lessons/ci-cd-with-google-cloud-build/
Por muito tempo desenvolvedores e administradores de infraestrutura tentam fazer integrações para que a implantação (deployment) seja mais efetiva, com menos sofrimento ao portar do ambiente de desenvolvimento para homologação/produção.
Essa apresentação introduz ao movimento DevOps, que aproxima desenvolvedores e administradores de sistema (sysadmin), para que trabalhem em maior sinergia.
A proposta é ilustrar os pilares da cultura DevOps, bem como os softwares que a permeia, focada em ferramentas e práticas reais, com exemplos do ecossistema PHP.
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
JBoss Fuse Service Works - O Fuse além da integração
Red Hat Day 07/11/2014
1 - Arquitetura de aplicações Java
2 - Soluções de integração
3 - Arquitetura orientada a serviços SOA
5 - Diferença entre JBoss Fuse e JBoss Fuse Service Works
Empresas de ponta possuem ciclos de entrega de software medido em dias ao invés de meses. Essa agilidade é alcançada através de práticas de DevOps como entrega contínua, da qual permite automatizar a construção, testes e deploy mudanças no código da aplicação. Essa automação permite reconhecer problemas antecipadamente e aumentando a produtividade dos desenvolvedores.
Nesse webinar, vamos compartilhar os processos que os engenheiros da Amazon utilizam na prática de DevOps e discutir como você pode levar estes processos para sua empresa utilizando uma série de serviços (AWS CodePipeline e AWS CodeDeploy). Estes por sua vez, foram inspirados pela nossas ferramentas de desenvolvimento internos e cultura DevOps.
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...Dan El Pierre Rezende
Slides da apresentação feita no AWS Summit em São Paulo, onde falei um pouco dos serviços da AWS que podem acelerar a adoção de DevOps nas organizações.
Veja mais assuntos e dicas de AWS em meu site: https://danrezende.com.br
Nesta palestra do QCon Rio 2015, contamos como criar uma infraestrutura em nuvem com práticas DevOps e ter sucesso na Black Friday vendendo milhões. Falamos de AWS, Chef, Puppet, Ansible, Jenkins, Blue/Green deployments, deployment pipelines e mais algumas dicas para ter sucesso no grande dia do varejo.
As empresas geralmente têm dificuldades para selecionar e implementar projetos de Big Data que produzem resultados significativos.
Aprender com o sucesso e as falhas de outras empresas ajudam a identificar as armadilhas e extrair mais valor de suas iniciativas de Big Data. Um novo estudo da 451 Research faz um mergulho em seis organizações e seus esforços de adoção de Big Data utilizando Cloud Computing.
Neste Webinar nós vamos compartilhar pontos-chave descobertos neste estudo e verificar como empresas de vários segmentos usam Cloud para obter valores mensuráveis com Big Data. Você vai conhecer os desafios encontrados, as ferramentas que utilizaram para endereçar estes desafios, e os benefícios de usar AWS Cloud para desenvolver e entregar soluções de Big Data.
É essencial que o seu programa de Nuvem comece da melhor forma possível e entregue valor para o negócio rapidamente, pois é uma iniciativa de grande visibilidade na companhia. Nesta sessão, falaremos sobre as capacidades e atividades necessárias para executar aplicações corporativas em produção nos seus primeiros 90 dias de AWS.
https://aws.amazon.com/pt/enterprise/
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaRenato Groff
Slides do minicurso gratuito promovido pela comunidade Azure na Prática no dia 09/05/2020, com foco em desenvolvimento Web utilizando serviços do Microsoft Azure.
Neste webinar, você aprenderá como as empresas podem se valer da nuvem da AWS para automatizar os pipelines de desenvolvimento de software. Essa abordagem permite que sua equipe seja mais ágil, melhorando sua capacidade para entregar aplicações e serviços mais rapidamente.
Com o Amazon API Gateway e AWS Lambda é possível construir API de forma escalável, sem utilização de servidor. Nessa sessão será abordado arquiteturas, boas práticas e integrações entre os serviços.
Com o Amazon API Gateway e AWS Lambda é possível construir API de forma escalável, sem utilização de servidor. Nessa sessão será abordado arquiteturas, boas práticas e integrações entre os serviços.
Amazon VPC (Virtual Private Cloud) é a forma lógica de organização de rede na AWS. Nessa sessão, abordaremos os fundamentos desse serviço, assim como aspectos de conectividade com a AWS
Arquitetura de Internet das Coisas usando Google CloudAlvaro Viebrantz
Uma introdução a diversas ferramentas e serviços que podem ser utilizados no Google Cloud para a construção de aplicações envolvendo Internet das Coisas. Vamos ver um overview de como construir várias soluções completas de IoT, desde a coleta de dados dos dispositivos de forma segura, armazenamento massivo de informação e como fazer analise e visualização dos dados. Tudo isso em sua grande maioria usando serviços gerenciados, sem ter que se queimar configurando servidores.
Vamos ver o passo a passo de como configurar um ambiente de integração continua e deploy continuo usando ferramentas gerenciadas no Google Cloud, sem se queimar tendo que gerenciar servidores.
Demos
Demo em Flask
https://github.com/alvarowolfx/flask-demo
Demo de Múltiplos Ambientes
https://github.com/alvarowolfx/gcloud-ci-cd-demo
Use Case em IoT
https://medium.com/google-cloud/serverless-continuous-integration-and-ota-update-flow-using-google-cloud-build-and-arduino-d5e1cda504bf
https://github.com/alvarowolfx/gcloud-ota-arduino-update
Referencias
Deploy de aplicativos móveis
Android APK
https://cloud.google.com/community/tutorials/building-android-apk-with-cloud-build-gradle-docker-image
Flutter e Cloud Build
https://medium.com/@lidemin/flutter-ci-cd-with-cloud-build-android-9cd12ade8306
Outros ambientes de execução
Google App Engine
https://medium.com/google-cloud/continuous-delivery-in-google-cloud-platform-cloud-build-with-app-engine-8355d3a11ff5
Cloud Functions
https://cloud.google.com/cloud-build/docs/deploying-builds/deploy-functions
https://medium.com/swlh/how-to-ci-cd-on-google-cloud-platform-1e631cded335
https://cloud.google.com/devops
https://github.com/GoogleCloudPlatform/github-actions/blob/master/get-secretmanager-secrets/README.md
https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context
https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values#yaml_2
https://cloud.google.com/cloud-build/docs/building/build-go#building_using_go_modules
Cloud Run Quickstart - https://www.youtube.com/watch?v=3OP-q55hOUI
https://fireship.io/lessons/ci-cd-with-google-cloud-build/
Por muito tempo desenvolvedores e administradores de infraestrutura tentam fazer integrações para que a implantação (deployment) seja mais efetiva, com menos sofrimento ao portar do ambiente de desenvolvimento para homologação/produção.
Essa apresentação introduz ao movimento DevOps, que aproxima desenvolvedores e administradores de sistema (sysadmin), para que trabalhem em maior sinergia.
A proposta é ilustrar os pilares da cultura DevOps, bem como os softwares que a permeia, focada em ferramentas e práticas reais, com exemplos do ecossistema PHP.
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
JBoss Fuse Service Works - O Fuse além da integração
Red Hat Day 07/11/2014
1 - Arquitetura de aplicações Java
2 - Soluções de integração
3 - Arquitetura orientada a serviços SOA
5 - Diferença entre JBoss Fuse e JBoss Fuse Service Works
Empresas de ponta possuem ciclos de entrega de software medido em dias ao invés de meses. Essa agilidade é alcançada através de práticas de DevOps como entrega contínua, da qual permite automatizar a construção, testes e deploy mudanças no código da aplicação. Essa automação permite reconhecer problemas antecipadamente e aumentando a produtividade dos desenvolvedores.
Nesse webinar, vamos compartilhar os processos que os engenheiros da Amazon utilizam na prática de DevOps e discutir como você pode levar estes processos para sua empresa utilizando uma série de serviços (AWS CodePipeline e AWS CodeDeploy). Estes por sua vez, foram inspirados pela nossas ferramentas de desenvolvimento internos e cultura DevOps.
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...Dan El Pierre Rezende
Slides da apresentação feita no AWS Summit em São Paulo, onde falei um pouco dos serviços da AWS que podem acelerar a adoção de DevOps nas organizações.
Veja mais assuntos e dicas de AWS em meu site: https://danrezende.com.br
Nesta palestra do QCon Rio 2015, contamos como criar uma infraestrutura em nuvem com práticas DevOps e ter sucesso na Black Friday vendendo milhões. Falamos de AWS, Chef, Puppet, Ansible, Jenkins, Blue/Green deployments, deployment pipelines e mais algumas dicas para ter sucesso no grande dia do varejo.
As empresas geralmente têm dificuldades para selecionar e implementar projetos de Big Data que produzem resultados significativos.
Aprender com o sucesso e as falhas de outras empresas ajudam a identificar as armadilhas e extrair mais valor de suas iniciativas de Big Data. Um novo estudo da 451 Research faz um mergulho em seis organizações e seus esforços de adoção de Big Data utilizando Cloud Computing.
Neste Webinar nós vamos compartilhar pontos-chave descobertos neste estudo e verificar como empresas de vários segmentos usam Cloud para obter valores mensuráveis com Big Data. Você vai conhecer os desafios encontrados, as ferramentas que utilizaram para endereçar estes desafios, e os benefícios de usar AWS Cloud para desenvolver e entregar soluções de Big Data.
É essencial que o seu programa de Nuvem comece da melhor forma possível e entregue valor para o negócio rapidamente, pois é uma iniciativa de grande visibilidade na companhia. Nesta sessão, falaremos sobre as capacidades e atividades necessárias para executar aplicações corporativas em produção nos seus primeiros 90 dias de AWS.
https://aws.amazon.com/pt/enterprise/
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaRenato Groff
Slides do minicurso gratuito promovido pela comunidade Azure na Prática no dia 09/05/2020, com foco em desenvolvimento Web utilizando serviços do Microsoft Azure.
Neste webinar, você aprenderá como as empresas podem se valer da nuvem da AWS para automatizar os pipelines de desenvolvimento de software. Essa abordagem permite que sua equipe seja mais ágil, melhorando sua capacidade para entregar aplicações e serviços mais rapidamente.
Com o Amazon API Gateway e AWS Lambda é possível construir API de forma escalável, sem utilização de servidor. Nessa sessão será abordado arquiteturas, boas práticas e integrações entre os serviços.
Com o Amazon API Gateway e AWS Lambda é possível construir API de forma escalável, sem utilização de servidor. Nessa sessão será abordado arquiteturas, boas práticas e integrações entre os serviços.
Amazon VPC (Virtual Private Cloud) é a forma lógica de organização de rede na AWS. Nessa sessão, abordaremos os fundamentos desse serviço, assim como aspectos de conectividade com a AWS
Arquitetura de Internet das Coisas usando Google CloudAlvaro Viebrantz
Uma introdução a diversas ferramentas e serviços que podem ser utilizados no Google Cloud para a construção de aplicações envolvendo Internet das Coisas. Vamos ver um overview de como construir várias soluções completas de IoT, desde a coleta de dados dos dispositivos de forma segura, armazenamento massivo de informação e como fazer analise e visualização dos dados. Tudo isso em sua grande maioria usando serviços gerenciados, sem ter que se queimar configurando servidores.
Apresentação feita no AngularSP Meetup #28 Online no dia 10/06/2020 onde apresento a Arquitetura Serverless, abordando conceitos, quando usar, principais vantagens e desvantagens e como essa arquitetura pode ajudar o ecossistema das aplicações.
Introdução a arquitetura Microservices, como evoluímos das arquiteturas monolíticas até padrões de arquitetura Microservice, onde pequenos serviços distribuídos na rede compõem uma grande peça. Serão abordadas técnicas de distribuição de dados e chamadas remotas, gerenciamento dos serviços distribuídos e como minimizar as dores de cabeça. Toda arquitetura e prática será realizada em cima da plataforma NodeJS.
.NET 6: O que há de novo e o que está por vir?akamud
.NET 6 é a nova versão do .NET, que completa a unificação da plataforma e adiciona novos recursos para a construção de aplicativos web, nativos e híbridos para Linux, Windows, Mac, iOS e Android com uma única base de código. Veja como escrever menos código, alcançar mais dispositivos e construir aplicativos nativos em nuvem mais rapidamente.
Palestra realizada no TDC Future 2021, trilha Arquitetura de Software, junto de Letticia Nicoli.
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
.NET 6 é a nova versão do .NET, que completa a unificação da plataforma e adiciona novos recursos para a construção de aplicativos web, nativos e híbridos para Linux, Windows, Mac, iOS e Android com uma única base de código. Veja como escrever menos código, alcançar mais dispositivos e construir aplicativos nativos em nuvem mais rapidamente.
Palestra realizada no TDC Future 2021, trilha Arquitetura de Software, junto de Mahmoud Ali.
Seminário de Desenvolvimento Mobile - Etec CafelândiaDiego Cavalca
Evento organizado pelo professor Diego Cavalca, onde expõe uma visão geral sobre os principais aspectos da carreira de desenvolvimento de aplicativos móveis, apresentada de modo prático pelos alunos do 3º Módulo de Informática.
Palestras:
- Aplicativos híbridos
- HTML5 - Recursos e Funcionalidades
- Apache Cordova
- Mercado Mobile Atual
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
Do jQuery aos microfrontends: os desafios de manter uma aplicação web - Luiz Fernando Rodrigues, ContaAzul
[JS EXPERIENCE 2018] - 5 de julho de 2018
São Paulo/SP
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...iMasters
Wellington Silva, DevOps da Global Fashion Group, palestrou sobre "Vantagens e resultados de containers e VMs para o e-commerce", no DevCommerce Conference 2016.
O DevCommerce Conference 2016 aconteceu nos dias 06 e 07 de junho de 2016, no Hotel Tivoli em São Paulo-SP http://devcommerce2016.imasters.com.br/
Aquisição de dados IoT com Event Sourcing e MicroservicesGDGFoz
Muito se fala em persistência e consistência de dados, mas como isso funciona no dia-a-dia da Indústria? O Volume de dados pode chegar na casa de trilhões de mensagens trocadas entre sistemas por dia, para isso, é necessária a garantia da entrega da informação e tolerância a falhas. Diversas alternativas podem ser implementadas como event sourcing utilizando Apache Kafka® e microsserviços pode resolver boa parte desses problemas. - Frederick Nazario Moschkowich
Dicas de como entrar no mundo do DevSecOps, conhecendo um pouco mais sobre como evitar vulnerabilidades e scannear seu ambiente. Uma palhinha do que foi a palestra maravilhosa dada pela Camila Martins e pela Rob Robert no Roadsec - Camila Martins
Angular >= 2 - One Framework Mobile & DesktopGDGFoz
Vou abordar dois pontos. Um para aqueles que estão escolhendo uma plataforma de desenvolvimento e outro para aqueles que já começaram a se aventurar mas não sabem como montar o quebra-cabeça.
Usarei exemplos de código e os conceitos de programação que uso no desenvolvimento da interface do MyDevBot. - Dalton Salvatti
Automação Residencial Extrema com OpensourceGDGFoz
Você constantemente tenta solucionar problemas com gambiarras soluções criativas de hardware e software? Curte microcontroladores mas o sketch do LED piscando já não te da mais o mesmo barato? Você tem um desejo secreto de fazer sua casa ser uma entidade autoconsciente e potencialmente desencadear a ruína da raca humana? Se você fez 樂 para qualquer de uma dessas perguntas, eu lhe convido a embarcar nessa incrível jornada de muita dor e lagrimas comendo sorvete debaixo da mesa escutando 'All by Myself' por Celine Dion emoções na busca do setup perfeito da casa verdadeiramente inteligente usando software open-source e microcontroladores populares. - Jan Seidl
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?GDGFoz
Brasil.IO iniciou em março um trabalho de coleta e análise de dados sobre a epidemia em nível municipal. Com a atuação de mais de 40 voluntários, a plataforma colaborativa já tem subsidiado diversas análises e projeções. Se tivermos apoio, poderemos ampliar nossa atuação para ampliar as bases de dados disponibilizadas e capacitar e auxiliar gestores públicos na coleta e divulgação de informações com mais qualidade, o que acreditamos que poderá gerar políticas mais acertadas nesse cenário de emergência. - Álvaro Justen
Gabriel é cientista da computação e grande entusiasta de assuntos como qualidade de código, boas práticas e arquitetura de software. Hoje é software engineer no ReclameAQUI e vai falar um pouco sobre os mitos e verdades da programação funcional.
Como implementar autenticação de dois fatores em sua aplicação
RICARDO COELHO é cientista da computação pela Federal do Maranhão, investidor e desenvolvedor especialista em Blockchain. Serial Community Founder, participou da criação dos grupos PHP-Maranhão, GDG São Luis, Agile Maranhão, Meta Maker, Investidor Pro e Blockchain São Luis. Possui mais de 25 anos de experiência profissional em desenvolvimento e docência e representa o Maranhão como palestrante em eventos no Brasil e no exterior. Atua como consultor independente pela integração da tríade governo-mercado-academia. É especialista em em sistemas de segurança da informação, auditor certificado NBR ISO/IEC 27001 e perito forense digital.
Nesta palestra serão apresentadas ferramentas e técnicas para se manter seguro durante a quarentena.
Christiane Borges é Tecnóloga em Redes de Comunicação e Mestre em Engenharia Elétrica e da Computação. Fundadora do Grupo de Robótica para Meninas Metabotix e membro do Grupo de Robótica GYNBOT. Atualmente, professora adjunta no Instituto Federal de Goiás (IFG) campus Luziânia e Coordenadora do Curso Técnico Integrado em Informática para Internet. Participa e ajuda na organização de eventos de software livre em Goiás desde 2006.
Angular, React ou Vue? Comparando os favoritos do JS reativoGDGFoz
Angular, React ou Vue? Comparando os favoritos do JS reativo - Luana Guillande
Conheça os prós e contras dos três Frameworks/bibliotecas de javascript reativo mais utilizados no mundo e descubra quando e porquê é mais indicado usar cada um deles.
9. O que é WebAssembly
Não, o Javascript não vai morrer
• Formato binário de código
• .wasm
• Existe um formato em texto .wat
• Código proximo ao Assembly
• Podemos comparar com Bytecodes
de outras VMs como a JVM
• Baixo nível
• Portável
• Rápido
• Menor uso de memória
10. Performance na Web
Muito tempo é usado no parse + compile
• WebAssembly
• Otimizado antes da execução
• Ao contrário de Javascript que otimiza a medida que é executado
Imagem do artigo - https://medium.com/trainingcenter/webassembly-a-jornada-o-que-%C3%A9-wasm-75e3f0f03124
11. Suporte ao WebAssembly
Os browsers abraçaram a especificação - 91.18% em Jul/2020
https://caniuse.com/#feat=wasm
13. WebAssembly por ai
Rode código feito em outras linguagens no Browser
• WASM por si não é uma linguagem
• É um target para outras linguagens
• Algumas linguagens que compilam para Wasm
• C/C++ ⭐ - Emscriptem
• Rust ⭐
• Assemblyscript ⭐ - Flavor de Typescript
• TinyGo - Flavor de Go
• Golang começou suporte também
• Pyodide - Python + Numpy stack
14. Coisas malucas feitas com WebAssembly
Tem uso em produção
• Figma
• Engine de manipulação de imagens
• www.figma.com/blog/webassembly-cut-figmas-load-time-by-3x/
• Autocad Web
• Engine de CAD portada de C++
• Demo no Google I/O 2018 - www.youtube.com/watch?v=D4fNcX0Q9gA
• Blazor - Framework Web .Net
• Vugu - Framework Frontend em Go
• Valerie - Framework Frontend em Rust
github.com/mbasso/awesome-wasm
16. WebAssembly everywhere
Outros casos de uso e também tem uso em produção
• Edge Impulse ⭐
• Roda modelos de ML em dispositivos IoT
• Fastly e Cloudflare
• Rodar código de forma segura em CDNs
• Blockchain/SmartContracts
• Projetos OSS
• Wasmer - Runtime WASM - Pode ser embutido em Go/Python/PHP/Ruby
• Wasmtime - Outro Runtime WASM Standalone
• Krustlet - WASM on Kubernetes
• Postgres-ext-wasm - github.com/wasmerio/postgres-ext-wasm
17. WebAssembly está crescendo
Muita coisa ainda em pesquisa
• WASI - WebAssembly System Interface
• Como trazer acesso a recursos como arquivos, rede, chamadas de
sistema em geral ?
• Como fazer isso mantendo a portabilidade e segurança ?
hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/
20. 20
Por que está na moda hoje ?
Sensores, internet e processamento mais baratos
21. Dispositivos IoT
Bastante limitados em memoria, cpu e uso de bateria
• Apesar de contar, na maioria das vezes não estamos falando disso
• Celulares
• Roteadores/Gateways
• Raspberry Pi’s e afins
22. Dispositivos IoT
Bastante limitados em memoria, cpu e uso de bateria
• Dispositivos bem menores e mais baratos
• Lampadas, Sensores de porta, Fechaduras Smart, Termostatos
• Rastreadores em geral - GPS, rede celular, LoRa, etc
• Assistentes pessoais - Alexa/Google Assistant
• Na maioria das vezes, não tem sistema operacional nenhum
23. Dispositivos IoT
Bastante limitados em memoria, cpu e uso de bateria
CPU Memory Flash
Connectivi
ty
GPIO Arch
Power
Consumption
Price
ATMega
328p
16 Mhz 2 Kb 32 Kb None 24 AVR RISC 8 bit 40mA $1.7
STM32
“Blue Pill”
72 Mhz 20 Kb 64 kb None 32 ARM 32 bit 8mA $2.3
ESP 32
160 Mhz
Dual Core
512 Kb
Up to
16MiB
Wifi/Ble 36 XTensa 32 bit 200mA $3
24. Dispositivos IoT
Bastante limitados em memoria, cpu e uso de bateria
• Tem que se levar muito a serio questões de performance
• Uso de memoria e CPU
• Também influência em uso de bateria
• Segurança - o “S” de IoT
• Ainda assim conseguir evoluir o projeto
• Over the Air updates - OTA
• Maior parte do desenvolvimento embarcado é em C/C++
25. 25
Mas peraí, não é só em C/C++ né ?
Existem varias outras formas por ai
• MicroPython
• TinyGo
• Lua
• Várias Engine Javascript
• Duktape
• Jerryscript
• MongooseOS
• Mais usados em prototipos
28. WebAssembly + IoT
Compartilham muitos principios
• Código otimizado
• Menor uso de memoria
• Rapidez e Performance
• Sandbox e segurança
29. E se pudemos usar qualquer linguagem
e ainda ter boa performance ?
30. Esforços para trazer WebAssembly a devices embarcados
Em 2017 isso começou, mas era bem ruim
• Em 2017 o WebAssembly estava já sendo bem suportado na web
• Hoje temos vários runtimes Wasm para embarcados
• Wasm3 - Blynk
• Wasm Micro Runtime - Intel/Redhat/Fastly/Mozilla - Bytecode
Alliance
• Zephyr RTOS - Linux Foundation
• Mas ainda não resolve 100% a questão da portabilidade
• Talvez alguma variante do WASI venha a resolver isso
31. WASI for IoT ?
WASI define coisas como acesso a arquivos, rede e syscalls
• WASI é o bastante para o mundo embarcado ?
• Requisitos mais específicos
• Acesso a pinos
• Interação com sensores
• “Network” - Bluetooth/WiFi/Zigbee/LoRa
• Isso é um grande desafio, mesmo usando a mesma stack, pode
ser completamente diferente dependendo do hardware
33. Rodando Wasm como linguagem principal
Programar em qualquer linguagem para ambiente embarcado
• Aplicação embarcado funciona quase que como um SO primitivo
• Inicia o código em Wasm
• Provê os “drivers” para acesso a rede e outros recursos
• Provê interface para OTA do código em Wasm
34. Rodando Wasm como linguagem principal
Programar em qualquer linguagem para ambiente embarcado
• O que foi feita na demo
• ESP32 como dispositivo embarcado
• TinyGo/Rust/AssemblyScript compilado para Wasm
• Código Wasm fazem acesso ao hardware e rede
• Conecta na rede Wifi
• Pisca Led
• https://github.com/alvarowolfx/wasm-arduino-wifi
40. Usando Wasm como um motor de regras
Reaproveitar código base do embarcado
• Embarcado ainda é programado nativamente
• Provê uma interface que permite customização do seu funcionamento
• Consegue criar regras mais complexas do que apenas mudar
parâmetros ou passar novas configurações
• Imagine um usuário mais avançado podem descrever algumas regras
em código para atualizar o device, sem quebrar o código principal
• O mesmo código pode rodar no servidor usando runtimes Wasm
para server side
41. Usando Wasm como um motor de regras
Reaproveitar código base do embarcado
• O que foi feita na demo
• ESP32 escaneia dispositivos bluetooth
• A regra para filtrar os devices é definida via Wasm
• Embarcado busca nova versão do Wasm a cada boot para se
atualizar e pegar regras atuais
• https://github.com/alvarowolfx/wasm-ble-edge-filter
42. Regra de negocio em AssemblyScript
Um exemplo de como poderia ser customizado