Edge Services

O Azion Edge Services é um módulo do produto Edge Orchestrator que permite o gerenciamento de serviços orquestrados em seus próprios nodes, habilitando o cadastro de recursos e demais configurações via Azion Console e a criação e customização de serviços para que possam ser orquestrados nos Edge Nodes definidos.

Configure os gatilhos de instalação, desinstalação e recarregamento e defina as dependências entre os recursos necessários para a execução de seu serviço na sua rede Edge.


Implementação

EscopoGuia
Edge ServicesCriando um edge service

Como funciona

Ao utilizar a Azion como sua plataforma de Edge, você pode criar e customizar serviços para serem executados na sua rede Edge privada e híbrida. O Azion Edge Services funciona por meio de gatilhos para instalação, desinstalação e recarregamento, com definição das dependências entre os recursos, e implementa nativamente um conjunto de funcionalidades da Azion, como Edge Applications, Edge Firewalls e Edge Functions, utilizando como base a tecnologia de Azion Cells.

Dessa forma, permite construir Edge Applications para uma grande variedade de casos de uso, que variam desde uma CDN de alta escala e qualidade até a hospedagem de aplicações web, aplicações de AI, VR e muitas outras. Para isso, ative o Azion Cells e defina os Edge Nodes que devem receber determinadas aplicações, tudo controlado pelo painel de controle da Azion ou APIs, em uma interface centralizada e com diferentes controles de acesso.

Resources

Para poder orquestrar serviços em seu dispositivo, você precisa configurar todos os resources (recursos) necessários para instalar, desinstalar e recarregar seus serviços.

Um recurso do tipo Text indica que o conteúdo será copiado como texto simples para o dispositivo. Esses tipos de recursos normalmente são usados para arquivos de configuração.

Um recurso do tipo Shell Script indica que o recurso será instalado e executado conforme o trigger selecionado. O agente do Edge Orchestrator utiliza o sh-bang informado no cabeçalho do conteúdo para a execução do script; na ausência de um, é utilizado o shell compatível com o padrão POSIX no dispositivo (/bin/sh).

Ambos os tipos de recursos são compatíveis com o uso de variables (variáveis) e facts (fatos), desde que a etiqueta {{ VARNAME }} ou {{ FACT_NAME }} esteja incluída.

Todos os recursos são executados usando o Path referido no registro. O campo Path refere-se ao caminho absoluto do diretório. Caminhos relativos não serão aceitos e não são suportados.

Nota: Há um problema conhecido quando se usa a sintaxe {#. Se você usar {# e não usar #} como fechamento, o resource não será processado e não será provisionado nos edges. Se você usar {# e depois usar #}, o conteúdo dentro do bloco é considerado um comentário. Neste caso, o arquivo é processado e provisionado, mas sem o conteúdo dentro do comentário. Para provisionar um resource com {# meu conteúdo #} você deve usar o seguinte padrão: {{'{# meu conteúdo #}'}}. Nossa equipe de engenharia está ciente do problema e está trabalhando para resolvê-lo.

Variables

As variáveis são valores dinâmicos que afetam os Edge Services que serão orquestrados e executados em Edge Nodes. Em outras palavras, é possível orquestrar e executar o mesmo serviço, em dispositivos diferentes, com valores diferentes para as configurações, como configurar um serviço na porta 3306 em um dispositivo, e na porta 3307 em outro dispositivo.

Variáveis podem ser usadas no conteúdo do recurso se a tag {{VARNAME }} for utilizada. Por exemplo:
port = {{ PORT_HTTP }}

Há algumas variáveis especiais pré-definidas que, como fatos, não podem ser sobrescritas. Veja a lista na tabela abaixo:

VariávelDescriçãoValorObservação
CHANGESET_RM_PATHContém um path para um arquivo que contém uma lista de paths de todos os arquivos removidos ou modificados no manifesto atual.STRINGEstá disponível somente enquanto o manifesto está sendo aplicado. Cada linha tem um único path.
CHANGESET_ADD_PATHContém um path para um arquivo que contém uma lista de paths de todos os arquivos adicionados ou modificados no manifesto atual.STRINGEstá disponível somente enquanto o manifesto está sendo aplicado. Cada linha tem um único path.

Facts

Em complemento às variáveis definidas, você também pode utilizar Facts que são informações técnicas disponíveis sobre seu node, tais como arquitetura, versão do cliente, sistema operacional e versão do sistema operacional. Você pode usá-los, por exemplo, se você estiver configurando múltiplos nodes.

Esses valores não podem ser sobrescritos e podem ser usados em resources usando a tag {{ FACT_NAME }}. Por exemplo:
{{CLIENT_VERSION}}.

FactDescriçãoValorObservação
CLIENT_VERSIONVersão do Edge Orchestrator agentMAJOR.MINOR.PATCHExemplo: 1.10.3, onde 1 é MAJOR, 10 é MINOR e 3 é PATCH.
ARCHArquitetura do processadorARM ou; AMD (x86), ambos com 32 ou 64 bits
OS_NAMENome do Sistema OperacionalmacOS; Linux; FreeBSD; OpenBSD; DragonFlyBSD; NetBSD ou; Solaris
OS_DISTRONome da distribuição do Sistema Operacional, apenas para sistemas baseados em LinuxNAME + RELEASENAME: Debian; Ubuntu; openSUSE; Mint Linux; Gentoo; Fedora; CentOS; Arch Linux ou; Kali Linux

RELEASE: primeiramente obtendo via LSB Release, caso não exista busca em
/etc/os-release o valor de VERSION_ID ou DISTRIB_RELEASE

No caso dos demais Sistemas Operacionais o valor será sempre vazio.
OS_VERSIONVersão do sistema operacional, apenas para MacOSMAJOR.MINORExemplo: 10.5. Para demais Sistemas Operacionais será sempre vazio
CPUSNúmero de CPUs disponíveisINTEGERExemplo: 1, 2, 4.
RAM_SIZEMemória total do sistemaBYTESExemplo: 1048576

Triggers

Ao configurar resources do tipo Shell Script, é necessário definir quais serão os gatilhos (triggers) que farão com que o recurso seja executado.

Os gatilhos são: “Install”, “Reload” e “Uninstall”, tendo cada uma deles uma função e ordem de execução:

1) Install: é o primeiro a ser executado e deve ter em seu conteúdo o script necessário para a instalação do serviço.

2) Reload: quando configurado, será executado ao final da instalação de todos os resources e também sempre que houver alteração nos vínculos entre Edge Service e Edge Node - por exemplo, uma alteração nos valores de variáveis.

3) Uninstall: é executado toda vez que o vínculo entre Edge Services e Edge Node é desfeito, ou seja, sempre que o serviço for apagado dos Edge Nodes nos quais está provisionado.

Vínculo ao Edge Node

Todos os serviços cadastrados podem ser orquestrados e executados em um ou mais Edge Nodes existentes na sua rede privada.

Apenas os serviços ativos estarão disponíveis para orquestração no Edge Node; após o seu vínculo, você pode alterar o valor das variáveis existentes, apagar ou adicionar novos serviços ao dispositivo.



Contribuidores