Background
Design Overview
API
RESTful North API (with examples)
Inter Micro-service communication intents
Considering microservice replication across multiple locations with replication within each cluster.
Considering instantiation of same application multiple times in multiple logical clouds that span across same edge locations.
Considering instantiation of same application multiple times in same logical cloud
Considering RBAC/ABAC
External application communication intents
Considering DNS resolution, No DNS resolution (IP addresses), Egress proxies of the Service Mesh, Third party egress proxy
User facing communication intents
Considering Multiple DNS Servers
Considering multiple user facing entities
Considering RBAC/ABAC
Internal Design details
Guidelines that need to kept in mind
- Support for metrics that can be retrieved by Prometheus
- Support for Jaeger distributed tracing by including opentracing libraries around HTTP calls.
- Support for logging that is understood by fluentd
- Mutual exclusion of database operations (keeping internal modules accessing database records simultaneously and also by replication entities of the scheduler micro-service).
- Resilience - ensure that the information returned by controllers is not lost as the synchronization of resources to remote edge clouds can take hours or even days when the edge is not up and running and possibility of restart of scheduler micro service in the meantime.
- Concurrency - Support multiple operations at a time and even synchronizing resources in various edge clouds in parallel.
- Performance - Avoiding file system operations as much as possible.
Modules (Description, internal structures etc..)
....