Application Basic Settings
This is a page for managing applications at the project/profile level in AMDP. Each application refers to the settings and information (Cluster, Namespace, Git, etc.) of the project and profile. Based on the characteristics of the application, it can be built/deployed immediately with default settings and resources, and expert settings like Backing Service connections can be modified for use.
Application Basic Settings List
Provides functions based on general default values that are immediately usable, based on the settings like Workload type and App Framework set in the application's information.
The set values in the application are not reflected immediately after saving.
The settings are only applied after the build/deployment process is carried out
through the deployment pipeline.
Description of each item in the application basic settings:
Basic Deployment Settings
- Deployment : Sets the application's quantity, resource usage, etc.
- Service : Sets the service type and service ports for communication within the cluster.
Data & Message Management Settings
- Message Channel : Connects the Message Channel type of Backing Service used by the application.
- DB Access : Connects the Database type of Backing Service used by the application.
- In Memory : Connects the In Memory type of Backing Service used by the application.
Detailed Application [Basic Deployment Settings / Deployment]
Click on button Edit on the action column on Application list screen to set information about Deployment in the basic deployment settings of the application. This includes the number of replicas, access ports of the container, and resource attributes.
① Replica : Specifies the number of instances (Pods) to create. The default value is 1. Related to ReplicaSet in Kubernetes.
② Http Port : Sets the port used by the application. Default values differ based on the App Framework. Related to Container Port in Kubernetes.
- The default for SPRINGBOOT or DOCKER is 8080 .
- The default for VUE/REACT/NEXACRO is 80 .
③ CPU Request : Sets the initial requested CPU specs for the application's main Container. Activated when Use CPU Request attribute is selected. The default is 500 (m). Related to CPU Request in Kubernetes.
④ CPU Limit : Sets the maximum CPU specs for the application's main Container. Activated when Use CPU Limit attribute is selected. The default is 1000 (m) . Related to CPU Limit in Kubernetes.
⑤ Memory Request(Mi) : Sets the initial requested Memory specs for the application's main Container. Activated when Use Memory Request attribute is selected. The default is 128 (Mi) . Related to Memory Request in Kubernetes.
⑥ Memory Limit(Mi) : Sets the maximum Memory specs for the application's main Container. Activated when Use Memory Limit attribute is selected. The default is 256(Mi) . Related to Memory Limit in Kubernetes.
If the optimal memory usage is not determined, setting a memory limit lower than the actual usage can lead to OutOfMemory (OOM) issues, so caution is needed in setting this limit.
Application [Basic Deployment Settings / Service] Detailed Settings
Sets information necessary for internal/external communication of the application in the cluster.
① Service Type : The service type for internal and external communication of the application depends on the types of services provided by the cluster:
- ClusterIP: Primarily, this mode enables the application to communicate only within the cluster. It doesn't require additional configurations for external access. However, if service communication is needed, the port-forwarding feature can be used for access.
- NodePort: This mode allocates a port (default range: 30000-32767 ) within the cluster for external access. The internal communication method is the same as ClusterIP.
- LoadBalancer: In environments with external load balancers supported by cloud providers, this connects to the provisioning of a load balancer. The creation of the load balancer is asynchronous and depends on the cloud provider's environment. The method for internal communication is the same as ClusterIP.
② Service Annotations : Service annotations inject specific annotations into the application's service configuration. This is used to extend certain features provided by cloud providers or cluster environments.
- They must be written in Key/Value format, and neither key nor value can be null.
- Multiple annotations can be created by clicking icon “+”
③ Session Affinity :This setting is used if you want to consistently connect client requests to a specific pod in the same application group. The default setting is None, which means no session affinity is set. If set to ClientIP, the client's IP is checked to maintain a connection to the same pod.
- The default value is None . Most applications do not require this setting.
④ Service Port : This is the port information where the service receives communication for the application. It includes ports for both internal services within the cluster and various methods of accessing the service from outside. The received information is linked to the Target Port information from which the actual application responds.
- The service can map all received ports to the Target Port, and for convenience, the same value is often set for both.
- The default value for SPRINGBOOT or DOCKER is 8080 .
- The default value for VUE/REACT/NEXACRO is 80.
⑤ Target Port : This is the port information from which the application's internal service responds. The service specifies a port to represent the service.
- The service can map all received Service Ports to the Target Port, and for convenience, the same value is often set for both.
- The default value for SPRINGBOOT or DOCKER is 8080.
- The default value for VUE/REACT/NEXACRO is 80.
Application Data & Messaging Management Settings
For applications using the SpringBoot App Framework as API servers, there's a feature to automatically inject Application configuration data by adding settings related to the Backing Service.
① Message Channel : Provides automated configuration of message channel-related information from Backing Services like RabbitMQ and Kafka.
② DB Access : Provides automated configuration for database-related Backing Services like MariaDB, MongoDB, PostgreSQL, and Oracle.
③ In Memory : Offers automated configuration for in-memory related Backing Services like Redis.
Detailed Settings for Application Data & Messaging Management /Message Channel
For the Message Channel type (RabbitMQ, Kafka) registered in the Profile’s Backend Service, the setting information is automatically injected when the application is deployed to the cluster:
① Message Channel (Message Channel Property Use) : Select whether to use the Message Channel property. When enabled, related settings are applied.
② Broker Instance : Choose one service related to Message Channel (RabbitMQ, Kafka) from the Profile’s Backing Service list. The settings are automatically injected into the SpringBoot application configuration.
- For RabbitMQ:
- spring.rabbitmq.host : Manages the RabbitMQ host access information.
- spring.rabbitmq.port : Manages the RabbitMQ port information.
- spring.rabbitmq.username : Manages the RabbitMQ user information, provided as a secret
- spring.rabbitmq.password : Manages the RabbitMQ user password, provided as a secret.
- For Kafka:
- spring.kafka.bootstrap-servers : Manages the Kafka Bootstrap access host information.
Detailed Settings for Application Data & Messaging Management /DB Access
Select a Backing Service type (MariaDB, MongoDB, PostgreSQL, Oracle) registered in the Profile’s Backend Service, to automatically inject setting information when the application is deployed to the cluster.
① DB Access (DB Access Property Use) : Select whether to use the DB Access property. When enabled, related settings are applied.
② DB Instance : Choose one service related to the Database (MariaDB, MongoDB, PostgreSQL, Oracle) from the Profile’s Backing Service list. The settings are automatically injected into the SpringBoot application configuration.
- For MariaDB type, the following settings are managed:
- spring.datasource.driver-class-name : Sets the driver for using MariaDB.
- spring.datasource.url : Sets the MariaDB host access information.
- spring.datasource.username : Sets the MariaDB user information, managed as a secret
- spring.datasource.password : Sets the MariaDB user password, managed as a secret.
- For the MongoDB type, the following settings are managed:
- spring.data.mongodb.host : Sets the MongoDB host access information.
- spring.data.mongodb.port : Sets the MongoDB access port.
- For the PostgreSQL type, the following settings are managed:
- spring.datasource.driver-class-name : Sets the driver for using PostgreSQL.
- spring.datasource.url : Sets the PostgreSQL host access information.
- spring.datasource.username : Sets the PostgreSQL user information, managed as a secret.
- spring.datasource.password : Sets the PostgreSQL user password, managed as a secret.
- For the Oracle type, the following settings are managed:
- spring.datasource.driver-class-name : Sets the driver for using Oracle DB.
- spring.datasource.url : Sets the Oracle DB host access information.
- spring.datasource.username : Sets the Oracle DB user information, managed as a secret.
- spring.datasource.password : Sets the Oracle DB user password, managed as a secret.
Application's [Data & Messaging Management Settings / In Memory] Detailed Configuration (Edit)
This configuration involves selecting an In Memory type Backing Service (Redis) registered in the Profile's Backend Service. When the application is deployed in a cluster, these settings are automatically injected based on the selected configuration.
① Cache : Choose whether to use the Cache attribute. If enabled, related settings will be applied.
② Cache Instance : Select the target Cache Instance from the In Memory type services registered in the profile.
③ Default Expire Time : Set the default expiration time for the Cache. The default value is 3600 (seconds) . This is set in the SpringBoot application configuration as spring.cache.redis.default-expire-time .
④ Time To Live : Set the Time To Live (TTL) for caching information. The default value is 3600 (seconds) . This is set in the SpringBoot application configuration as spring.cache.redis.time-to-live .
⑤ Key Prefix : Set the Prefix value for the keys used in the Cache. The default value is myCache . This is set in the SpringBoot application configuration as spring.cache.redis.keyprefix.
⑥ Use Key Prefix : Set whether to activate the Prefix for the Cache key. The default value is true . This is set in the SpringBoot application configuration as spring.cache.redis.use-key-prefix.
① Session (Use Session Attribute) : Choose whether to use the Session attribute. Activating this setting applies the related configuration for session management.
② Session Type : Specify the type of Redis Session.
- Redis Session: Used for modules based on Spring WebMVC.
- Redis Session Webflux: Applicable for modules based on Spring WebFlux.
③ Session Instance : Select the target for Session Instance from the In Memory type services registered in the profile.
④ Flush Mode : Defines how session data is written to the server. Choose between ON_SAVE and IMMEDIATE. Configured in SpringBoot application settings as spring.session.redis.flush-mode . The default value is ON_SAVE .
- ON_SAVE: Saves to the Session server upon call.
- IMMEDIATE: Records to the Session server immediately, regardless of the call.
⑤ Save Mode : Choose the session saving mode, either ALWAYS or ON_SET_ATTRIBUTE. Configured in SpringBoot application settings as spring.session.redis.save-mode . The default value is ALWAYS .
- ALWAYS: Always saves all session attributes.
- ON_SET_ATTRIBUTE: Saves only the changes.
⑥ Namespace : This is the Redis namespace, with the default value being spring:session. Configured in SpringBoot application settings as spring.session.redis.namespace .
⑦ Timeout : Set the expiration time for the session. The default value is 60 minutes. Configured in SpringBoot application settings as spring.redis.timeout.