You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

Note:  Also see architecture/design notes in source repo under docs

Concepts and Terminology

  • Infrastructure: The compute and storage resources in a cloud or infrastructure service (AWS, etc) that an NDS Labs cluster runs on. The NDS Labs reference architecture is OpenStack.
  • Cluster/NDS Labs cluster: The NDS Labs software platform that runs on the infrastructure.
  • Project/Namespace: An isolated, named environment within the cluster that contains a set of services that are managed and operated independently of other projects. Projects typically implement the equivalent of a "website".
  • Administrator: An authenticated person that manages and operates a part of the system.

NDS Labs Roles and Responsibilities

  • Infrastructure Administrator:
    • Provisions infrastructure to run a NDS Labs cluster
      • On OpenStack, AWS, GCE, Rackspace, MaaS, ...
    • Deploys the NDS Labs base cluster software
    • Registers resources from infrastructure with NDS Labs cluster resource pool
    • Provides API and credential to Cluster Administrator
  • Cluster Administrator:
    • Manages and operates the NDS Labs cluster infrastructure
    • Manages Projects in the cluster
      • Provisions Projects on the cluster
      • Manages resource assignments from the cluster pool to project pools
      • Provides API and credentials per-project to Project Administrators
  • Project Administrator:
    • Provisions and deploys services in a project using resources granted to the project pool by the cluster administrator.
    • Manages, monitors, and administrates services within independent projects.
  • User/Project User: A client/user of the services within a project.
  • Tool/Service Provider: A NDSC partner that provides a tool or service in a set of containers that include NDS Labs service descriptors to enable the service to be integrated in a NDS Labs cluster.

NDS Labs Architecture

NDS Labs extends the Kubernetes base system with NDS-specific services and REST API's that support NDS Labs cluster services, project services, inter-cluster NDS Labs services. The implementations of NDS Labs services are implemented via cluster-specific Kubernetes pods and sidekick containers that are deployed in conjunction with service pods in the cluster and in project-specific services that "extend" cluster-specific and project-specific pods with integration to services such a monitoring, volume management, etc.

  • NDS Labs Cluster Services:
    • API Manager: Manages cluster-wide API naming and public API exposure from the cluster public IP firewall/load-balancing system.
    • Catalog, Configuration, and Deployment (CCD) Service: Automatically updated catalog of NDS Labs services available for deployment in the cluster (for cluster admins), and for projects (for project admins). The service catalog manager is configured with NDS Labs-specific container repositories, and periodically pulls service descriptions from the containers.
    • Cluster Admin Project Administration (CADM): Provide the cluster administrator with project provisioning including project admin credentials. Provides management of infrastructure resources to projects, including volumes and managing differentiated compute resources.
      • Cluster Administrator Monitoring (CMON) Tools/Service: Provides services for cluster administrators to monitor cluster operations, including loggingperformance analysis, and resource utilization. Monitor services include ELKPrometheus, etc. in addition to Kubernetes-provided tools like cadvisor.
  • NDS Labs Project Services:
    • Project Manager Administration (PADM): Allows the project manager to deploy, monitor, and manage application services within their project.
      • Per-project Monitoring (PMON): Provides project-specific monitoring of project resources, utilization, performance, and application/service specific monitoring and logging.
  • Inter-Cluster/Integrated-Cluster Services (ICS): Provide NDS Labs web services across multiple distributed clusters in the larger NDS Labs context to implement global NDS Labs services such as global resource searchdistributed data access, and provide distributed application developers services to implement service discovery and distributed API access within their services.
    • Distributed search: Locating named data and services in the NDS Labs global system.
    • Resource discovery: Locates attribute-specified resources in the NDS Labs global system, such as specifically sized data-storage resources, or specific compute resources such as HPC resources, or accelerator-enabled compute resources, for example.
    • Advanaced Data Management: Allows composing cross-cluster data management applications

High Level Global Architecture

HighLevel Global Architecture

Kubernetes Base Beneath NDS Labs

Single-Cluster NDS Labs Overlay Detail

  • No labels