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
Escopo | Guia |
---|---|
Edge Services | Criando 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ável | Descrição | Valor | Observação |
---|---|---|---|
CHANGESET_RM_PATH | Contém um path para um arquivo que contém uma lista de paths de todos os arquivos removidos ou modificados no manifesto atual. | STRING | Está disponível somente enquanto o manifesto está sendo aplicado. Cada linha tem um único path. |
CHANGESET_ADD_PATH | Contém um path para um arquivo que contém uma lista de paths de todos os arquivos adicionados ou modificados no manifesto atual. | STRING | Está 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}}
.
Fact | Descrição | Valor | Observação |
---|---|---|---|
CLIENT_VERSION | Versão do Edge Orchestrator agent | MAJOR.MINOR.PATCH | Exemplo: 1.10.3, onde 1 é MAJOR, 10 é MINOR e 3 é PATCH. |
ARCH | Arquitetura do processador | ARM ou; AMD (x86), ambos com 32 ou 64 bits | |
OS_NAME | Nome do Sistema Operacional | macOS; Linux; FreeBSD; OpenBSD; DragonFlyBSD; NetBSD ou; Solaris | |
OS_DISTRO | Nome da distribuição do Sistema Operacional, apenas para sistemas baseados em Linux | NAME + RELEASE | NAME: 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_VERSION | Versão do sistema operacional, apenas para MacOS | MAJOR.MINOR | Exemplo: 10.5. Para demais Sistemas Operacionais será sempre vazio |
CPUS | Número de CPUs disponíveis | INTEGER | Exemplo: 1, 2, 4. |
RAM_SIZE | Memória total do sistema | BYTES | Exemplo: 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.