Technical Overview
Applications and Sites are central concepts in Great Bear, meaning that the whole system has been wrapped around the concept of Edge Application. Great Bear supports the full life cycle of an application from its creation by an external ISV up to the deployment on edge sites and run-time monitoring of the said applications.
Great Bear is built on Kubernetes, and it brings cloud-native best practices to your edge devices, while hiding the complexities behind intuitive web UIs. However, Great Bear is not a generalization of Kubernetes, nor a new Kubernetes management system.
In a classical Kubernetes cluster, there is one leader (or a set of leaders) and one or several worker nodes (followers). Kubernetes pods can be scheduled on worker nodes or on the leader(s) under the control of the Kubernetes scheduler. Kubernetes defines “states” and tries to keep the global system at the defined “states”. Kubernetes can therefore be seen as an intent-driven system.
While Kubernetes takes care of Pods (the atomic unit of Kubernetes deployments), Great Bear takes care of applications deployed on sites, totally abstracting and hiding all Kubernetes complexity.
The Great Bear control plane exposes all of the Great Bear functions and services, which can be accessed through a dedicated UI dashboard or through a well-documented REST API.
Great Bear can be globally divided in two main parts:
- The Great Bear control plane sitting in a public cloud and exposing a public northbound API as well as a public southbound API.
- The Edge sites (potentially millions of them) which can be widely distributed.
Since edge sites might loose the connection to the Great Bear Control Plane, we cannot assume that we can always directly control edges from the Control Plane. To address this issue, Great Bear is based on a fully intent-based declarative model (promise theory). The way it works is as follows:
- The Control Plane maintains a digital image of each edge. Any action triggered through the northbound API and affecting edges first updates the corresponding digital image.
- The edges regularly poll the Control Plane (southbound API) to check their digital image. If any change happened since the last poll, the Control Plane delivers this change to the edge. Then the edge locally applies this change.
Great Bear allows to drive edges without having any permanent connection to them. That is to say that real edges eventually converge toward their equivalent digital image. In other words, the Great Bear northbound API is not used to directly manipulate the real edge, it instead allows to describe desired state of the edge, which will be eventually replicated on the real edge sites.
The Great Bear control plane implements all the functions required to deploy applications on Great Bear edge sites, as well as the functions required to control and operate those edge sites.