Application Model - csap-platform/csap-core GitHub Wiki

Contents:     Clustering     OS Process Mapping     Samples    


Service Clustering


To achieve high availability - typical applications will deploy multiple instances of service endpoints for both scaling and high availability. The characteristics (number of instances, ports used, etc) are referred to as clusters in CSAP application definitions.

A typical project includes at least 1 - and sometimes many - clusters ( groups) of services. Since each cluster maps to a resource footprint - it enables each group to scale independently. A service with few requests may only be deployed on 2 hosts - and then only for redundancy. Other services may need to handle 100's, or 1000's of requests per second and need to be deployed on 10's, 100's of hosts.

CS-AP extends standard service clustering concepts by including:

  • 1 to n service templates, assigned to
  • 1 to n clusters, with each cluster assigned
  • 1 to n hosts

OS Process Mapping


Service Templates include the ability to map a CSAP Service to 0-n linux processes:

  • if a service is simply files on the filesystem (eg. the Java runtime), then the service will not map to any pids, and no os resources will be collected
  • a typical kubernetes service will include one or more yaml files, along with container mapping(s) to capture resource consumption
  • CSAP will automatically collect and aggregrate all kubernetes namespaces.

Sample Cluster Definitions


Base OS

Every host in a environment is assigned to the base-os cluster. Applications can customize this cluster as needed.

Kubernetes

The CSAP kubernetes package creates a cluster (1-n masters, 1-m workers) with a single click:

⚠️ **GitHub.com Fallback** ⚠️