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
Type | Category | Description |
---|
webservice.container | workload | containerized workload component. |
Deployment Targets
Function
Type | Category | Description |
---|
webservice.function | workload | Serverless 函式。 |
Different function clusters support various programming languages and APIs, and there are differences among them.
Worker
Container
Type | Category | Description |
---|
worker.container | workload | worker backed by containers. |
Deployment Targets
Job
One-off tasks that need to be completed may be retried until expiration if not successful initially.
Container
Type | Category | Description |
---|
job.container | workload | Job component backed by containers. |
Deployment Targets
WebHook
Type | Category | Description |
---|
job.webhook | workload | WebHook URL. |
Deployment Targets
CronJob
Represents tasks that need to be executed on a regular basis.
Container
Type | Category | Description |
---|
job.container | workload | Job backed by containers. |
WebHook
Type | Category | Description |
---|
job.webhook | workload | workload backed by a WebHook URL. |
Package
Package components are provided as a collection of other components, so be categorized into its own group.
Helm
Type | Category | Description |
---|
package.helm | package | Helm chart. |
K8sObjects
Type | Category | Description |
---|
package.k8sobjects | package | K8s manifest objects. |
Config
Application configuration data that needs to be delivered to the destination is directly embedded in the component declaration.
Properties
Type | Category | Description |
---|
config.properties | config | generic 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
Type | Category | Description |
---|
parcel.archive | parcel | pacel in archive format, e.g. gzip. |
Deoloyment Targets
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
Type | Category | Description |
---|
database.mysql | service | MySQL-compatible database. |
PostgreSQL
Type | Category | Description |
---|
database.postgresql | service | PostgreSQL-compatible database. |
MongoDB
Type | Category | Description |
---|
database.mongodb | service | MongoDB service. |
Caching
For data cache purpose so as to reduce processing time for later requests.
Redis
Type | Category | Description |
---|
caching.redis | service | Redis cache service. |
Memcached
Type | Category | Description |
---|
caching.memcached | service | Memcached cache service. |
Messaging
Messaging components faciliate the communication among components or with external systems.
AMQP
Type | Category | Description |
---|
messaging.amqp | service | AMQP messaging service supported by products such as RabbitMQ. |
SMTP
Type | Category | Description |
---|
messaging.smtp | service | Email delivery service with SMTP protocol. |
MQTT
Type | Category | Description |
---|
messaging.mqtt | service | MQTT messaging service. |
Storage
Unstructured data repositories, such as object storage and filesystems, fall under this category.
S3
Type | Category | Description |
---|
storage.s3 | service | AWS S3 API-compatible storage service. |
| | |
NFS
Type | Category | Description |
---|
storage.nfs | service | Network filesystem. |
Networking
Network topology components.
API Gateway
Type | Category | Description |
---|
networking.api-gateway | service | Service components that support the Kubernetes Gateway API are also responsible for load balancing at the application layer. |
DNS
Type | Category | Description |
---|
networking.dns | service | Domain name service. |
LoadBalancer
Type | Category | Description |
---|
networking.loadbalaner | service | Network load balancer. |