Skip to content

Component Catalog

Component Caregories

Components can be categorized based on their characteristics as follows:

  • Workload Components: These are used to deploy code to the execution environment provided by the target cluster.
  • Support Service Components: They provide the necessary backing services for other components.
  • Configuration Components: These offer application configuration parameters or files.
  • Package Components: Used to deploy software packages that bundle multiple components.
  • Parcel Components: Used for uploading files to the target cluster.

Type Naming Conventions

Regarding the different types of components, there are distinct rules for type names:

  • Workload components: Follow the format {workload category}.{workload type}. For example: webservice.container.
  • Support service components: Use the format {backing service category}.{service name}. For instance: database.mysql.
  • Configuration components: The naming convention is config.{configuration data format}, such as config.properties.
  • Package components: These follow the pattern package.{package format name}, like package.helm.
  • Parcel components: The structure is parcel.{file format name}, for example: parcel.archive.

The type name for a cluster is: {service name}.{resource type name}, where {service name} also corresponds to the subtype name of the backing service component. This relationship facilitates using the backing service type name to identify compatible clusters for that service{Resource type name} is employed by Infrastructure as Code (IaC) tools to specify the correct plugin for constructing infrastructure.

Component Catalog

The component catalog defines the type names of common component categories according to classification. The type names of components not yet built-in are reserved for future expansion and to ensure operability.

Webservice

Container

TypeCategoryDescription
webservice.containerworkloadcontainerized workload component.
Deployment Targets
  • kubernetes Cluster

Function

TypeCategoryDescription
webservice.functionworkloadServerless 函式。

Different function clusters support various programming languages and APIs, and there are differences among them.

Worker

Container

TypeCategoryDescription
worker.containerworkloadworker backed by containers.
Deployment Targets
  • kubernetes Cluster

Job

One-off tasks that need to be completed may be retried until expiration if not successful initially.

Container

TypeCategoryDescription
job.containerworkloadJob component backed by containers.
Deployment Targets
  • kubernetes Clusger

WebHook

TypeCategoryDescription
job.webhookworkloadWebHook URL.
Deployment Targets
  • kubernetes Cluster

CronJob

Represents tasks that need to be executed on a regular basis.

Container

TypeCategoryDescription
job.containerworkloadJob backed by containers.

WebHook

TypeCategoryDescription
job.webhookworkloadworkload backed by a WebHook URL.

Package

Package components are provided as a collection of other components, so be categorized into its own group.

Helm

TypeCategoryDescription
package.helmpackageHelm chart.

K8sObjects

TypeCategoryDescription
package.k8sobjectspackageK8s manifest objects.

Config

Application configuration data that needs to be delivered to the destination is directly embedded in the component declaration.

Properties

TypeCategoryDescription
config.propertiesconfiggeneric key-value table.

Parcel

Represents files that are to be delivered to a specified destination, used for the deployment of components such as CLI, static websites, etc.

Archive

TypeCategoryDescription
parcel.archiveparcelpacel in archive format, e.g. gzip.
Deoloyment Targets
  • S3 Cluster (storage.s3)

Database

Database components represent a data repository, typically supporting SQL or other query languages. Some database servers can provide more than one database. Therefore, multiple database components can be deployed on the same server simultaneously.

MySQL

TypeCategoryDescription
database.mysqlserviceMySQL-compatible database.

PostgreSQL

TypeCategoryDescription
database.postgresqlservicePostgreSQL-compatible database.

MongoDB

TypeCategoryDescription
database.mongodbserviceMongoDB service.

Caching

For data cache purpose so as to reduce processing time for later requests.

Redis

TypeCategoryDescription
caching.redisserviceRedis cache service.

Memcached

TypeCategoryDescription
caching.memcachedserviceMemcached cache service.

Messaging

Messaging components faciliate the communication among components or with external systems.

AMQP

TypeCategoryDescription
messaging.amqpserviceAMQP messaging service supported by products such as RabbitMQ.

SMTP

TypeCategoryDescription
messaging.smtpserviceEmail delivery service with SMTP protocol.

MQTT

TypeCategoryDescription
messaging.mqttserviceMQTT messaging service.

Storage

Unstructured data repositories, such as object storage and filesystems, fall under this category.

S3

TypeCategoryDescription
storage.s3serviceAWS S3 API-compatible storage service.

NFS

TypeCategoryDescription
storage.nfsserviceNetwork filesystem.

Networking

Network topology components.

API Gateway

TypeCategoryDescription
networking.api-gatewayserviceService components that support the Kubernetes Gateway API are also responsible for load balancing at the application layer.

DNS

TypeCategoryDescription
networking.dnsserviceDomain name service.

LoadBalancer

TypeCategoryDescription
networking.loadbalanerserviceNetwork load balancer.