Use Fastify Idioms for Writing Cloudflare Workers and Bun Servers

fastify-edge

An experimental lightweight worker version of Fastify.

Currently Cloudflare Workers and Bun are supported.

Install

npm i fastify-edge --save

Usage: Bun

import FastifyEdge from 'fastify-edge/bun'

const app = FastifyEdge();

app.get('/', (_, reply) => {
  reply.send('Hello World')
})

export default app;

See examples/bun.

Usage: Cloudflare Workers

import FastifyEdge from 'fastify-edge'

const app = FastifyEdge()

app.get('/', (_, reply) => {
  reply.send('Hello World')
})

See examples/cloudflare with miniflare.

Advanced Example

app.addHook('onSend', (req, reply, payload) => {
  if (req.url === '/') {
    return `${payload} World!`
  }
})

app.get('/redirect', (_, reply) => {
  reply.redirect('/')
})

app.get('/route-hook', {
  onRequest (_, reply) {
    reply.send('<b>Content from onRequest hook</b>')
  },
  handler (_, reply) {
    reply.type('text/html')
  }
})

Supported APIs

Server

  • app.addHook(hook, function)
  • app.route(settings)
  • app.get(path, handlerOrSettings)
  • app.post(path, handlerOrSettings)
  • app.put(path, handlerOrSettings)
  • app.delete(path, handlerOrSettings)
  • app.options(path, handlerOrSettings)

Request

req.urlReturns the request URL path (URL.pathname + URL.search).
req.originReturns the request URL origin (e.g., http://localhost:3000).
req.hostnameReturns the request URL hostname (e.g., localhost).
req.protocolReturns the request URL protocol (e.g., http or https).
req.queryMaps to the fetch request URL's searchParams object through a Proxy.
req.bodyThe consumed body following the parsing pattern from this example.
req.paramsThe parsed route params from the internal Radix-tree router, radix3.
req.headersMaps to the fetch request headers object through a Proxy.
req.rawThe raw fetch request object.

Reply

reply.code(code)Sets the fetch response status property.
reply.header(key, value)Adds an individual header to the fetch response headers object.
reply.headers(object)Adds multiple headers to the fetch response headers object.
reply.getHeader(key)Retrieves an individual header from fetch response headers object.
reply.getHeaders()Retrieves all headers from fetch response headers object.
reply.removeHeader(key)Remove an individual header from fetch response headers object.
reply.hasHeader(header)Asserts presence of an individual header in the fetch response headers object.
reply.redirect(code, dest)
reply.redirect(dest)
Sets the status and redirect location for the fetch response object.
Defaults to the HTTP 302 Found response code.
reply.type(contentType)Sets the content-type header for the fetch response object.
reply.send(data)

Sets the body for the fetch response object.
 

Can be a string, an object, a buffer or a stream.

Objects are automatically serialized as JSON.

Supported hooks

The original Fastify onRequest, onSend and onResponse are supported.

Diverging from Fastify, they're all treated as async functions.

They can be set at the global and route levels.

Limitations

  • No support for preHandler, preParsing and preValdation hooks.
  • No support for Fastify's plugin system (yet).
  • No support for Fastify's logging and validation facilities.
  • Still heavily experimental, more equivalent APIs coming soon.

Download Details: 

Author: Galvez
Source Code: https://github.com/galvez/fastify-edge 

#javascript #edge #cloudflare 

Use Fastify Idioms for Writing Cloudflare Workers and Bun Servers
Mike  Kozey

Mike Kozey

1656758400

Edge_detection: Flutter Plugin to Detect Edges Of Objects, Scan Paper

edge_detection

A flutter plugin to detect edges of objects, scan paper, detect corners, detect rectangles. It allows cropping of the detected object image and returns the path of the cropped image.

Usage:

iOS

iOS 10.0 or higher is needed to use the plugin. If compiling for any version lower than 10.0 make sure to check the iOS version before using the plugin. Change the minimum platform version to 10 (or higher) in your ios/Podfile file.

Add below permission to the ios/Runner/Info.plist:

  • one with the key Privacy - Camera Usage Description and a usage description.

Or in text format add the key:

<key>NSCameraUsageDescription</key>
<string>Can I use the camera please?</string>

Android

The plugin code is written in kotlin 1.5.31 so the same has to be set to the android project of yours for compilation. Change the kotlin_version to 1.5.31 in your android/build.gradle file.

ext.kotlin_version = '1.5.31'

Change the minimum Android SDK version to 21 (or higher) in your android/app/build.gradle file.

minSdkVersion 21

Add dependency:

Please check the latest version before installation.

dependencies:
  flutter:
    sdk: flutter
  edge_detection: ^1.0.9

Add the following imports to your Dart code:

import 'package:edge_detection/edge_detection.dart';

//Make sure to await the call to detectEdge.
String imagePath = await EdgeDetection.detectEdge;

Installing

Use this package as a library

Depend on it

Run this command:

With Flutter:

 $ flutter pub add edge_detection

This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):

dependencies:
  edge_detection: ^1.0.9

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

Import it

Now in your Dart code, you can use:

import 'package:edge_detection/edge_detection.dart';

example/lib/main.dart

import 'dart:async';
import 'dart:io';

import 'package:edge_detection/edge_detection.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String? _imagePath;

  @override
  void initState() {
    super.initState();
  }

  Future<void> getImage() async {
    String? imagePath;
    // Platform messages may fail, so we use a try/catch PlatformException.
    // We also handle the message potentially returning null.
    try {
      imagePath = (await EdgeDetection.detectEdge);
      print("$imagePath");
    } on PlatformException catch (e) {
      imagePath = e.toString();
    }

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      _imagePath = imagePath;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: SingleChildScrollView(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              Center(
                child: ElevatedButton(
                  onPressed: getImage,
                  child: Text('Scan'),
                ),
              ),
              SizedBox(height: 20),
              Text('Cropped image path:'),
              Padding(
                padding: const EdgeInsets.only(top: 0, left: 0, right: 0),
                child: Text(
                  _imagePath.toString(),
                  textAlign: TextAlign.center,
                  style: TextStyle(fontSize: 14),
                ),
              ),
              Visibility(
                visible: _imagePath != null,
                child: Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: Image.file(
                    File(_imagePath ?? ''),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Demo

Demo

Screenshots

Android

iOS

Using these native implementation
https://github.com/WeTransfer/WeScan

https://github.com/KePeng1019/SmartPaperScan

Author: Sawankumarbundelkhandi
Source Code: https://github.com/sawankumarbundelkhandi/edge_detection 
License: Apache-2.0 license

#flutter #dart #edge #ios #android 

Edge_detection: Flutter Plugin to Detect Edges Of Objects, Scan Paper

Tudo Sobre Computação De Borda E Funções De Borda

A computação de borda é uma arquitetura distribuída na qual a computação ocorre perto do local físico onde os dados estão sendo coletados e analisados. Envolve mover alguns dos recursos de armazenamento e computação para fora do data center central e para mais perto da fonte onde os dados são gerados. Ao fazer isso, menos processos são executados na nuvem e, em vez disso, movidos para locais, como no computador de um usuário, em um dispositivo IoT ou em um servidor de borda.

Levar a computação para a borda da rede minimiza a necessidade de comunicações de longa distância entre cliente e servidor, o que reduz a latência e o uso da largura de banda.

A esse respeito, a computação de borda é diferente das arquiteturas convencionais baseadas em nuvem ou no local, nas quais as cargas de trabalho hospedadas em grandes data centers centrais de nuvens públicas ou infraestruturas locais são acessadas pela rede e permanecem comparativamente distantes dos usuários .

Neste artigo, aprenderemos sobre funções de borda, o que são, seus benefícios e seus casos de uso. Também discutiremos o que as funções de borda significam para o futuro da computação.

Casos de uso para computação de borda

A computação de borda pode ser incorporada a vários aplicativos, produtos e serviços. Algumas possibilidades incluem:

Gestão de tráfego

Ao alavancar a computação de ponta, as cidades podem gerenciar o tráfego com mais eficiência. Ele elimina a necessidade de transportar grandes volumes de dados de tráfego para a nuvem centralizada, reduzindo assim o custo de largura de banda e latência.

Assistência médica

Ao processar dados em tempo real de sensores médicos e dispositivos vestíveis, os sistemas de IA/ML ajudam na detecção precoce de várias condições, como diabetes e câncer de pele.

Entrega de conteúdo

Ao armazenar conteúdo em cache (por exemplo, música, fluxo de vídeo, páginas da Web) na borda, a entrega de conteúdo pode ser significativamente melhorada e a latência é reduzida.

Casas inteligentes

Os tempos de retorno e de ida e volta são reduzidos com a computação de borda, e informações confidenciais podem ser processadas na borda. Por exemplo, o tempo que leva para os dispositivos assistentes baseados em voz, como o Alexa da Amazon, responderem seria significativamente reduzido.

Jogos na nuvem

As empresas de jogos em nuvem podem criar servidores de borda o mais próximo possível dos jogadores para reduzir a latência e fornecer uma experiência de jogo totalmente responsiva e imersiva.

 

Vídeo conferência

O vídeo interativo ao vivo consome bastante largura de banda, portanto, aproximar os processos de back-end da fonte de vídeo pode diminuir o atraso e a latência.

Benefícios da computação de borda

atuação

A arquitetura de borda minimiza os problemas de desempenho relacionados à rede, reduzindo a distância geográfica entre usuários finais e servidores. Na verdade, com a computação de borda, apenas os dados que precisam ser enviados ao data center central ou à nuvem precisam voltar. Usando essa abordagem, uma rica experiência de aplicativo pode ser fornecida ao fazer uso eficiente da rede existente.

Segurança de borda

Com a computação de borda, todos os dados que atravessam a rede de volta à nuvem ou ao data center podem ser protegidos por meio de criptografia. A implantação de borda pode ser protegida contra hackers e outras atividades maliciosas.

Menos restrições de largura de banda

A computação de borda funciona localmente para salvar dados e transmiti-los a um servidor central quando a conectividade com a Internet estiver disponível. A computação de borda é útil em ambientes com conectividade não confiável ou largura de banda limitada, como plataformas de petróleo, fazendas remotas, navios no mar, florestas tropicais e desertos. Além disso, ao processar os dados localmente, a quantidade de dados a serem enviados pode ser bastante reduzida, exigindo muito menos largura de banda ou conectividade.

Conformidade regulatória

As organizações que coletam, processam e armazenam dados devem cumprir as leis de localização e residência de dados. Para organizações com locais remotos, a computação de borda pode ajudar a atender a esses requisitos.

As organizações podem obter um controle ajustado sobre onde os diferentes aplicativos e dados são hospedados, localizando o processamento e o armazenamento em pontos de presença. Como resultado, eles podem cumprir melhor as regras regulatórias específicas de um determinado país ou região. Uma organização pode, por exemplo, usar servidores de borda para manter os dados de clientes baseados na Europa na UE, onde podem ser gerenciados de acordo com os regulamentos GDPR da UE, enquanto os dados de clientes localizados em outras jurisdições, que não estão sujeitos a essas leis, é tratado de forma diferente.

O que são funções de borda?

As funções de borda executam o código JavaScript na borda antes que uma solicitação seja processada, simplificando a entrega contínua entre desenvolvedores de back-end e desenvolvedores de front-end para melhorar o tempo de lançamento no mercado.

As funções de borda permitem que as equipes de desenvolvimento forneçam vários recursos com mais eficiência, como teste A/B, autenticação personalizada, roteamento dinâmico, manipulação de caminhos, geolocalização, personalização e muito mais.

O objetivo das funções de borda é tornar a experiência do desenvolvedor mais fácil, permitindo que você simplifique a experimentação, personalize a autenticação, personalize o conteúdo da Web e aprimore a segurança.

Plataformas que suportam funções de borda

  • AWS Lambda@Edge : oferta da AWS para funções Lambda replicadas globalmente
  • Trabalhadores da Cloudflare : as funções de borda são implantadas e replicadas no nível da CDN em toda a rede global da CDN da Cloudflare
  • Funções de borda Vercel : as funções de borda agora estão disponíveis em uma versão beta pública. Eles são implantados globalmente por padrão na rede de borda da Vercel e não têm partidas a frio
  • Netlify Edge : um ambiente de tempo de execução sem servidor completo desenvolvido pela Deno que permite executar funções JavaScript/TypeScript sem servidor diretamente da rede de borda da Netlify
  • Funções Supabase : a equipe Supabase lançou recentemente funções de borda em sua plataforma, e esta versão é construída com Deno
  • Oracle Roving Edge Infrastructure : O Oracle Cloud Functions oferece suporte a vários idiomas. Você pode escrever seu código em qualquer linguagem e implementá-lo e executá-lo como uma função ou API
  • Alibaba Link IoT Edge : ao estender os recursos da nuvem, o Link IoT Edge pode gerenciar milhões de nós de borda, fornecendo aos usuários serviços mais próximos de sua localização
  • Red Hat OpenShift : O Red Hat OpenShift usa Kubernetes para permitir que os desenvolvedores configurem, implementem, provisionem, gerenciem, monitorem e rastreiem métricas com facilidade até mesmo para os aplicativos em contêineres mais elaborados
  • Stratus ztC™ Edge : o ztC Edge fornece às equipes uma plataforma de computação de borda sem toque, segura e altamente automatizada, desenvolvida especificamente para ambientes de borda

Frameworks que suportam funções de borda

Algumas estruturas que suportam funções de borda são:

  • Next.js, que é construído pela Vercel e suporta totalmente as funções de borda Vercel. Ele também suporta funções de borda Netlify
  • O SvelteKit possui um adaptador Netlify ; com Rich Harris, o criador do SvelteKit, fazendo parte da equipe Vercel, o SvelteKit em breve será executado nas funções de borda do Vercel
  • Recentemente, o Remix tornou-se um projeto de código aberto e suporta funções de borda
  • A implantação Deno permite a implantação instantânea de JavaScript e TypeScript e código WebAssembly na borda. Na verdade, Supabase Functions e Netlify Edge são construídos com Deno
  • Nuxt.js cobre o suporte para Netlify Edge em sua documentação.

Conclusão

O Gartner afirma que 91% dos dados atuais são criados e processados ​​em data centers centralizados e que até 2025, 75% de todos os dados serão movidos para a borda. De acordo com o relatório IDC Data Age 2025 , até 2025, 175 zettabytes de dados serão gerados em todo o mundo. Os dispositivos de borda criarão mais de 90 zettabytes desses dados.

Apesar da computação de borda existir há muitos anos, a pandemia do COVID-19 promoveu sua ampla adoção em vários setores. A MarketsandMarkets estima que o mercado de edge computing atingirá US$ 36,7 bilhões em 2021. De acordo com as previsões, o mercado global de edge computing deverá atingir US$ 87,3 bilhões até 2026.

Com base nessas estatísticas, a adoção da computação de borda se tornará mais prevalente nos próximos anos.

Está se tornando cada vez mais comum que os provedores de nuvem ofereçam funções de borda e serviços de computação de borda porque eles fornecem a capacidade de colocar alguns aspectos críticos da lógica do aplicativo mais próximos do usuário final. Ao usar essa abordagem, os usuários finais podem ter uma experiência mais gratificante e rápida, além de abrir possibilidades novas e exclusivas.

Fonte: https://blog.logrocket.com/demystifying-edge-functions/

#edge 

Tudo Sobre Computação De Borda E Funções De Borda

Todo sobre Edge Computing y Edge Functions

Edge Computing es una arquitectura distribuida en la que la computación ocurre cerca de la ubicación física donde se recopilan y analizan los datos. Implica mover algunos de los recursos informáticos y de almacenamiento fuera del centro de datos central y acercarlos a la fuente donde se generan los datos. Al hacer esto, se ejecutan menos procesos en la nube y, en cambio, se mueven a lugares locales, como en la computadora de un usuario, un dispositivo IoT o un servidor perimetral.

Llevar la computación al borde de la red minimiza la necesidad de comunicaciones a larga distancia entre el cliente y el servidor, lo que reduce la latencia y el uso del ancho de banda.

En este sentido, la computación perimetral es diferente de las arquitecturas convencionales basadas en la nube o en las instalaciones, en las que se accede a las cargas de trabajo alojadas en grandes centros de datos centrales de nubes públicas o infraestructuras locales a través de la red y permanecen comparativamente distantes de los usuarios. .

En este artículo, aprenderemos sobre las funciones de borde, qué son, sus beneficios y sus casos de uso. También discutiremos qué significan las funciones de borde para el futuro de la informática.

Casos de uso para la computación perimetral

Edge computing se puede incorporar en varias aplicaciones, productos y servicios. Algunas posibilidades incluyen:

La gestión del tráfico

Al aprovechar la computación perimetral, las ciudades pueden administrar el tráfico de manera más efectiva. Elimina la necesidad de transportar grandes volúmenes de datos de tráfico a la nube centralizada, lo que reduce el costo del ancho de banda y la latencia.

Cuidado de la salud

Al procesar datos en tiempo real de sensores médicos y dispositivos portátiles, los sistemas AI/ML ayudan en la detección temprana de diversas afecciones, como la diabetes y el cáncer de piel.

Entrega de contenido

Al almacenar contenido en caché (p. ej., música, transmisión de video, páginas web) en el perímetro, se puede mejorar significativamente la entrega de contenido y se reduce la latencia.

casas inteligentes

Los tiempos de backhaul y de ida y vuelta se reducen con la informática perimetral, y la información confidencial se puede procesar en el perímetro. Por ejemplo, el tiempo que tardan en responder los dispositivos de asistente basados ​​en voz, como Alexa de Amazon, se reduciría significativamente.

juegos en la nube

Las empresas de juegos en la nube pueden construir servidores perimetrales lo más cerca posible de los jugadores para reducir la latencia y brindar una experiencia de juego inmersiva y con capacidad de respuesta total.

 

Videoconferencia

El video en vivo interactivo requiere bastante ancho de banda, por lo que mover los procesos de back-end más cerca de la fuente de video puede disminuir el retraso y la latencia.

Beneficios de la computación de borde

Actuación

La arquitectura perimetral minimiza los problemas de rendimiento relacionados con la red al reducir la distancia geográfica entre los usuarios finales y los servidores. De hecho, con la computación perimetral, solo los datos que deben enviarse al centro de datos central o a la nube deben viajar de regreso. Con este enfoque, se puede proporcionar una experiencia de aplicación enriquecida mientras se hace un uso eficiente de la red existente.

Seguridad perimetral

Con la computación perimetral, cualquier dato que atraviese la red de regreso a la nube o al centro de datos puede protegerse mediante el cifrado. La implementación perimetral se puede reforzar contra piratas informáticos y otras actividades maliciosas.

Menos restricciones de ancho de banda

Edge Computing funciona localmente para guardar datos y transmitirlos a un servidor central cuando la conectividad a Internet está disponible. Edge Computing es útil en entornos con conectividad poco confiable o ancho de banda limitado, como plataformas petroleras, granjas remotas, barcos en el mar, selvas tropicales y desiertos. Además, al procesar los datos localmente, la cantidad de datos que se envían puede reducirse enormemente, lo que requiere mucho menos ancho de banda o conectividad.

Cumplimiento normativo

Las organizaciones que recopilan, procesan y almacenan datos deben cumplir con las leyes de localización y residencia de datos. Para las organizaciones con ubicaciones remotas, la computación perimetral puede ayudar a cumplir con estos requisitos.

Las organizaciones pueden lograr un control preciso sobre dónde se alojan las diferentes aplicaciones y datos al ubicar el procesamiento y el almacenamiento en ubicaciones de borde. Como resultado, pueden cumplir mejor con las normas reglamentarias específicas de un país o región en particular. Una organización puede, por ejemplo, utilizar servidores perimetrales para mantener los datos de los clientes con sede en Europa en la UE, donde se pueden administrar de acuerdo con las regulaciones del RGPD de la UE, mientras que los datos de los clientes ubicados en otras jurisdicciones, que no están sujetos a estas leyes, se maneja de manera diferente.

¿Qué son las funciones de borde?

Las funciones perimetrales ejecutan código JavaScript en el perímetro antes de que se procese una solicitud, lo que agiliza la entrega continua entre los desarrolladores backend y los desarrolladores frontend para mejorar el tiempo de comercialización.

Las funciones perimetrales permiten a los equipos de desarrollo ofrecer varias funciones de manera más eficiente, como pruebas A/B, autenticación personalizada, enrutamiento dinámico, manejo de rutas, geolocalización, personalización y más.

El objetivo de las funciones perimetrales es facilitar la experiencia del desarrollador al permitirle simplificar la experimentación, personalizar la autenticación, personalizar el contenido web y mejorar la seguridad.

Plataformas que soportan funciones perimetrales

  • AWS Lambda@Edge : oferta de AWS para funciones Lambda replicadas globalmente
  • Trabajadores de Cloudflare : las funciones de borde se implementan y replican a nivel de CDN en toda la red CDN global de Cloudflare.
  • Funciones de borde de Vercel : las funciones de borde ahora están disponibles en una versión beta pública. Se implementan globalmente de forma predeterminada en la red perimetral de Vercel y no tienen arranques en frío.
  • Netlify Edge : un entorno de tiempo de ejecución sin servidor completo impulsado por Deno que le permite ejecutar funciones de JavaScript/TypeScript sin servidor directamente desde la red perimetral de Netlify
  • Funciones de Supabase : el equipo de Supabase lanzó recientemente funciones de borde en su plataforma, y ​​esta versión está construida con Deno
  • Oracle Roving Edge Infrastructure : Oracle Cloud Functions admite varios idiomas. Puede escribir su código en cualquier idioma e implementarlo y ejecutarlo como una función o API
  • Alibaba Link IoT Edge : al ampliar las capacidades de la nube, Link IoT Edge puede administrar millones de nodos perimetrales, proporcionando así a los usuarios servicios más cerca de su ubicación
  • Red Hat OpenShift : Red Hat OpenShift utiliza Kubernetes para permitir que los desarrolladores configuren, implementen, aprovisionen, gestionen, supervisen y realicen un seguimiento de las métricas incluso para las aplicaciones en contenedores más elaboradas.
  • Stratus ztC™ Edge : ztC Edge proporciona a los equipos una plataforma informática perimetral altamente automatizada, segura y sin contacto, diseñada específicamente para entornos perimetrales

Marcos que soportan funciones de borde

Algunos marcos que admiten funciones de borde son:

  • Next.js, que está construido por Vercel, y es totalmente compatible con las funciones de borde de Vercel. También es compatible con las funciones de borde de Netlify.
  • SvelteKit tiene un adaptador Netlify ; con Rich Harris, el creador de SvelteKit, como parte del equipo de Vercel, SvelteKit pronto se ejecutará en las funciones de borde de Vercel
  • Remix se convirtió recientemente en un proyecto de código abierto y admite funciones de borde
  • Deno deployment permite la implementación instantánea de código JavaScript y TypeScript, y WebAssembly en el perímetro. De hecho, Supabase Functions y Netlify Edge están construidos con Deno
  • Nuxt.js cubre el soporte para Netlify Edge en su documentación.

Conclusión

Gartner afirma que el 91 % de los datos actuales se crean y procesan en centros de datos centralizados y que, para 2025, el 75 % de todos los datos se trasladarán al extremo. Según el informe Data Age 2025 de IDC , para 2025 se generarán 175 zettabytes de datos en todo el mundo. Los dispositivos Edge crearán más de 90 zettabytes de esos datos.

A pesar de que la computación perimetral existe desde hace muchos años, la pandemia de COVID-19 promovió su adopción generalizada en varias industrias. MarketsandMarkets estima que el mercado de edge computing alcanzará los $36,700 millones en 2021. Según las previsiones, se espera que el mercado mundial de edge computing alcance los $87,300 millones para 2026.

Según estas estadísticas, la adopción de la computación perimetral será más frecuente en los próximos años.

Cada vez es más común que los proveedores de la nube ofrezcan funciones de borde y servicios informáticos de borde porque brindan la capacidad de colocar algunos aspectos críticos de la lógica de la aplicación más cerca del usuario final. Al usar este enfoque, los usuarios finales pueden tener una experiencia más gratificante y más rápida al mismo tiempo que abren posibilidades nuevas y únicas.

Fuente: https://blog.logrocket.com/demystifying-edge-functions/

#edge 

Todo sobre Edge Computing y Edge Functions
Thierry  Perret

Thierry Perret

1656398400

Tout Sur L'Edge Computing Et Les Fonctions Edge

L'informatique de périphérie est une architecture distribuée dans laquelle l'informatique se produit à proximité de l'emplacement physique où les données sont collectées et analysées. Cela implique de déplacer certaines des ressources de stockage et de calcul hors du centre de données central et plus près de la source où les données sont générées. Ainsi, moins de processus sont exécutés dans le cloud et déplacés vers des emplacements locaux, tels que l'ordinateur d'un utilisateur, un appareil IoT ou un serveur périphérique.

Amener le calcul à la périphérie du réseau minimise le besoin de communications longue distance entre le client et le serveur, ce qui réduit la latence et l'utilisation de la bande passante.

À cet égard, l'informatique de périphérie est différente des architectures conventionnelles basées sur le cloud ou sur site, dans lesquelles les charges de travail hébergées dans de grands centres de données centraux de clouds publics ou d'infrastructures sur site sont ensuite accessibles via le réseau et restent relativement éloignées des utilisateurs. .

Dans cet article, nous découvrirons les fonctions de pointe, ce qu'elles sont, leurs avantages et leurs cas d'utilisation. Nous discuterons également de ce que signifient les fonctions de périphérie pour l'avenir de l'informatique.

Cas d'utilisation pour l'informatique de pointe

L'informatique de périphérie peut être intégrée à diverses applications, produits et services. Voici quelques possibilités :

Gestion du trafic

En tirant parti de l'informatique de pointe, les villes peuvent gérer le trafic plus efficacement. Il élimine le besoin de transporter de gros volumes de données de trafic vers le cloud centralisé, réduisant ainsi le coût de la bande passante et la latence.

Soins de santé

En traitant les données en temps réel des capteurs médicaux et des appareils portables, les systèmes d'IA/ML aident à la détection précoce de diverses affections, telles que le diabète et les cancers de la peau.

Livraison de contenu

En mettant en cache le contenu (par exemple, la musique, le flux vidéo, les pages Web) à la périphérie, la diffusion du contenu peut être considérablement améliorée et la latence est réduite.

Maisons intelligentes

Les temps de liaison et d'aller-retour sont réduits grâce à l'informatique de pointe, et les informations sensibles peuvent être traitées à la périphérie. Par exemple, le temps nécessaire aux assistants vocaux tels que Alexa d'Amazon pour répondre serait considérablement réduit.

Jeu en nuage

Les sociétés de jeux en nuage peuvent créer des serveurs périphériques aussi proches que possible des joueurs pour réduire la latence et offrir une expérience de jeu entièrement réactive et immersive.

 

Vidéo conférence

La vidéo interactive en direct prend un peu de bande passante, donc rapprocher les processus backend de la source vidéo peut réduire le décalage et la latence.

Avantages de l'informatique de pointe

Performance

L'architecture Edge minimise les problèmes de performances liés au réseau en réduisant la distance géographique entre les utilisateurs finaux et les serveurs. En fait, avec l'edge computing, seules les données qui doivent être envoyées au centre de données central ou au cloud doivent revenir. En utilisant cette approche, une expérience d'application riche peut être fournie tout en utilisant efficacement le réseau existant.

Sécurité périphérique

Avec l'edge computing, toutes les données traversant le réseau vers le cloud ou le centre de données peuvent être sécurisées par cryptage. Le déploiement en périphérie peut être renforcé contre les pirates et autres activités malveillantes.

Moins de restrictions de bande passante

L'informatique de périphérie fonctionne localement pour enregistrer les données et les transmettre à un serveur central lorsque la connectivité Internet est disponible. L'informatique de périphérie est utile dans les environnements avec une connectivité peu fiable ou une bande passante limitée, tels que les plates-formes pétrolières, les fermes isolées, les navires en mer, les forêts tropicales et les déserts. De plus, en traitant les données localement, la quantité de données à envoyer peut être considérablement réduite, nécessitant beaucoup moins de bande passante ou de connectivité.

Conformité réglementaire

Les organisations qui collectent, traitent et stockent des données doivent respecter les lois sur la résidence et la localisation des données. Pour les organisations disposant d'emplacements distants, l'informatique de périphérie peut aider à répondre à ces exigences.

Les organisations peuvent obtenir un contrôle précis sur l'endroit où différentes applications et données sont hébergées en localisant le traitement et le stockage à des emplacements périphériques. En conséquence, ils peuvent mieux se conformer aux règles réglementaires spécifiques à un pays ou une région en particulier. Une organisation peut, par exemple, utiliser des serveurs périphériques pour conserver les données des clients basés en Europe dans l'UE, où elles peuvent être gérées conformément aux réglementations RGPD de l'UE, tandis que les données des clients situés dans d'autres juridictions, qui ne sont pas soumises à ces lois, est traité différemment.

Que sont les fonctions de bord ?

Les fonctions Edge exécutent du code JavaScript à la périphérie avant qu'une demande ne soit traitée, ce qui rationalise la livraison continue entre les développeurs backend et les développeurs frontend pour améliorer les délais de mise sur le marché.

Les fonctions Edge permettent aux équipes de développement de fournir plus efficacement plusieurs fonctionnalités telles que les tests A/B, l'authentification personnalisée, le routage dynamique, la gestion des chemins, la géolocalisation, la personnalisation, etc.

L'objectif des fonctions de périphérie est de faciliter l'expérience du développeur en vous permettant de simplifier l'expérimentation, de personnaliser l'authentification, de personnaliser le contenu Web et d'améliorer la sécurité.

Plates-formes prenant en charge les fonctions de pointe

  • AWS Lambda@Edge : l'offre d'AWS pour les fonctions Lambda répliquées à l'échelle mondiale
  • Cloudflare Workers : les fonctions de périphérie sont déployées et répliquées au niveau du CDN sur le réseau CDN mondial de Cloudflare
  • Fonctions de bord Vercel : les fonctions de bord sont désormais disponibles en version bêta publique. Ils sont déployés globalement par défaut sur le réseau périphérique de Vercel et n'ont aucun démarrage à froid
  • Netlify Edge : un environnement d'exécution complet sans serveur alimenté par Deno qui vous permet d'exécuter des fonctions JavaScript/TypeScript sans serveur directement à partir du réseau périphérique de Netlify
  • Fonctions Supabase : l'équipe Supabase a récemment publié des fonctions de pointe sur leur plate-forme, et cette version est construite avec Deno
  • Infrastructure Oracle Roving Edge : Oracle Cloud Functions prend en charge plusieurs langues. Vous pouvez écrire votre code dans n'importe quel langage et le déployer et l'exécuter en tant que fonction ou API
  • Alibaba Link IoT Edge : en étendant les capacités du cloud, Link IoT Edge peut gérer des millions de nœuds périphériques, offrant ainsi aux utilisateurs des services plus proches de leur emplacement
  • Red Hat OpenShift : Red Hat OpenShift utilise Kubernetes pour permettre aux développeurs de configurer, déployer, provisionner, gérer, surveiller et suivre facilement les métriques, même pour les applications conteneurisées les plus élaborées.
  • Stratus ztC™ Edge : ztC Edge fournit aux équipes une plate-forme informatique de périphérie sans contact, sécurisée et hautement automatisée, spécialement conçue pour les environnements de périphérie

Frameworks prenant en charge les fonctions de périphérie

Certains frameworks prenant en charge les fonctions de périphérie sont :

  • Next.js, qui est construit par Vercel, et prend entièrement en charge les fonctions de pointe de Vercel. Il prend également en charge les fonctions de périphérie Netlify
  • SvelteKit dispose d'un adaptateur Netlify ; avec Rich Harris, le créateur de SvelteKit, faisant partie de l'équipe Vercel, SvelteKit fonctionnera bientôt sur les fonctions de pointe de Vercel
  • Remix est récemment devenu un projet open source et prend en charge les fonctions de pointe
  • Deno deploy permet le déploiement instantané de JavaScript et TypeScript, et du code WebAssembly en périphérie. En fait, Supabase Functions et Netlify Edge sont construits avec Deno
  • Nuxt.js couvre la prise en charge de Netlify Edge dans sa documentation.

Conclusion

Gartner indique que 91 % des données actuelles sont créées et traitées dans des centres de données centralisés et que d'ici 2025, 75 % de toutes les données seront déplacées vers la périphérie. Selon le rapport IDC Data Age 2025 , d'ici 2025, 175 zettaoctets de données seront générés à travers le monde. Les appareils Edge créeront plus de 90 zettaoctets de ces données.

Bien que l'informatique de pointe existe depuis de nombreuses années, la pandémie de COVID-19 a favorisé son adoption généralisée dans plusieurs secteurs. MarketsandMarkets estime que le marché de l'informatique de pointe atteindra 36,7 milliards de dollars en 2021. Selon les prévisions, le marché mondial de l'informatique de pointe devrait atteindre 87,3 milliards de dollars d'ici 2026.

Sur la base de ces statistiques, l'adoption de l'informatique de pointe deviendra plus répandue dans les années à venir.

Il est de plus en plus courant pour les fournisseurs de cloud d'offrir des fonctions de périphérie et des services d'informatique de périphérie, car ils offrent la possibilité de placer certains aspects critiques de la logique d'application plus près de l'utilisateur final. En utilisant cette approche, les utilisateurs finaux peuvent avoir une expérience plus enrichissante et plus rapide tout en ouvrant des possibilités nouvelles et uniques.

Source : https://blog.logrocket.com/demystifying-edge-functions/

#edge 

Tout Sur L'Edge Computing Et Les Fonctions Edge
曾 俊

曾 俊

1656396000

所有关于边缘计算和边缘功能

边缘计算是一种分布式架构,其中计算发生在收集和分析数据的物理位置附近。它涉及将一些存储和计算资源移出中央数据中心,并更靠近生成数据的源。通过这样做,更少的进程在云中运行,而是转移到本地,例如用户的计算机、物联网设备或边缘服务器。

将计算带到网络边缘可以最大限度地减少客户端和服务器之间的长距离通信需求,从而减少延迟和带宽使用。

在这方面,边缘计算不同于传统的基于云或本地架构的架构,其中托管在公共云的大型中央数据中心或本地基础设施中的工作负载然后通过网络访问并与用户保持相对距离.

在本文中,我们将了解边缘函数、它们是什么、它们的好处以及它们的用例。我们还将讨论边缘函数对计算的未来意味着什么。

边缘计算的用例

边缘计算可以整合到各种应用程序、产品和服务中。一些可能性包括:

交通管理

通过利用边缘计算,城市可以更有效地管理交通。它消除了将大量流量数据传输到集中式云的需要,从而降低了带宽和延迟的成本。

卫生保健

通过处理来自医疗传感器和可穿戴设备的实时数据,AI/ML 系统有助于及早发现各种疾病,例如糖尿病和皮肤癌。

内容交付

通过在边缘缓存内容(例如,音乐、视频流、网页),可以显着改善内容交付,并减少延迟。

智能家居

边缘计算减少了回程和往返时间,并且可以在边缘处理敏感信息。例如,亚马逊的 Alexa 等基于语音的辅助设备响应所需的时间将大大减少。

云游戏

云游戏公司可以构建尽可能靠近游戏玩家的边缘服务器,以减少延迟并提供完全响应和身临其境的游戏体验。

 

视频会议

交互式实时视频需要相当多的带宽,因此将后端进程移近视频源可以减少延迟和延迟。

边缘计算的好处

表现

边缘架构通过减少最终用户和服务器之间的地理距离来最大限度地减少与网络相关的性能问题。事实上,使用边缘计算,只有需要发送到中央数据中心或云端的数据需要返回。通过这种方式,可以在有效利用现有网络的同时,提供丰富的应用体验。

边缘安全

借助边缘计算,任何通过网络返回云端或数据中心的数据都可以通过加密得到保护。边缘部署可以加强抵御黑客和其他恶意活动。

更少的带宽限制

边缘计算在本地工作以保存数据并在互联网连接可用时将其传输到中央服务器。边缘计算在连接不可靠或带宽有限的环境中很有用,例如石油钻井平台、偏远农场、海上船只、热带雨林和沙漠。此外,通过在本地处理数据,可以大大减少要发送的数据量,从而需要更少的带宽或连接性。

合规性

收集、处理和存储数据的组织必须遵守数据驻留和本地化法律。对于具有远程位置的组织,边缘计算可以帮助满足这些要求。

通过在边缘位置定位处理和存储,组织可以实现对不同应用程序和数据托管位置的微调控制。因此,他们可以更好地遵守特定国家或地区的监管规则。例如,一个组织可以使用边缘服务器将欧洲客户的数据保存在欧盟,在那里可以根据欧盟 GDPR 法规进行管理,而位于其他司法管辖区的客户的数据则不受这些法律,处理方式不同。

什么是边缘函数?

边缘功能在处理请求之前在边缘运行 JavaScript 代码,从而简化后端开发人员和前端开发人员之间的持续交付,以缩短上市时间。

边缘功能使开发团队能够更有效地交付多项功能,例如 A/B 测试、自定义身份验证、动态路由、路径处理、地理定位、个性化等。

边缘功能的目标是通过让您简化实验、自定义身份验证、个性化 Web 内容和增强安全性,让开发人员体验更轻松。

支持边缘功能的平台

  • AWS Lambda@Edge:AWS 为全球复制的 Lambda 函数提供的产品
  • Cloudflare Workers:边缘功能在 Cloudflare 的全球 CDN 网络的 CDN 级别部署和复制
  • Vercel 边缘函数:边缘函数现在在公共测试版中可用。它们默认部署在 Vercel 的边缘网络上,并且冷启动为零
  • Netlify Edge:由 Deno 提供支持的完整无服务器运行时环境,使您能够直接从 Netlify 的边缘网络运行无服务器 JavaScript/TypeScript 函数
  • Supabase Functions:Supabase 团队最近在他们的平台上发布了边缘函数,这个版本是用 Deno 构建的
  • Oracle Roving Edge 基础设施:Oracle 云功能支持多种语言。您可以用任何语言编写代码,并将其作为函数或 API 部署和执行
  • 阿里Link IoT Edge:通过扩展云端的能力,Link IoT Edge可以管理数百万边缘节点,从而为用户提供更贴近用户所在位置的服务
  • 红帽 OpenShift:红帽 OpenShift 使用 Kubernetes 让开发人员可以轻松配置、部署、供应、管理、监控和跟踪指标,即使是最复杂的容器化应用程序
  • Stratus ztC™ Edge:ztC Edge 为团队提供零接触、安全和高度自动化的边缘计算平台,专为边缘环境而构建

支持边缘功能的框架

一些支持边缘功能的框架是:

  • Next.js,由 Vercel 构建,完全支持 Vercel 边缘功能。它还支持Netlify 边缘功能
  • SvelteKit 有一个Netlify 适配器;随着 SvelteKit 的创建者 Rich Harris 成为 Vercel 团队的一员,SvelteKit 将很快在 Vercel 边缘函数上运行
  • Remix最近做了一个开源项目,它支持边缘功能
  • Deno deploy支持在边缘即时部署 JavaScript 和 TypeScript 以及 WebAssembly 代码。事实上,Supabase Functions 和 Netlify Edge 都是用 Deno 构建的
  • Nuxt.js在其文档中介绍了对 Netlify Edge 的支持。

结论

Gartner 指出,当今 91% 的数据是在集中式数据中心创建和处理的,到 2025 年,所有数据的 75% 将转移到边缘。根据IDC 数据时代 2025 报告,到 2025 年,全球将产生 175 ZB 的数据。边缘设备将创建超过 90 泽字节的数据。

尽管边缘计算已存在多年,但 COVID-19 大流行促进了其在多个行业的广泛采用。MarketsandMarkets估计,2021 年边缘计算市场将达到 367 亿美元。据预测,到 2026 年,全球边缘计算市场有望达到 873 亿美元。

基于这些统计数据,边缘计算的采用将在未来几年变得更加普遍。

云提供商提供边缘功能和边缘计算服务变得越来越普遍,因为它们提供了将应用程序逻辑的某些关键方面更靠近最终用户的能力。通过使用这种方法,最终用户可以获得更有价值和更快的体验,同时也开辟了新的和独特的可能性。

来源:https ://blog.logrocket.com/demystifying-edge-functions/

#edge 

所有关于边缘计算和边缘功能
Hong  Nhung

Hong Nhung

1656393600

Tất Cả Về Tính Toán Edge Và Các Chức Năng Của Edge

Điện toán biên là một kiến ​​trúc phân tán trong đó tính toán xảy ra gần vị trí vật lý nơi dữ liệu đang được thu thập và phân tích. Nó liên quan đến việc di chuyển một số tài nguyên lưu trữ và tính toán ra khỏi trung tâm dữ liệu trung tâm và đến gần nguồn nơi dữ liệu được tạo ra. Bằng cách làm này, ít quy trình hơn được chạy trên đám mây và thay vào đó được chuyển đến các địa điểm cục bộ, chẳng hạn như trên máy tính của người dùng, thiết bị IoT hoặc máy chủ biên.

Đưa tính toán vào biên của mạng giảm thiểu nhu cầu liên lạc đường dài giữa máy khách và máy chủ, làm giảm độ trễ và sử dụng băng thông.

Về mặt này, điện toán biên khác với các kiến ​​trúc dựa trên đám mây hoặc tại chỗ thông thường, trong đó khối lượng công việc được lưu trữ trong các trung tâm dữ liệu trung tâm lớn của các đám mây công cộng hoặc cơ sở hạ tầng tại chỗ sau đó được truy cập qua mạng và tương đối xa với người dùng .

Trong bài viết này, chúng ta sẽ tìm hiểu về các hàm edge, chúng là gì, lợi ích của chúng và các trường hợp sử dụng của chúng. Chúng ta cũng sẽ thảo luận về ý nghĩa của các hàm cạnh đối với tương lai của điện toán.

Các trường hợp sử dụng cho tính toán biên

Điện toán biên có thể được tích hợp vào các ứng dụng, sản phẩm và dịch vụ khác nhau. Một số khả năng bao gồm:

Quản lý giao thông

Bằng cách tận dụng tính toán biên, các thành phố có thể quản lý giao thông hiệu quả hơn. Nó loại bỏ nhu cầu vận chuyển khối lượng lớn dữ liệu lưu lượng đến đám mây tập trung, do đó giảm chi phí băng thông và độ trễ.

Chăm sóc sức khỏe

Bằng cách xử lý dữ liệu thời gian thực từ các cảm biến y tế và thiết bị đeo được, hệ thống AI / ML hỗ trợ phát hiện sớm các bệnh khác nhau, chẳng hạn như bệnh tiểu đường và ung thư da.

Cung cấp nội dung

Bằng cách lưu nội dung vào bộ nhớ đệm (ví dụ: nhạc, luồng video, các trang web) ở rìa, việc phân phối nội dung có thể được cải thiện đáng kể và độ trễ được giảm xuống.

Nhà thông minh

Thời gian quay vòng và quay vòng được giảm xuống nhờ tính toán biên và thông tin nhạy cảm có thể được xử lý ở biên. Ví dụ: thời gian để các thiết bị trợ lý dựa trên giọng nói như Alexa của Amazon phản hồi sẽ giảm đáng kể.

Trò chơi trên đám mây

Các công ty trò chơi điện toán đám mây có thể xây dựng các máy chủ biên càng gần với game thủ càng tốt để giảm độ trễ và cung cấp trải nghiệm chơi game hoàn toàn đáp ứng và nhập vai.

 

Hội nghị truyền hình

Video trực tiếp tương tác chiếm khá nhiều băng thông, do đó, việc di chuyển các quy trình phụ trợ đến gần nguồn video hơn có thể giảm độ trễ và độ trễ.

Lợi ích của điện toán biên

Màn biểu diễn

Kiến trúc Edge giảm thiểu các vấn đề về hiệu suất liên quan đến mạng bằng cách giảm khoảng cách địa lý giữa người dùng cuối và máy chủ. Trên thực tế, với điện toán biên, chỉ có dữ liệu cần được gửi đến trung tâm dữ liệu trung tâm hoặc đám mây mới cần di chuyển ngược trở lại. Sử dụng cách tiếp cận này, một trải nghiệm ứng dụng phong phú có thể được cung cấp trong khi sử dụng hiệu quả mạng hiện có.

Bảo mật cạnh

Với điện toán biên, bất kỳ dữ liệu nào truyền qua mạng trở lại đám mây hoặc trung tâm dữ liệu đều có thể được bảo mật thông qua mã hóa. Việc triển khai cạnh có thể được tăng cường chống lại tin tặc và các hoạt động độc hại khác.

Ít hạn chế băng thông hơn

Tính toán biên hoạt động cục bộ để lưu dữ liệu và truyền đến máy chủ trung tâm khi có kết nối internet. Điện toán biên rất hữu ích trong các môi trường có kết nối không đáng tin cậy hoặc băng thông hạn chế, chẳng hạn như giàn khoan dầu, trang trại ở xa, tàu trên biển, rừng nhiệt đới và sa mạc. Ngoài ra, bằng cách xử lý dữ liệu cục bộ, lượng dữ liệu được gửi đi có thể giảm đáng kể, yêu cầu băng thông hoặc kết nối ít hơn nhiều.

Tuân thủ quy định

Các tổ chức thu thập, xử lý và lưu trữ dữ liệu phải tuân thủ luật cư trú và bản địa hóa dữ liệu. Đối với các tổ chức có địa điểm ở xa, tính toán biên có thể giúp đáp ứng các yêu cầu này.

Các tổ chức có thể đạt được khả năng kiểm soát tốt đối với nơi các ứng dụng và dữ liệu khác nhau được lưu trữ bằng cách định vị quá trình xử lý và lưu trữ tại các vị trí biên. Do đó, họ có thể tuân thủ tốt hơn các quy tắc pháp lý dành riêng cho một quốc gia hoặc khu vực cụ thể. Ví dụ: một tổ chức có thể sử dụng các máy chủ biên để lưu giữ dữ liệu của khách hàng có trụ sở tại Châu Âu ở Liên minh Châu Âu, nơi dữ liệu có thể được quản lý theo quy định GDPR của Liên minh Châu Âu, trong khi dữ liệu của khách hàng ở các khu vực pháp lý khác không tuân theo những luật này, được xử lý khác nhau.

Các hàm cạnh là gì?

Các hàm Edge chạy mã JavaScript ở rìa trước khi một yêu cầu được xử lý, hợp lý hóa việc phân phối liên tục giữa các nhà phát triển phụ trợ và các nhà phát triển giao diện người dùng để cải thiện thời gian đưa ra thị trường.

Các chức năng của Edge cho phép các nhóm phát triển cung cấp hiệu quả hơn một số tính năng như thử nghiệm A / B, xác thực tùy chỉnh, định tuyến động, xử lý đường dẫn, định vị địa lý, cá nhân hóa và hơn thế nữa.

Mục tiêu của các chức năng cạnh là làm cho trải nghiệm của nhà phát triển dễ dàng hơn bằng cách cho phép bạn đơn giản hóa thử nghiệm, tùy chỉnh xác thực, cá nhân hóa nội dung web và tăng cường bảo mật.

Nền tảng hỗ trợ các chức năng cạnh

  • AWS Lambda @ Edge : Cung cấp của AWS cho các chức năng Lambda được sao chép toàn cầu
  • Công nhân Cloudflare : các chức năng biên được triển khai và nhân rộng ở cấp CDN trên mạng CDN toàn cầu của Cloudflare
  • Các hàm cạnh Vercel : các hàm cạnh hiện đã có trong bản beta công khai. Chúng được triển khai trên toàn cầu theo mặc định trên mạng biên của Vercel và không có khởi động lạnh
  • Netlify Edge : một môi trường thời gian chạy không máy chủ đầy đủ được cung cấp bởi Deno cho phép bạn chạy các chức năng JavaScript / TypeScript không máy chủ ngay từ mạng biên của Netlify
  • Chức năng siêu dữ liệu : nhóm Supabase gần đây đã phát hành các chức năng biên trên nền tảng của họ và bản phát hành này được xây dựng với Deno
  • Cơ sở hạ tầng Oracle Roving Edge : Các chức năng đám mây của Oracle hỗ trợ nhiều ngôn ngữ. Bạn có thể viết mã của mình bằng bất kỳ ngôn ngữ nào và triển khai và thực thi nó dưới dạng một hàm hoặc API
  • Alibaba Link IoT Edge : bằng cách mở rộng khả năng của đám mây, Link IoT Edge có thể quản lý hàng triệu nút cạnh, do đó cung cấp cho người dùng các dịch vụ gần hơn với vị trí của họ
  • Red Hat OpenShift : Red Hat OpenShift sử dụng Kubernetes để cho phép các nhà phát triển dễ dàng định cấu hình, triển khai, cung cấp, quản lý, giám sát và theo dõi các chỉ số cho ngay cả những ứng dụng được chứa phức tạp nhất
  • Stratus ztC ™ Edge : ztC Edge cung cấp cho các nhóm một nền tảng điện toán cạnh không chạm, an toàn và tự động hóa cao, được xây dựng cho các môi trường cạnh

Các khung hỗ trợ các chức năng cạnh

Một số khuôn khổ hỗ trợ các hàm cạnh là:

  • Next.js, được xây dựng bởi Vercel và hỗ trợ đầy đủ các chức năng cạnh của Vercel. Nó cũng hỗ trợ các chức năng cạnh Netlify
  • SvelteKit có bộ điều hợp Netlify ; với Rich Harris, người tạo ra SvelteKit, là một phần của nhóm Vercel, SvelteKit sẽ sớm chạy trên các chức năng cạnh Vercel
  • Remix gần đây đã được thực hiện một dự án mã nguồn mở và nó hỗ trợ các chức năng cạnh
  • Triển khai Deno cho phép triển khai JavaScript và TypeScript và mã WebAssembly ngay lập tức. Trên thực tế, các chức năng Supabase và Netlify Edge được xây dựng với Deno
  • Nuxt.js bao gồm hỗ trợ cho Netlify Edge trong tài liệu của họ.

Sự kết luận

Gartner tuyên bố rằng 91 phần trăm dữ liệu ngày nay được tạo và xử lý trong các trung tâm dữ liệu tập trung và đến năm 2025, 75 phần trăm tất cả dữ liệu sẽ được chuyển sang vùng biên. Theo báo cáo Thời đại dữ liệu năm 2025 của IDC , đến năm 2025, 175 zettabyte dữ liệu sẽ được tạo ra trên toàn cầu. Các thiết bị Edge sẽ tạo ra hơn 90 zettabyte dữ liệu đó.

Mặc dù điện toán biên đã tồn tại trong nhiều năm, đại dịch COVID-19 đã thúc đẩy việc áp dụng rộng rãi trên một số ngành công nghiệp. MarketsandMarkets ước tính rằng thị trường điện toán biên sẽ đạt 36,7 tỷ đô la vào năm 2021. Theo dự báo, thị trường điện toán biên toàn cầu dự kiến ​​sẽ đạt 87,3 tỷ đô la vào năm 2026.

Dựa trên những thống kê này, việc áp dụng điện toán biên sẽ trở nên phổ biến hơn trong những năm tới.

Việc các nhà cung cấp dịch vụ đám mây cung cấp chức năng biên và dịch vụ điện toán biên ngày càng trở nên phổ biến bởi vì họ cung cấp khả năng đưa một số khía cạnh quan trọng của logic ứng dụng đến gần hơn với người dùng cuối. Bằng cách sử dụng cách tiếp cận này, người dùng cuối có thể có trải nghiệm bổ ích hơn và nhanh hơn đồng thời mở ra những khả năng mới và độc đáo.

Nguồn: https://blog.logrocket.com/demystifying-edge-functions/

#edge 

Tất Cả Về Tính Toán Edge Và Các Chức Năng Của Edge

エッジコンピューティングとエッジ関数のすべて

エッジコンピューティングは、データが収集および分析される物理的な場所の近くでコンピューティングが行われる分散アーキテクチャです。これには、ストレージとコンピューティングリソースの一部を中央のデータセンターから移動し、データが生成されるソースに近づけることが含まれます。これにより、クラウドで実行されるプロセスが少なくなり、代わりに、ユーザーのコンピューター、IoTデバイス、エッジサーバーなどのローカルの場所に移動されます。

ネットワークのエッジに計算を導入することで、クライアントとサーバー間の長距離通信の必要性が最小限に抑えられ、遅延と帯域幅の使用量が削減されます。

この点で、エッジコンピューティングは、パブリッククラウドまたはオンプレミスインフラストラクチャの大規模な中央データセンターでホストされているワークロードがネットワーク経由でアクセスされ、ユーザーから比較的離れたままである従来のクラウドベースまたはオンプレミスアーキテクチャとは異なります。 。

この記事では、エッジ関数、それらが何であるか、それらの利点、およびそれらのユースケースについて学習します。また、エッジ関数がコンピューティングの将来にとって何を意味するかについても説明します。

エッジコンピューティングのユースケース

エッジコンピューティングは、さまざまなアプリケーション、製品、およびサービスに組み込むことができます。いくつかの可能性があります:

交通管理

エッジコンピューティングを活用することで、都市はトラフィックをより効果的に管理できます。大量のトラフィックデータを一元化されたクラウドに転送する必要がなくなるため、帯域幅と遅延のコストが削減されます。

健康管理

AI / MLシステムは、医療センサーやウェアラブルデバイスからのリアルタイムデータを処理することで、糖尿病や皮膚がんなどのさまざまな状態の早期発見を支援します。

コンテンツ配信

コンテンツ(音楽、ビデオストリーム、Webページなど)をエッジでキャッシュすることにより、コンテンツ配信を大幅に改善し、遅延を減らすことができます。

スマートホーム

エッジコンピューティングにより、バックホールとラウンドトリップの時間が短縮され、機密情報をエッジで処理できます。たとえば、AmazonのAlexaなどの音声ベースのアシスタントデバイスが応答するのにかかる時間は大幅に短縮されます。

クラウドゲーム

クラウドゲーム会社は、ゲーマーのできるだけ近くにエッジサーバーを構築して、待ち時間を短縮し、完全に応答性が高く没入型のゲーム体験を提供できます。

 

ビデオ会議

インタラクティブなライブビデオはかなりの帯域幅を必要とするため、バックエンドプロセスをビデオソースに近づけると、ラグとレイテンシを減らすことができます。

エッジコンピューティングの利点

パフォーマンス

エッジアーキテクチャは、エンドユーザーとサーバー間の地理的な距離を縮めることにより、ネットワーク関連のパフォーマンスの問題を最小限に抑えます。実際、エッジコンピューティングでは、中央のデータセンターまたはクラウドに送信する必要があるデータのみを戻す必要があります。このアプローチを使用すると、既存のネットワークを効率的に利用しながら、豊富なアプリケーションエクスペリエンスを提供できます。

エッジセキュリティ

エッジコンピューティングを使用すると、ネットワークを通過してクラウドまたはデータセンターに戻るデータを暗号化によって保護できます。エッジ展開は、ハッカーやその他の悪意のある活動に対して強化できます。

帯域幅の制限が少ない

エッジコンピューティングはローカルで機能してデータを保存し、インターネット接続が利用可能な場合はデータを中央サーバーに送信します。エッジコンピューティングは、石油掘削装置、遠隔地の農場、海上の船、熱帯雨林、砂漠など、接続の信頼性が低いか帯域幅が制限されている環境で役立ちます。また、データをローカルで処理することにより、送信するデータの量を大幅に削減でき、必要な帯域幅や接続性が大幅に削減されます。

企業コンプライアンス

データを収集、処理、および保存する組織は、データの常駐およびローカリゼーションに関する法律を順守する必要があります。遠隔地にある組織の場合、エッジコンピューティングはこれらの要件を満たすのに役立ちます。

組織は、処理とストレージをエッジの場所に配置することで、さまざまなアプリケーションとデータがホストされる場所を微調整して制御できます。その結果、特定の国または地域に固有の規制規則に準拠することができます。たとえば、組織はエッジサーバーを使用して、欧州を拠点とする顧客のデータをEUに保持し、EU GDPR規則に従って管理できます。また、他の法域に所在する顧客のデータは、対象外です。これらの法律は、異なる方法で処理されます。

エッジ関数とは何ですか?

エッジ関数は、リクエストが処理される前にエッジでJavaScriptコードを実行し、バックエンド開発者とフロントエンド開発者の間の継続的デリバリーを合理化して、市場投入までの時間を短縮します。

エッジ機能により、開発チームは、A / Bテスト、カスタム認証、動的ルーティング、パス処理、ジオロケーション、パーソナライズなどのいくつかの機能をより効率的に提供できます。

エッジ関数の目標は、実験を簡素化し、認証をカスタマイズし、Webコンテンツをパーソナライズし、セキュリティを強化できるようにすることで、開発者のエクスペリエンスを容易にすることです。

エッジ機能をサポートするプラットフォーム

  • AWS Lambda @ Edge:グローバルに複製されたLambda関数のためのAWSのオファリング
  • Cloudflareワーカー:エッジ機能は、CloudflareのグローバルCDNネットワーク全体にCDNレベルでデプロイおよび複製されます
  • Vercelエッジ関数:エッジ関数がパブリックベータで利用可能になりました。これらはデフォルトでVercelのエッジネットワークにグローバルに展開され、コールドスタートはゼロです
  • Netlify Edge:Denoを搭載した完全なサーバーレスランタイム環境で、NetlifyのエッジネットワークからサーバーレスJavaScript/TypeScript関数を直接実行できます。
  • Supabase関数:Supabaseチームは最近、プラットフォームでエッジ関数をリリースしました。このリリースはDenoで構築されています
  • Oracle Roving Edgeインフラストラクチャ:OracleCloudFunctionsは複数の言語をサポートしています。コードは任意の言語で記述し、関数またはAPIとしてデプロイして実行できます
  • Alibaba Link IoT Edge:クラウドの機能を拡張することで、Link IoT Edgeは数百万のエッジノードを管理できるため、ユーザーは自分の場所に近いサービスを利用できます。
  • Red Hat OpenShift:Red Hat OpenShiftはKubernetesを使用して、開発者が最も複雑なコンテナー化されたアプリケーションのメトリクスを簡単に構成、デプロイ、プロビジョニング、管理、モニター、追跡できるようにします
  • StratusztC™Edge:ztC Edgeは、エッジ環境向けに設計された、ゼロタッチで安全な高度に自動化されたエッジコンピューティングプラットフォームをチームに提供します

エッジ機能をサポートするフレームワーク

エッジ機能をサポートするいくつかのフレームワークは次のとおりです。

  • Next.jsは、Vercelによって構築され、Vercelのエッジ機能を完全にサポートしています。Netlifyエッジ機能もサポートしています
  • SvelteKitにはNetlifyアダプターがあります; SvelteKitの作成者であるRichHarrisがVercelチームの一員であるため、SvelteKitはまもなくVercelエッジ機能で実行されます。
  • Remixは最近オープンソースプロジェクトになり、エッジ機能をサポートしています
  • Deno deployを使用すると、JavaScriptとTypeScript、およびWebAssemblyコードをエッジで即座にデプロイできます。実際、SupabaseFunctionsとNetlifyEdgeはDenoで構築されています
  • Nuxt.jsは、ドキュメントでNetlifyEdgeのサポートについて説明しています。

結論

Gartnerは、今日のデータの91%が一元化されたデータセンターで作成および処理され、2025年までにすべてのデータの75%がエッジに移動されると述べています。IDC Data Age 2025レポートによると、2025年までに、世界中で175ゼタバイトのデータが生成されます。エッジデバイスは、90ゼタバイトを超えるそのデータを作成します。

エッジコンピューティングは長年存在していましたが、COVID-19の大流行は、いくつかの業界での広範な採用を促進しました。MarketsandMarketsは、エッジコンピューティング市場が2021年に367億ドルに達すると予測しています。予測によると、世界のエッジコンピューティング市場は2026年までに873億ドルに達すると予想されています。

これらの統計に基づいて、エッジコンピューティングの採用は、今後数年間でより普及するでしょう。

クラウドプロバイダーがエッジ機能とエッジコンピューティングサービスを提供することはますます一般的になっています。これらのサービスは、アプリケーションロジックのいくつかの重要な側面をエンドユーザーの近くに配置する機能を提供するからです。このアプローチを使用することにより、エンドユーザーは、よりやりがいのある、より高速なエクスペリエンスを実現すると同時に、新しい独自の可能性を開くことができます。

ソース:https ://blog.logrocket.com/demystifying-edge-functions/

#edge 

エッジコンピューティングとエッジ関数のすべて

All About Edge Computing and Edge Functions

Edge computing is a distributed architecture in which computing occurs near the physical location where data is being collected and analyzed. It involves moving some of the storage and compute resources out of the central data center and closer to the source where the data is generated. By doing this, fewer processes are run in the cloud and instead moved to local places, such as on a user’s computer, an IoT device, or an edge server.

Bringing computation to the network’s edge minimizes the need for long-distance communications between client and server, which reduces latency and bandwidth usage.

In this respect, edge computing is different from conventional cloud-based or on-premises architectures, in which workloads that are hosted in large central data centers of public clouds or on-premises infrastructures are then accessed over the network and remain comparatively distant from users.

In this article, we will learn about edge functions, what they are, their benefits, and their use cases. We will also discuss what edge functions mean for the future of computing.

Use cases for edge computing

Edge computing can be incorporated into various applications, products, and services. A few possibilities include:

Traffic management

By leveraging edge computing, cities can manage traffic more effectively. It eliminates the need to transport large volumes of traffic data to the centralized cloud, thus reducing the cost of bandwidth and latency.

Healthcare

By processing real-time data from medical sensors and wearable devices, AI/ML systems aid in the early detection of various conditions, such as diabetes and skin cancers.

Content delivery

By caching content (e.g., music, video stream, web pages) at the edge, content delivery can be significantly improved, and latency is reduced.

Smart homes

Backhaul and roundtrip times are reduced with edge computing, and sensitive information can be processed at the edge. For example, the time it takes for voice-based assistant devices such as Amazon’s Alexa to respond would be significantly reduced.

Cloud gaming

Cloud gaming companies can build edge servers as close to gamers as possible to reduce latency and provide a fully responsive and immersive gaming experience.

 

Video conferencing

Interactive live video takes quite a bit of bandwidth, so moving backend processes closer to the video source can decrease lag and latency.

Benefits of edge computing

Performance

Edge architecture minimizes network-related performance issues by reducing the geographical distance between end-users and servers. In fact, with edge computing, only the data that needs to be sent to the central data center or cloud needs to travel back. Using this approach, a rich application experience can be provided while making efficient use of the existing network.

Edge security

With edge computing, any data traversing the network back to the cloud or data center can be secured through encryption. The edge deployment can be hardened against hackers and other malicious activities.

Fewer bandwidth restrictions

Edge computing works locally to save data and transmit it to a central server when internet connectivity is available. Edge computing is helpful in environments with unreliable connectivity or limited bandwidth, such as oil rigs, remote farms, ships at sea, rainforests, and deserts. Also, by processing data locally, the amount of data to be sent can be vastly reduced, requiring far less bandwidth or connectivity.

Regulatory compliance

Organizations that collect, process, and store data must adhere to data residency and localization laws. For organizations with remote locations, edge computing can help meet these requirements.

Organizations can achieve fine-tuned control over where different applications and data are hosted by locating processing and storage at edge locations. As a result, they can better comply with regulatory rules specific to a particular country or region. An organization can, for example, use edge servers to keep European-based customers’ data in the EU, where it can be managed in accordance with the EU GDPR regulations, while the data of customers located in other jurisdictions, which are not subject to these laws, is handled differently.

What are edge functions?

Edge functions run JavaScript code at the edge before a request is processed, streamlining continuous delivery between backend developers and frontend developers to improve time to market.

Edge functions enable development teams to more efficiently deliver several features such as A/B testing, custom authentication, dynamic routing, path handling, geolocation, personalization, and more.

The goal of edge functions is to make the developer experience easier by allowing you to simplify experimentation, customize authentication, personalize web content and enhance security.

Platforms that support edge functions

  • AWS Lambda@Edge: AWS’ offering for globally replicated Lambda functions
  • Cloudflare Workers: edge functions are deployed and replicated at the CDN level across Cloudflare’s global CDN network
  • Vercel edge functions: edge functions are now available in a public beta. They are deployed globally by default on Vercel’s edge network and have zero cold starts
  • Netlify Edge: a full serverless runtime environment powered by Deno that enables you to run serverless JavaScript/TypeScript functions right from Netlify’s edge network
  • Supabase Functions: the Supabase team recently released edge functions on their platform, and this release is built with Deno
  • Oracle Roving Edge Infrastructure: Oracle Cloud Functions support multiple languages. You can write your code in any language and deploy and execute it as a function or API
  • Alibaba Link IoT Edge: by extending the capabilities of the cloud, Link IoT Edge can manage millions of edge nodes, thereby providing users with services closer to their location
  • Red Hat OpenShift: Red Hat OpenShift uses Kubernetes to allow developers easily configure, deploy, provision, manage, monitor, and track metrics for even the most elaborate containerized applications
  • Stratus ztC™ Edge: ztC Edge provides teams with a zero-touch, secure, and highly-automated edge computing platform purpose-built for edge environments

Frameworks that support edge functions

Some frameworks that support edge functions are:

  • Next.js, which is built by Vercel, and fully supports Vercel edge functions. It also supports Netlify edge functions
  • SvelteKit has a Netlify adapter; with Rich Harris, the creator of SvelteKit, being part of the Vercel team, SvelteKit will soon run on Vercel edge functions
  • Remix was recently made an open-source project, and it supports edge functions
  • Deno deploy enables the instant deployment of JavaScript and TypeScript, and WebAssembly code at the edge. In fact, Supabase Functions and Netlify Edge are built with Deno
  • Nuxt.js covers support for Netlify Edge in their documentation.

Conclusion

Gartner states that 91 percent of today’s data is created and processed in centralized data centers and that by 2025, 75 percent of all data will be moved to the edge. According to the IDC Data Age 2025 report, by 2025, 175 zettabytes of data will be generated across the globe. Edge devices will create more than 90 zettabytes of that data.

Despite edge computing existing for many years, the COVID-19 pandemic promoted its widespread adoption across several industries. MarketsandMarkets estimates that the edge computing market will reach $36.7 billion in 2021. According to forecasts, the global edge computing market is expected to reach $87.3 billion by 2026.

Based on these statistics, the adoption of edge computing will become more prevalent in the coming years.

It is becoming increasingly common for cloud providers to offer edge function and edge computing services because they provide the capability to place some critical aspects of application logic closer to the end-user. By using this approach, end users can have a more rewarding and faster experience while also opening up new and unique possibilities.

Source: https://blog.logrocket.com/demystifying-edge-functions/

#edge 

All About Edge Computing and Edge Functions
Hermann  Frami

Hermann Frami

1655957340

Serverless Offline Edge Lambda

serverless-offline-edge-lambda

A plugin for the Serverless Framework that simulates the behavior of AWS CloudFront Edge Lambdas while developing offline.

Setup

npm install --save-dev serverless
npm install --save-dev serverless-offline-edge-lambda

serverless.yml

service:
  name: edge-lambdas
  
plugins:
  - serverless-offline-edge-lambda

provider:
  name: aws
  runtime: nodejs12.x

functions:
  lambda:
    handler: src/handlers.onViewerRequest
    lambdaAtEdge:
      distribution: 'WebsiteDistribution'
      eventType: 'viewer-request'
      pathPattern: '/lambda'

resources:
  Resources:
    WebsiteDistribution:
      Type: 'AWS::CloudFront::Distribution'
      Properties:
        DistributionConfig:
          DefaultCacheBehavior:
npx serverless offline start --port=<port>

Use with serverless-offline

The plugin should not be used in conjunction with serverless-offline because both plugins define the offline command.

Use with serverless-plugin-cloudfront-lambda-edge

This plugin does not handle packaging and deploying edge lambdas to the cloud. Therefore this plugin can be used with serverless-plugin-cloudfront-lambda-edge. Again, doing so is optional. The schema in serverless.yml derives from that used by serverless-plugin-cloudfront-lambda-edge.

Use with Transpilers

This plugin can also be used with transpilers such as serverless-plugin-typescript. In the cases where the transpiler outputs built files to a path that differs from the path specified for the handlers (e.g. .build/src/handers.onViewerRequest), this plugin accepts a configuration option path that it uses to resolve function handlers.

plugins:
  - serverless-plugin-typescript
    
custom:
  offlineEdgeLambda:
    path: '.build'

For usage with serverless-webpack and serverless-bundle the config is similar but the build path changes.

plugins:
  - serverless-webpack # or serverless-bundle
  
custom:
  offlineEdgeLambda:
    path: './.webpack/service/'

Author: Evolv-ai
Source Code: https://github.com/evolv-ai/serverless-offline-edge-lambda 
License: View license

#serverless #lambda #edge #cloud 

Serverless Offline Edge Lambda
高橋  花子

高橋 花子

1655712000

Supabaseでのエッジ関数の使用:完全なガイド

サーバーレスコンピューティングは、ソフトウェア開発の世界で人気のあるトピックであり、それには正当な理由があります。柔軟に拡張できるアプリケーションを構築および実行するための、より効率的で費用効果の高い方法を約束します。

Supabaseはサーバーレスクラウドプラットフォームであり、開発者はサーバーなしで洗練されたWebアプリやモバイルアプリを構築できます。 Supabaseは最近、サーバーレス機能をアプリケーションに追加する簡単な方法を探している人のためのオプションとしてEdgeFunctionsを導入しました。エッジ関数はTypeScriptで記述されており、Supabase CLIを使用して29の地理的地域に配布および展開し、世界中のユーザーにリーチできます。

執筆時点では、Edge FunctionsはSupabaseでまだ実験段階であり、重大な変更が行われる可能性があります。それでも、この機能は、大量のサーバーリソースなしでより強力な機能を構築する手段として、開発者の間で急速に普及しています。

しかし、エッジ関数はどのように機能しますか?そして、サーバーレスコードをどのように記述しますか?この記事では、そのすべてとそれ以上をカバーします!

先に進む前に、まずEdge Functionsが内部でどのように機能するか、およびSupabaseが関数コードを実行するプラットフォームをどのように管理するかを調べてみましょう。

SupabaseEdgeFunctionsプラットフォームを理解する

Supabase Edge Functionsは、安全なDeno環境で実行されますこれらは、 Deno Deployがホストするサービスを使用して手動で関与する必要なしに、わずか数秒で世界中に展開されます。これはすべてSupabaseによって処理されるため、基盤となるテクノロジーを気にすることなく、アプリケーションのロジックに完全に集中できます。

Supabase Edge Functionが着信要求を受信すると、要求は最初に「リレー」に到着します。リレーはリクエストのAPIゲートウェイとして機能し、ヘッダーで渡されたJWTを認証します。また、ロギングやレート制限などの追加機能も提供します。

関数の要求を受信した後、Relayは、デプロイメントIDと呼ばれる一意の識別子とともに関数に関する情報を取得し、それをDenoDeployプラットフォームに渡します。このプラットフォームは、機能コードを安全に実行し、応答をリレーに返します。リレーは、エンドユーザーによって受信されます。

それでは、サンプルのエッジ関数を作成してデプロイしましょう。

入門

Supabase Edge Functionsの使用を開始するには、最初にSupabase CLIをインストールし、プロジェクトをセットアップする必要があります。次の手順を実行します:

  1. SupabaseCLIをインストールします。npm install -g supabase
  2. 次のコマンドを使用してCLIにログインします。supabase login
  3. 次のコマンドを使用してSupabaseプロジェクトを初期化します。supabase init
  4. 次のように、ローカルプロジェクトをリモートSupabaseプロジェクトにリンクします。supabase link --project-ref <your-project-ref>

エッジ関数の作成

Supabaseを使用して新しいエッジ関数を作成するには、プロジェクト内で次のコマンドを実行します。

supabase functions new hello

ここでは、という関数を作成していますhello

これにより、Supabaseフォルダー内にボイラープレート関数コードが作成されます/functions/hello/index.ts

import { serve } from "https://deno.land/std@0.131.0/http/server.ts";

console.log("Hello from Functions!");

serve(async (req) => {
  const { name } = await req.json();
  const data = {
    message: `Hello ${name}!`,
  };

  return new Response(JSON.stringify(data), {
    headers: { "Content-Type": "application/json" },
  });
});

上記のブロックでわかるように、デフォルトの関数コードは非常に単純で、すぐにデプロイできます。このserve関数はHTTPサーバーを作成し、着信要求のリッスンを開始します。

エッジ関数の展開

Supabaseを使用してEdgeFunctionをデプロイするには、次のコマンドを実行します。

supabase functions deploy hello

このfunctions deployコマンドは、関数コードをパッケージ化し、リモートのSupabaseプロジェクトにデプロイします。Supabaseダッシュボードの[呼び出し]で、プロジェクト名のURL(以下を参照)をクリックして詳細を確認します。

リクエストをコピーしてcurl、端末から機能をテストできます。

エッジ関数をローカルで実行する

Edge Functionをローカルで開発して実行するには、Dockerを使用してローカルマシンにSupabaseをセットアップする必要があります。システムにSupabaseを設定する際のヘルプについては、このガイドを確認してください。

次のコマンドを実行して、Supabaseプロジェクトを開始します。

supabase start

次に、次のhelloように関数を開始します。

supabase functions serve hello

このコマンドは、関数のローカルサーバーを起動し、ローカルホストポート54321でリッスンします。

関数を呼び出すにはcurl、端末からリクエストを送信します。

curl --request POST 'http://localhost:54321/functions/v1/hello' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24ifQ.625_WdcF3KHqz5amU0x2X5WWHP-OEs_4qj0ssLNHzTs' \
  --header 'Content-Type: application/json' \
  --data '{ "name":"Vijit" }'

Bearerトークンは認証のヘッダーに必要です。プロジェクトのANONキー、SERVICE_ROLEキー、またはユーザーのJWTトークンにすることができます。

実世界のユースケース

Supabase Edge Functionsは、単純なCRUDアプリを構築するだけではありません。また、任意のデータベースに接続し、データをリアルタイムで処理し、複雑なワークフローを構築することもできます。

実際のユースケースを見てみましょう。TwilioメッセージングAPIを使用してSMSを送信するsend-message新しいエッジ関数を作成します。

関数を作成するsend-messageには、次のコマンドを実行します。

supabase functions new send-message

デフォルトの機能コードは次の場所にあります。/functions/send-message/index.ts

TwilioメッセージングAPIを使用するには、TwilioアカウントのSIDキー、認証トークン、およびSMSの送信に使用される仮想番号が必要です。

プロジェクト内にファイルを作成し、.envファイルに次の値を追加します。

// .env
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE_NUMBER=

注意:これらのクレデンシャルをコードで公開したり、.envファイルをGitHubの履歴に追加したりしないでください。

次に、SMSペイロードを表すインターフェイスを定義します。

// ./send-message/types/sms.interface.ts 
export interface Sms {
  [index: string]: string;
  From: string;
  To: string;
  Body: string;
}

TwilioSms次に、 TwilioメッセージングAPIを使用してSMSを送信するヘルパークラスを作成します。クラスコンストラクターは、アカウントSIDと認証トークンを受け入れます。

SIDと認証トークンは一緒にエンコードされ、APIリクエストで認証ヘッダーとして渡されます。

// ./send-message/helpers/twilio-sms.ts 
import * as base64 from "https://denopkg.com/chiefbiiko/base64/mod.ts";
import { Sms } from "../types/sms.interface.ts";

export class TwilioSms {
  private authorizationHeader: string;

  constructor(private accountSID: string, authToken: string) {
    this.authorizationHeader =
      "Basic " +
      base64.fromUint8Array(
        new TextEncoder().encode(accountSID + ":" + authToken)
      );
  }

  async sendSms(payload: Sms): Promise<any> {
    const res = await fetch(
      "https://api.twilio.com/2010-04-01/Accounts/" +
        this.accountSID +
        "/Messages.json",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
          Authorization: this.authorizationHeader,
        },
        body: new URLSearchParams(payload).toString(),
      }
    );

    const data = await res.json();

    return data;
  }
}

メインの関数ハンドラーで、メソッドを使用して環境変数をロードし、ヘルパーからクラスDeno.env.get()をインポートする必要があります。TwilioSms

次に、このsendSms()メソッドを使用して、リクエスト本文で指定された特定の携帯電話番号にテキストメッセージを送信します。

// ./send-message/index.ts 
import { serve } from "https://deno.land/std@0.131.0/http/server.ts";

import { TwilioSms } from "./helpers/twilio-sms.ts";

const accountSid = Deno.env.get("TWILIO_ACCOUNT_SID") || "";
const authToken = Deno.env.get("TWILIO_AUTH_TOKEN") || "";
const fromMobile = Deno.env.get("TWILIO_PHONE_NUMBER") || "";

serve(async (req) => {
  const { textMessage, toMobile } = await req.json();

  const twilioClient = new TwilioSms(accountSid, authToken);

  const message = await twilioClient.sendSms({
    Body: textMessage,
    From: fromMobile,
    To: toMobile,
  });

  console.log({ message });

  const data = {
    isSuccess: false,
  };

  if (message.status === "queued") {
    data.isSuccess = true;
  }

  return new Response(JSON.stringify(data), {
    headers: { "Content-Type": "application/json" },
  });
});

関数をローカルでテストするには、supabase functions serveコマンドを実行.envし、パラメーターにファイルパスを渡して--env-file、関数が環境変数にアクセスできるようにします。

supabase functions serve send-message --env-file ./supabase/.env

次に、コマンドを使用しcurlて関数を呼び出します。

curl -i --location --request POST 'http://localhost:54321/functions/v1/' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24ifQ.625_WdcF3KHqz5amU0x2X5WWHP-OEs_4qj0ssLNHzTs' \
  --header 'Content-Type: application/json' \
  --data '{ "textMessage":"Hello Developer!", "toMobile": "+91XXXXXXXXXX" }'

ローカル環境変数をリモートSupabaseプロジェクトにプッシュするには、次のsupabase secrets setコマンドを実行します。

supabase secrets set --env-file ./supabase/.env

関数がローカルでテストされ、デプロイする準備ができたら、次のsupabase functions deployコマンドを実行します。

supabase functions deploy send-message

制限事項

Supabase Edge Functionsには多くの利点がありますが、この新機能で何ができるかについてはまだいくつかの制限があります。データ集約的で実行に時間がかかる可能性のあるサービスの場合は、Supabaseのデータベース関数を使用することを選択する必要があります。

執筆時点では、Edge Functionsはまだ実験段階であり、将来のアップデートで重大な変更が行われる予定です。現在、Edge Functionsは、ポート25、465、または587へのアウトバウンド接続を確立できません。また、この機能はPOSTリクエストのみをサポートし、HTMLレスポンスはサポートしません。最後に、ローカル開発では一度に1つのエッジ関数のみを提供できます。

結論

Supabase Edge Functionsは、アプリの機能を拡張するための優れたソリューションです。それらを使用することで、通常は別のサーバー側アプリケーションを必要とする機能をアプリに追加できます。

この記事では、Supabase Edge Functionsがどのように機能するかを調査し、Edge Functionを作成、デプロイ、および実行する方法について説明しました。また、Edge Functionsを使用してサーバーなしでSMSを送信する、実際のユースケースについても説明しました。

インフラストラクチャを自分で管理せずにアプリにカスタム機能を追加する方法を探している場合は、SupabaseEdgeFunctionsをチェックする価値があります。この記事が、SupabaseとEdgeFunctionsを使用して独自のアプリケーションを構築するのに役立つことを願っています。

このストーリーは、もともとhttps://blog.logrocket.com/using-edge-functions-supabase-complete-guide/で公開されました

#edge #supabase 

Supabaseでのエッジ関数の使用:完全なガイド
Diego  Elizondo

Diego Elizondo

1655712000

Uso De Funciones Edge En Supabase: Una Guía Completa

La computación sin servidor es un tema popular en el mundo del desarrollo de software, ¡y por una buena razón! Promete una forma más eficiente y rentable de crear y ejecutar aplicaciones que escalan de manera elástica.

Supabase es una plataforma en la nube sin servidor que permite a los desarrolladores crear aplicaciones web y móviles sofisticadas sin servidores. Supabase ha presentado recientemente Edge Functions  como una opción para aquellos que buscan una manera fácil de agregar funciones sin servidor a sus aplicaciones. Las funciones Edge están escritas en TypeScript y se pueden distribuir e implementar con Supabase CLI en 29 regiones geográficas para llegar a usuarios de todo el mundo.

En el momento de redactar este informe, las funciones de borde aún son experimentales en Supabase y es probable que haya cambios importantes. Aún así, esta función se está volviendo popular rápidamente entre los desarrolladores como un medio para crear funciones más potentes sin recursos masivos del servidor.

Pero, ¿cómo funcionan las funciones Edge? Y, ¿cómo se escribe código sin servidor? ¡En este artículo, cubriremos todo eso y más!

Antes de continuar, primero exploremos cómo funcionan las funciones de Edge bajo el capó y cómo Supabase administra la plataforma que ejecuta el código de la función.

Descripción de la plataforma Supabase Edge Functions

Las funciones de borde de Supabase se ejecutan en el entorno seguro de Deno . Se implementan en todo el mundo en cuestión de segundos sin necesidad de intervención manual mediante el servicio alojado Deno Deploy . Todo esto lo maneja Supabase, por lo que puede concentrarse completamente en la lógica de su aplicación sin preocuparse por las tecnologías subyacentes.

Cuando una función de borde de Supabase recibe una solicitud entrante, la solicitud llega primero a un "relé". El relé actúa como una puerta de enlace API para la solicitud y autentica el JWT pasado en los encabezados. También proporciona algunas funcionalidades adicionales como el registro y la limitación de velocidad.

Después de recibir la solicitud de una función, Relay recupera información sobre la función junto con un identificador único, llamado Id. de implementación, y lo pasa a la plataforma Deno Deploy. Esta plataforma ejecuta de forma segura el código de función y devuelve la respuesta al relé, que luego es recibida por el usuario final.

Ahora, creemos e implementemos una función Edge de muestra.

Empezando

Para comenzar con Supabase Edge Functions, primero deberá instalar Supabase CLI y configurar un proyecto. Sigue estos pasos:

  1. Instale la CLI de Supabase:npm install -g supabase
  2. Inicie sesión en la CLI usando el comando:supabase login
  3. Inicialice el proyecto Supabase con el comando:supabase init
  4. Vincule su proyecto local al proyecto Supabase remoto, así:supabase link --project-ref <your-project-ref>

Creación de funciones de borde

Para crear una nueva función Edge con Supabase, ejecute el siguiente comando dentro de su proyecto:

supabase functions new hello

Aquí, estamos creando una función llamada hello.

Esto crea un código de función repetitivo dentro de su carpeta Supabase en: /functions/hello/index.ts.

import { serve } from "https://deno.land/std@0.131.0/http/server.ts";

console.log("Hello from Functions!");

serve(async (req) => {
  const { name } = await req.json();
  const data = {
    message: `Hello ${name}!`,
  };

  return new Response(JSON.stringify(data), {
    headers: { "Content-Type": "application/json" },
  });
});

Como puede ver en el bloque anterior, el código de función predeterminado es bastante simple y está listo para implementarse. La servefunción crea un servidor HTTP y comienza a escuchar las solicitudes entrantes.

Implementación de funciones perimetrales

Para implementar una función Edge con Supabase, ejecute el siguiente comando:

supabase functions deploy hello

El functions deploycomando empaquetará su código de función y lo implementará en el proyecto Supabase remoto. En el panel de control de Supabase, en Invocar, haga clic en la URL con el nombre de su proyecto (ver más abajo) para encontrar más detalles.

Puede copiar la curlsolicitud para probar su función desde la terminal.

Ejecutar funciones perimetrales localmente

Para desarrollar y ejecutar Edge Function localmente, deberá usar Docker para configurar Supabase en su máquina local. Puede consultar esta guía para obtener ayuda para configurar Supabase en su sistema.

Inicie el proyecto Supabase ejecutando el siguiente comando:

supabase start

A continuación, inicie la hellofunción, así:

supabase functions serve hello

Este comando iniciará un servidor local para la función y escuchará en el puerto localhost 54321.

Para invocar la función, haga una curlsolicitud desde su terminal:

curl --request POST 'http://localhost:54321/functions/v1/hello' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24ifQ.625_WdcF3KHqz5amU0x2X5WWHP-OEs_4qj0ssLNHzTs' \
  --header 'Content-Type: application/json' \
  --data '{ "name":"Vijit" }'

El Bearertoken se requiere en el encabezado para la autenticación. Puede ser la clave de su proyecto ANON, la SERVICE_ROLEclave o el token JWT de un usuario.

Caso de uso del mundo real

Supabase Edge Functions puede ayudarlo a hacer más que simplemente crear una aplicación CRUD simple; también le permiten conectarse a cualquier base de datos, procesar datos en tiempo real e incluso crear flujos de trabajo complejos.

Echemos un vistazo a un caso de uso práctico. Crearemos una nueva función Edge send-message, que enviará un SMS mediante la API de mensajería de Twilio .

Para crear la send-messagefunción, ejecute el siguiente comando:

supabase functions new send-message

Encontrará el código de función predeterminado en/functions/send-message/index.ts

Para utilizar la API de mensajería de Twilio, necesitará la clave SID de la cuenta de Twilio, un token de autenticación y un número virtual que se utilizará para enviar el SMS.

Cree un .envarchivo dentro del proyecto y agregue los siguientes valores al archivo:

// .env
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE_NUMBER=

NB, asegúrese de no exponer estas credenciales en su código o agregar el .envarchivo a su historial de GitHub.

A continuación, defina una interfaz para representar la carga útil de SMS:

// ./send-message/types/sms.interface.ts 
export interface Sms {
  [index: string]: string;
  From: string;
  To: string;
  Body: string;
}

Ahora, cree una clase auxiliar TwilioSmspara enviar un SMS utilizando la API de mensajería de Twilio. El constructor de la clase aceptará el SID de la cuenta y el token de autenticación.

El SID y los tokens de autenticación se codifican juntos y se pasarán como un encabezado de autorización en la solicitud de la API.

// ./send-message/helpers/twilio-sms.ts 
import * as base64 from "https://denopkg.com/chiefbiiko/base64/mod.ts";
import { Sms } from "../types/sms.interface.ts";

export class TwilioSms {
  private authorizationHeader: string;

  constructor(private accountSID: string, authToken: string) {
    this.authorizationHeader =
      "Basic " +
      base64.fromUint8Array(
        new TextEncoder().encode(accountSID + ":" + authToken)
      );
  }

  async sendSms(payload: Sms): Promise<any> {
    const res = await fetch(
      "https://api.twilio.com/2010-04-01/Accounts/" +
        this.accountSID +
        "/Messages.json",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
          Authorization: this.authorizationHeader,
        },
        body: new URLSearchParams(payload).toString(),
      }
    );

    const data = await res.json();

    return data;
  }
}

En el controlador de función principal, deberá cargar las variables de entorno utilizando el Deno.env.get()método e importar la TwilioSmsclase de los ayudantes.

A continuación, utilice el sendSms()método para enviar el mensaje de texto al número de móvil especificado en el cuerpo de la solicitud.

// ./send-message/index.ts 
import { serve } from "https://deno.land/std@0.131.0/http/server.ts";

import { TwilioSms } from "./helpers/twilio-sms.ts";

const accountSid = Deno.env.get("TWILIO_ACCOUNT_SID") || "";
const authToken = Deno.env.get("TWILIO_AUTH_TOKEN") || "";
const fromMobile = Deno.env.get("TWILIO_PHONE_NUMBER") || "";

serve(async (req) => {
  const { textMessage, toMobile } = await req.json();

  const twilioClient = new TwilioSms(accountSid, authToken);

  const message = await twilioClient.sendSms({
    Body: textMessage,
    From: fromMobile,
    To: toMobile,
  });

  console.log({ message });

  const data = {
    isSuccess: false,
  };

  if (message.status === "queued") {
    data.isSuccess = true;
  }

  return new Response(JSON.stringify(data), {
    headers: { "Content-Type": "application/json" },
  });
});

Para probar la función localmente, ejecute el supabase functions servecomando y pase la .envruta del archivo en el --env-fileparámetro para que la función pueda acceder a las variables de entorno.

supabase functions serve send-message --env-file ./supabase/.env

Ahora, use el curlcomando para invocar la función.

curl -i --location --request POST 'http://localhost:54321/functions/v1/' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24ifQ.625_WdcF3KHqz5amU0x2X5WWHP-OEs_4qj0ssLNHzTs' \
  --header 'Content-Type: application/json' \
  --data '{ "textMessage":"Hello Developer!", "toMobile": "+91XXXXXXXXXX" }'

Para enviar sus variables de entorno locales al proyecto Supabase remoto, ejecute el supabase secrets setcomando:

supabase secrets set --env-file ./supabase/.env

Una vez que su función se pruebe localmente y esté lista para implementarse, ejecute el supabase functions deploycomando:

supabase functions deploy send-message

Limitaciones

Las funciones de Supabase Edge brindan muchos beneficios, pero aún existen algunas limitaciones en cuanto a lo que puede hacer con esta nueva característica. Para los servicios que consumen muchos datos y su ejecución puede llevar mucho tiempo, debe optar por utilizar las funciones de base de datos de Supabase .

En el momento de escribir este artículo, las funciones de Edge aún son experimentales y habrá cambios importantes en futuras actualizaciones. Edge Functions no puede realizar conexiones salientes a los puertos 25, 465 o 587 en este momento. Además, esta función solo admite solicitudes POST y no respuestas HTML. Por último, solo se puede servir una función perimetral a la vez en el desarrollo local.

Conclusión

Supabase Edge Functions es una excelente solución para ampliar la funcionalidad de su aplicación. Al usarlos, puede agregar funciones a su aplicación que normalmente requerirían una aplicación del lado del servidor separada.

En este artículo, investigamos cómo funcionan las funciones Edge de Supabase y observamos cómo crear, implementar y ejecutar una función Edge. También analizamos un caso de uso del mundo real, utilizando Edge Functions para enviar un SMS sin un servidor.

Si está buscando una manera de agregar funciones personalizadas a su aplicación sin tener que administrar la infraestructura usted mismo, definitivamente vale la pena echarle un vistazo a Supabase Edge Functions. Espero que este artículo lo ayude a comenzar a usar Supabase y Edge Functions para crear sus propias aplicaciones.

Esta historia se publicó originalmente en https://blog.logrocket.com/using-edge-functions-supabase-complete-guide/

#edge #supabase 

Uso De Funciones Edge En Supabase: Una Guía Completa
Hermann  Frami

Hermann Frami

1655255160

Serverless Lambda Edge PreExisting CloudFront

Serverless Lambda Edge PreExisting CloudFront

A Serverless Framework plugin which associates Lambda@Edge against pre-existing CloudFront distributions.

Install

You can install this plugin from npm registry.

$ npm install --save-dev serverless-lambda-edge-pre-existing-cloudfront

How it works

Configure serverless.yml

functions:
  viewerRequest:
    handler: lambdaEdge/viewerRequest.handler
    events:
      - preExistingCloudFront:
        # ---- Mandatory Properties -----
          distributionId: xxxxxxx # CloudFront distribution ID you want to associate
          eventType: viewer-request # Choose event to trigger your Lambda function, which are `viewer-request`, `origin-request`, `origin-response` or `viewer-response`
          pathPattern: '*' # Specifying the CloudFront behavior
          includeBody: false # Whether including body or not within request
        # ---- Optional Property -----
          stage: dev # Specify the stage at which you want this CloudFront distribution to be updated

plugins:
  - serverless-lambda-edge-pre-existing-cloudfront

Run deploy

$ serverless deploy

You can specify additional configurations a lambdaEdgePreExistingCloudFront value in the custom section of your serverless.yml file. A validStages value allows you to specify valid stage names for deploy Lambda@Edge.

lambdaEdgePreExistingCloudFront:
  validStages:
    - staging
    - production

How validStages and stage properties work

This plugin will first check for validStages property defined in the custom section. If validStages is used, then all the preExistingCloudFront events are only possible to be updated at the validStages. If not used, all the preExistingCloudFront events are possible to be updated at any stage.

Then at all valid stages, the plugin checks - for each preExistingCloudFront event - if the provider's stage is the same as the stage property defined for each preExistingCloudFront event. If they match, then that particular preExistingCloudFront event will be updated.

If stage is not used for a preExistingCloudFront event, then that event will be updated at all validStages or all stages if validStages is not used.

Author: Serverless-operations
Source Code: https://github.com/serverless-operations/serverless-lambda-edge-pre-existing-cloudfront 
License: View license

#serverless #lambda #edge #cloud 

Serverless Lambda Edge PreExisting CloudFront
Sheldon  Grant

Sheldon Grant

1654988880

Learning-edge-computing: Notes and Code Examples About Edge Computing

Learning Edge Computing

Projects to gather notes and examples around edge computing.

Notes:

Edge computing background

Over the recent years more and more IoT devices have been deployed and these devices are creating more and more data that we want to use in some way. What is currently most often the case is that these IoT devices are connected to some sort of gateway what will route the data to a cloud service for processing (analysis, processing, storing etc.).

The number of deployed devices is increasing every day and more and more data needs to be handled, and this is going to cause issues with bandwidth. There are also more devices that require lower latency from its services. For example, self driving cars (connected cars) might not have time to wait for cloud service responses, and another example is servailance cameras that generate huge amounts of data. These are some of the driving forces, to moving networked computing resources closer to where the data is created.

Since most IoT devices are resource constrained, like they might not have powerful processors, or be limit to battery power and therefor need to do as little processing as possible. Now, these devices "can't" really send this information directly to a cloud but instead will send small amounts of data to a gateway node which will in turn send it along to some cloud service, generally speaking. This is called a Cloud centric Internet of Things (CIot).

CIot:
                                                          +-------------------+
                                                          |                   |
                                                          |                   |
                                                          |                   |
   +----------+      +-------+                            |   Cloud Services  |
   |IoT Device|<---->|Gateway|<-------------------------->|                   |
   +----------+  +-->|       |                            |                   |
   +----------+  |   +-------+                            |                   |
   |IoT Device|<-+                                        |                   |
   +----------+                                           +-------------------+

Note that in this case the gateway is acting more like a router and does not store or process the data from the IoT devices.

This architecture has some issues as more and more IoT devices are deployed, more and more data is going be transmitted to the cloud services which is going to cause bandwidth issues.

There is also an issue with latency for some types of applications, for example a self-driving car might not be able to wait for a packet to be transported to/from a cloud service. There is also the issue with that an application might not allow for disconnect to the cloud service. Again a self-driving car must be able to continue if such an break occurs.

So the idea is to move some of the cloud service functionality closer to the the IoT devices, to the edge of the network. These are functionalites like computing, storage, and networking. These are called edge servers/computers:

Edge computing:
                                                          +-------------------+
                                                          |                   |
                                                          |                   |
                     +--------+                           |                   |
   +----------+      |Edge    |                           |   Cloud Services  |
   |IoT Device|<---->|compute |<------------------------->|                   |
   +----------+  +-->|resource|                           |                   |
   +----------+  |   +--------+                           |                   |
   |IoT Device|<-+                                        |                   |
   +----------+                                           +-------------------+

An edge server is a compute resource located where, or close to where, data is being generated. So it receives data from IoT devices like sensors and can store, process, and/or send the data to the cloud (or all three I guess). But data does not need to be sent to the cloud and might be processed by the edge compute resources itself.

Now, the environment where these compute resources are located will look very different. For example, lets say that I'm at home watching IP based TV or using an application on a WIFI connected device. To move an application closer to my location would be placing/deploying it perhaps in my internet service provider's (ISP) network or somewhere in Sweden (I think Netflix does this for example). I imagine that doing this would be like deploying in a kubernetes like environment, at least it would be a non-resource contrained environment where a full operating system and memory resources are available. The runtime used in this case could be any runtime for Java, JavaScript (Node.js, Deno), DotNet etc:

                                                          +-------------------+
                Internet Service Provider environment     |                   |
                                                          |                   |
                     +--------+                           |                   |
   +----------+      |Edge    |                           |   Cloud Services  |
   | IP TV    |<---->|compute |<------------------------->|                   |
   +----------+      |resource|                           |                   |
                     +--------+                           |                   |
                    "Normal servers"                      |                   |
                                                          +-------------------+

Now, lets say I switch to my mobile phone and start using the application on it. This would now be using my telco operator and going over their network. Placing the same application closer would in this case be placing it in the telco operators environment (like in a base station). This environment is similar to a cloud operator environment now where they have moved from hardware specific network devices to virtualized software that can be run on commondity hardware and managed in much the same way as cloud environment using platforms like kubernetes. So in this case we have access to similar non-resources constrained environment where I expect the runetime to be the same as the previous example, that is any runtime for Java, JavaScript (Node.js, Deno), DotNet, etc.

                                                          +-------------------+
                Telco Operator environment                |                   |
                                                          |                   |
                     +--------+                           |                   |
   +-------------+   |Edge    |                           |   Cloud Services  |
   | Mobile Phone|-->|compute |<------------------------->|                   |
   +-------------+   |resource|                           |                   |
                     +--------+                           |                   |
                   "Normal servers"                       |                   |
                                                          +-------------------+

But there are also other types of Edges which could be on factory floors, or located in hospitals, or spread out accross a city, or in cars, where smaller devices containing edge compute resources need to be placed closer to where data is generated and can be acted upon in the shortest time possible. These can also act as aggragators and limit the amount of data being sent to backend cloud applications.

                Public environments                       +-------------------+
                Factory environments                      |                   |
                Embedded in products (cars and others)    |                   |
                                                          |                   |
                     +--------+                           |                   |
   +----------+      |Edge    |                           |   Cloud Services  |
   | IP TV    |<---->|compute |<------------------------->|                   |
   +----------+      |resource|                           |                   |
                     +--------+                           |                   |
                  "Contstrained compute devices"          |                   |
                                                          +-------------------+

So what options are there for deploying to these resource constrained environments? I currently don't know the answer to this question.

I initialy thought of the edge compute resources as a normal server in a rack for example, but these can be small dedicated devices (small single board computers) like a lattepanda or a udoo bolt, or a Khadas Edge V, or a Jetson Nano.

Now, an extension of the Edge compute resource is to have a mini cloud of sort that has some of the same features of a cloud, like scalability, managability and the rest of functionality that enterprise clouds provider. This is a layer between the edge server (or parhaps even replaces the edge server, this is not clear to me yet). What are these things called, well they are called Fog (as in cloud but closer to the ground or something like that):

Fog computing:
                                                          +-------------------+
                                                          |                   |
                                                          |                   |
                     +--------+        +--------+         |                   |
   +----------+      |Edge    |        |  Fog   |         |   Cloud Services  |
   |IoT Device|<---->|compute |<-------| layer  |-------->|                   |
   +----------+  +-->|resource|        |        |         |                   |
   +----------+  |   +--------+        +--------+         |                   |
   |IoT Device|<-+                                        |                   |
   +----------+                                           +-------------------+

This idea called Fog computing was coined by Cisco in 2014 and later in 2015 IBM coided the term Edge computing.

The Fog layer receives data from the edge layer and can futher filter it down or can act on the data with or without sending it through to the cloud services. This allows for saving on bandwidth and also latency.

OpenFog

Fog layer:
 +-------------+ +---------------+ +------------+ +----------+ +----------+
 | Compute     | | Acceleration  | | Networking | | Control  | | Storage  |
 +-------------+ +---------------+ +------------+ +----------+ +----------+

Compute: VM/Containers, iPaaS/SaaS, On-Demand data Processing (ODP), Context as a Service (CaaS)
Acceleration: Network Function virtualization/Software Defined Networking, GPU/FPGA
Networking: TCP/UDP IP, Http/ CoAP, XMPP/MQTT/AMQP, 802.15.4 (ZigBee), Z-Wave, Bluetooth
Control: Deployment, Actuation, Mediation, Security
Storage: Caching

Multi-access Edge Computing (MEC)

See MEC.

Usecases

Autonomous vehicles These will generate huge amounts of data and need to repond in real time. This will require them to have onboard computing resources that can handle this and will have Edge compute resources onboard. These will b

Cloud Gaming Cloud gaming companies are looking to build edge servers as close to gamers as possible in order to reduce latency and provide a fully responsive and immersive gaming experience.

Health Care Healthcare data is coming from numerous medical devices, including those in doctor's offices, in hospitals and from consumer wearables bought by patients themselves. But all that data doesn't need to be moved to centralized servers for analysis and storage -- a process that could create bandwidth congestion and an explosion in storage needs.

In this case artificial intelligence (AI) and machine learning capable edge compute resources might be needed to deployed at the Edge (somewhere at the hospital, I imaging this as network connected devices that are small and not large servers). These would help medical staff make decisions in real time and minimize the number of false alarms.

Industrial IoT There a a lot of sensors and IoT devices in instustrial environments and having edge compute resources closer to where this data is used provides low latency to that immediate reponses to problems are possible. And Edge compute resources with AI/MI can help improve quality assurance.

Security Surveillance systems can benefit from the low latency and reliability of edge computing because it’s often necessary to respond to security threats within seconds. Edge computing also significantly reduces bandwidth costs in video surveillance, since the vast majority of surveillance footage requires no response.

Author: Danbev
Source Code: https://github.com/danbev/learning-edge-computing 
License: 

#node #nodejs #computing #edge 

Learning-edge-computing: Notes and Code Examples About Edge Computing
顾 静

顾 静

1650627780

这5款好用的Chrome、Edge 扩展程序!

 作为最流行的网页浏览器之一,谷歌 Chrome 浏览器的扩展程序极为丰富和强大,合理的使用扩展程序,可以帮我们提高效率,给日常操作和工作带来很大方便。

因为好用的插件比较多,因此分篇介绍。这5款好用的Chrome、Edge 扩展程序! 你都用过吗? 

0:06 跳过跳转页面 
1:06  infinity新标签页面
2:18 Youtube影片截图 
3:07 购物返现 
4:19 录屏

#chrome #edge #infinity 

这5款好用的Chrome、Edge 扩展程序!