This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

SPEKTRA Edge Architecture

Understanding the SPEKTRA Edge architecture.

SPEKTRA Edge allows the customer to:

  1. Deploy and manage applications running on dedicated servers
  2. Manage SPEKTRA Edge applications running on end-user laptops
  3. Create their services on top of SPEKTRA Edge.

As a platform, SPEKTRA Edge contains ready-to-use services:

  • Service meta.goten.com is used for service registration/discovery.
  • Service iam.edgelq.com is responsible for Identity and Authorization Management (IAM). It provides management of accounts (users, service accounts, groups), scopes (projects, organizations, services) and permissions (roles, permissions, role bindings).
  • Service audit.edgelq.com is storage where the activity of all services is recorded (API Access and changes to resources).
  • Service logging.eddgelq.com provides generic storage for logs
    • other services can register their log descriptors.
  • Service monitoring.edgelq.com provides generic storage for numerical, time-series data - other services can declare their own metric/resource descriptors. Since monitoring focuses on numeric data types (floats, integers, distributions), it also provides alignment over time range & aggregation over keys.
  • Service limits.edgelq.com allows us to define the maximum amount of resources entities can have in any service. It is generic and other services can provide their plans with resource types.
  • Service proxies.edgelq.com provides connectivity (bidirectional streams) to edge devices/services via tunneling.
  • Service secrets.edgelq.com provides secrets management.
  • Service devices.edgelq.com provides base edge device (hardware) management. It is integrated with a droplet application which is added to all SPEKTRA Edge OS devices.
  • Service applications.edgelq.com builds on top of devices management, by providing Distribution/Pods management. Pods are scheduled on Devices and droplet runtime ensures pods are running locally. third party services on top of SPEKTRA Edge can decide if they want to run their clients on their own or ship within pods managed by applications.edgelq.com.

As a service development framework, SPEKTRA Edge comes with Goten, which provides tools for building a service (schema, server, controller, and basic clients). Goten allows and even encourages, the construction of a larger ecosystem of services, consisting of multiple regional clusters, each containing multiple services, using various versions. It allows for multi-region, multi-service, and multi-version dimensions. All core SPEKTRA Edge services were built using Goten.

Therefore, the SPEKTRA Edge platform inherits Goten service properties:

  • It can be deployed in many clusters (regions), achieving a multi-region setup. Services built on top of SPEKTRA Edge can be deployed on all or selected regions offered by the platform. It is highly recommended to run its clusters within proximity to synchronized SPEKTRA Edge deployment.
  • All services can be versioned, meta.goten.com provides information about what services are running, in which version, and where.
  • All services use gRPC/REST protocols.
  • Resources, requests, and responses are modeled using protobuf.
  • Database drivers are Mongo/Firestore - no-SQL document storage types (like JSON). Goten provides its proto annotations that allow to declare references (Blocking, cascade unset/delete with asynchronous variants).

1 - SPEKTRA Edge Core Controller Services

Understanding the SPEKTRA edge core controller services.

Core controller services, IAM, Audit, Monitoring, etc., can be deployed anywhere and form a multi-regional environment. They can be deployed on GCP or Azure region, with an on-premise option coming.

Each service consists of three components:

  1. API server
  2. controller
  3. db-controller

Additionally, there is a redis instance running. The usage of the redis component is:

  • as a cache server for NoSQL document-store.
  • to synchronize multiple controller/db-controller pods (provides sharding).

All controller services use the Goten framework. A large portion of the service source code is auto-generated from the specification file. Those generated code include resource clients, servers, middleware for authorization, replication, transactions, and among other things.

2 - SPEKTRA Edge Device OS

Understanding the SPEKTRA edge OS.

SPEKTRA Edge device services are services running on the network edge device. SPEKTRA Edge provides the container runtime service, called droplet, which:

  • manages the lifecycle of SPEKTRA Edge device
  • is responsible for running the container applications

The SPEKTRA Edge device services can run on supported edge devices, or customer’s own devices. The supported devices include:

  • Raspberry Pi
  • Dell VEP1400 and VEP4600
  • Nexcom DTA1376 (based on NXP LS1046A system-on-chip)

3 - SPEKTRA Edge Third-Party Controller Services

Understanding the SPEKTRA edge third-party controller services.

SPEKTRA Edge core services contain meta.goten.com service, which allows the third parties to register their own services as part of the platform.

Third-party developers can utilize devices.edgelq.com and applications.edgelq.com to distribute client runtimes for their services.

Those are the third-party services developed by the SPEKTRA Edge core team:

  • watchdog service

    A service for the network monitoring, alerting, and topology discovery.

  • ZTNA, Zero Trust Network Access, service

    A service for the better access control and security, alternative to the VPN and SSH.

Watchdog also provides the “Probes” component to measure network latency and statistics. These probes are deployed in two ways:

  1. a docker application running on the container runtime, offered by the device service.
  2. a normal application running on the machine, e.g., laptop, desktop.

You can follow the third-party service developer guide for more detail.