In this section:
Term Ribbon Definitions / Usage A Container image is a ready-to-run software package, containing everything needed to run a function: the code and any runtime it requires, application and system libraries, and default values for any essential settings. By design, a container is immutable: you cannot change the code of a container that is already running. If you have a containerized function and want to make changes, you must build a new image that includes the change, then recreate the container to start from the updated image. Database sharding splits a single dataset into partitions (or shards). Each shard contains unique rows of information that you can store separately across multiple nodes. All shards run on separate nodes but share the original database's schema or design. A ConfigMap is an API object that allows you to store data as key-value pairs. Kubernetes pods can use ConfigMaps as configuration files, environment variables or command-line arguments. ConfigMaps allow you to decouple environment-specific configurations from containers to make applications portable. For details, refer to https://kubernetes.io/docs/concepts/configuration/configmap/ DaemonSet feature is used to ensure that some or all of your pods are scheduled and running on every single available node in the K8S cluster. This essentially runs a copy of the desired pod across all nodes. When a new node is added to a Kubernetes cluster, a new pod is added to that newly attached node. For details, refer to https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ A Deployment is a resource object in Kubernetes that provides declarative updates to applications. A deployment allows you to describe an application's life cycle, such as which images to use for the app, the number of required pods and the pod update method. For details, refer to https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ A Job is a supervisor for pods carrying out batch processes, that is, a process that runs for a certain time to completion. For details, refer to https://kubernetes.io/docs/concepts/workloads/controllers/job/ A PersistentVolume is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes. PVs are volume plugins like Volumes but have a lifecycle independent of any individual pod that uses the PV. GlusterFS is used in the Ribbon VNF to share the data across managed nodes. Some use cases for PV include: A PersistentVolumeClaim is a request for storage by a user. It is similar to a pod. Pods consume node resources and PVCs consume PV resources. Pods can request specific levels of resources (CPU and Memory). Claims can request specific size and access modes (e.g., mounted as ReadWriteOnce, ReadOnlyMany or ReadWriteMany). For details, refer to https://kubernetes.io/docs/concepts/storage/persistent-volumes/ A pod is the smallest deployable units of computing that you can create and manage in Kubernetes. A pod is a group of one or more container with shared storage and network resources and a specification for how to run the containers. Additional information: A ReplicaSet is a process that runs multiple instances of a pod and keeps the specified number of pods constant. Its purpose is to maintain the specified number of pod instances running in a cluster at any given time to prevent users from losing access to their application when a pod fails or is inaccessible. For details, refer to https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ Rollout simply means rolling update of application. Rolling update means that application is updated gradually, gracefully and with no downtime. For details, refer to https://argoproj.github.io/argo-rollouts/ A Secret is an object that contains a small amount of sensitive data such as a password, a token, or a key. Such information might otherwise be put in a pod specification or in a container image. Using a Secret means that you don't need to include confidential data in your application code. For details, refer to https://kubernetes.io/docs/concepts/configuration/secret/ A Service is a logical abstraction for a deployed group of pods in a cluster (which all perform the same function). Since pods are ephemeral, a service enables a group of pods, which provide specific functions (web services, image processing, etc.) to be assigned a name and unique IP address (clusterIP). For details, refer to https://kubernetes.io/docs/concepts/services-networking/service/ A StatefulSet is the workload API object used to manage stateful applications. Manages the deployment and scaling of a set of pods, and provides guarantees about the ordering and uniqueness of these pods. For details, refer to https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ A StorageClass provides a way for administrators to describe the "classes" of storage they offer. Different classes might map to quality-of-service levels, or to backup policies, or to arbitrary policies determined by the cluster administrators. For details, refer to https://kubernetes.io/docs/concepts/storage/storage-classes/ Microservices – also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are: Observability – A complex system's internal state can be deduced from external outputs. The goal of Ribbon observability is to facilitate the exposure of metrics and logs. An Application (or Application Service for aaS offers) is composed of one or more CNFs. In the near term an Application will likely map 1:1 with a CNF (eg: SBC CNF). A Cloud-Native Network Function is a software-implementation of a Network Function implemented in container(s) and orchestrated by Kubernetes, built and deployed in a cloud-native way. A CNF is a single deployable, upgradable and manageable entity. – A RBBN CNF consists or 1 or more pods, packaged via a Helm Chart. A RBBN Solution consists of a collection of Applications or CNFs which together form an overall solution (e.g., a solution may contain RAMP, PSX, AS and SBC Applications). The scope of the application teams is to define LCM operations, and the Solutions/Services teams define the solution with workflows integrating application level LCM operations. Note: Ribbon Call Trust and Ribbon Voice Sync are examples of Solutions composed of multiple Applications/CNFs. Abbreviation DefinitionCommon CNF Terms
Container Database shard K8S ConfigMap K8S Daemonset K8S Deployment K8S Job K8S Persistent Volume (PV) K8S Persistent Volume Claim (PVC) K8S pod K8S Replicaset K8S Rollout K8S Secrets K8S Service K8S Statefulset K8S Storage Class (SC) Microservice Observability RBBN Application RBBN CNF RBBN CNF Solution Hierarchy RBBN Solution Abbreviations Used in CNF Documentation
AA Authentication and Authorization CAC Call Admission Control CI/CD Continuous Integration/Continuous Deployment CM Configuration Management CNCF Cloud Native Computing Foundation CNe Cloud-Native edition CNF Cloud Native Network Function CS Common Services DBaaS DB as a Service DevOps Development and Operations DM Device Management EFK Elasticsearch, Fluentd, and Kibana stack EPU Endpoint Updater FCAPS Faults, Configuration, Accounting, Performance, and Security FM Fault Management IDM Identity Management K8S Kubernetes LM License Management NS Network Services OAM Operations, Administration and Maintenance OCP OpenShift Container Platform PFE Packet Front-End PM Performance Metrics PSX-P PSX Primary PSX-R PSX Replica RAC Role Assignment Controller RBBN Ribbon Communications RHPA Ribbon Horizontal Pod Autoscaler SC Session Control SIP-T SIP-Telephony SLB SIP Load Balancer TOSCA Topology and Orchestration Specification for Cloud Applications