Artifakt Docs
Stacks 5.0 and up
Search
K
Links
Comment on page

Additional Services

Does your web application need additional services? A database? Artifakt helps you to add and configure these services for your environment.
Go to Environment → Settings → Resources to add and configure additional services.
For security reasons, all these services have only one open port (the standard port) and are totally private (accessible only through the source code of your application).
Many additional services will be added in the coming months. In the meantime, do not hesitate to send us feedback on specific needs.

Maintenance windows

All additional services have a maintenance windows each Wednesday from 3am to 4am. This maintenance windows allows us to apply latest security patches and improvements to make our platform better. During this time slot, you may experience slow-down or even sometimes very short downtime if we have to reboot the service.
Maintenance windows timezone is based on the deployment region.

Background Worker

The service is available for Scalable platforms only.
A worker is an instance dedicated to the processing of recurring background tasks (also known as Cron Jobs). It has the same execution environment as the classic web server instances used for your environments, but it does not receive / serve any web traffic.
Depending on your needs, you can scale up or down memory (RAM) allocated for the worker (from 2 GB to 32 GB). If you experience slowness using the worker, consider increasing the memory.
If you approve a memory change for a background worker, note that the instance will be destroyed and a new worker will be created with the desired memory configuration.
Go to Environment → Settings → Resources to add a worker to your environment.
Adding a Background worker

Elasticsearch

Elasticsearch is a distributed, RESTful search and analytics engine. At Artifakt, the default Elasticsearch version is 7.10.

Service Configuration

Depending on the criticality of your environment (critical or noncritical), the service architecture will be slightly different.
Environment
Architecture
critical
The service defaults to 3 data nodes.
noncritical
The service defaults to 1 active node with no replication.
To help keep your data secure, encryption at-rest is enabled by default. Elasticsearch services added to your environments are always private (not reachable from the public Internet). Only web server instances powering your environment can access it using SSL connexion on port 443.

Adding an Elasticsearch service

Go to Environment → Settings → Resources to add an Elasticsearch service to your environment and, if needed, adjust the available memory:
Memory
Sizing
2 GB
vCPU: 2, RAM: 2GB
4 GB
vCPU: 2, RAM: 4GB
8 GB
vCPU: 2, RAM: 8GB
16 GB
vCPU: 4, RAM: 16GB
32 GB
vCPU: 8, RAM: 32GB
Storage can also be adjusted: 25GB, 50GB, 100GB, 150GB, 200Go, 300GB or 500GB.
Adding an Elasticsearch service
Once the Elasticsearch service has been added and is available, go to Environment → Resources → Elasticsearch to find the connection information for the Elasticsearch service. You can also access connection information via specific environment variables for your source code.

Updating an Elasticsearch service

Go to Environment → Settings → Resources to update the configuration of the Elasticsearch service added to your environment.

Emails

Web server instances are not designed to send emails, thus port 25 is disabled. If your application needs to send transactional emails, we highly recommend using a third-party service like Mailjet, Mailchimp or SendGrid.

Load balancer

Artifakt provides on each environment a load balancer in front of the web servers. The default routing algorithm is round robin, it means the load balancer routes traffic across all your web servers in equal proportion.
The Artifakt load balancer is smart, if one or more web servers cannot serve any more requests:
  • Instance will be detached from the load balancer (no more traffic will be routed to this instance)
  • Traffic wil be re-routed to other web servers
  • Our auto-healing system will reboot and re-setup the failed instances
  • If auto-healing succeeds, the web instance will be re-attached to the load balancer

MySQL

MySQL is an open-source relational database management system (RDBMS). A relational database organizes data into one or more tables in which data types may be related to each other; these relations help structure the data.
At Artifakt, the default MySQL version is 5.7.35. Other versions available: 8.0.26. The right version will be automatically configured depending on the selected runtime (e.g. for Akeneo 4 and Magento 2.4, MySQL 8.0.26 will be used).
Security patches and minor versions are automatically applied as soon as they are available.
If needed, you can adjust the memory (from 1 GB to 32 GB) as well as the SSD storage (from 25 GB to 500 GB). The MySQL service includes only 1 node by default. If your environment is set to Critical and based on a Scalable platform, then the database will be resilient. It means, the database will use as many nodes as there are data centers available in the selected deployment region (multi-az mode).
The default configuration of the MySQL service can be found by executing the following SQL command:
SHOW VARIABLES;
Please note that:
  • slow_query is enabled by default to gather slow queries logs that are displayed in the Console.
  • The default database charset is utf8.
  • log_bin_trust_function_creators is enabled by default.
  • You can customize the default configuration by contacting our Support team.
MySQL databases we provide are private. Only web server instances in your environment can access it on port 3306. Go to Environment → Resources → Database to find your MySQL database credentials.
When the MySQL service is enabled, you can access credentials via specific environment variables from your source code.
To access the MySQL database from your computer, we recommend using a MySQL client such as Sequel Pro, Sequel Ace (for Mac) or MySQL Workbench (For Windows). The connection should be done through SSH tunnel (Fill SSH instance credentials and Database credentials display in Environment → Resources → Database).
If you are using a Starter platform, you can also connect to the database with a terminal:
  • Connect to the instance via SSH.
  • Connect to the MySQL container: docker exec -it mysql bash
  • Connect to the database with the mysql client: mysql -u$MYSQL_USER -hlocalhost -p$MYSQL_PASSWORD $MYSQL_DATABASE
  • Run your mysql commands

Persistent Storage

The web server instances used for your environments have ephemeral storage. This means that everything you manually create/modify on an instance can be lost if the instance stops or restarts (auto-scaling, auto-healing, upgrading sizing, etc.).
If you don't want to lose important files, you have 3 options:
  • Store files in your Git repository
  • Generate useful files during the build step of your application
  • Use persistent storage
By default, Artifakt includes a persistent storage volume on each of your environments with a storage capacity of 25 GB (SSD).
We offer 2 types of volumes depending on your platform type:
  • Starter: Fixed storage
  • Scalable: Elastic storage that scale with your data size
Artifakt creates both daily and weekly backups. The retention period for daily backups is 7 days and 14 days for weekly backups. These backups are created at 2AM in the respective deployment region of the environment. All Backups are stored as snapshots in same region on our private object storage infrastructure, with 99.999999999% durability and 99.99% availability.
The IOPS (input/output operations per second) will depend on your volume capacity. The larger the volume, the more operations you will be able to perform per second.
Please do not use persistent storage for streaming, updating files at high frequency or downloading large files. The persistent storage service is not designed for this and it will slow down your web application.

Redis

Redis is an open source, in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker.
At Artifakt, the default Redis version is 6.2.

Service Configuration

Depending on the criticality of your environment (critical or noncritical), the service architecture will be slightly different.
Environment
Architecture
critical
The service defaults to 1 active node, replicated to 1 standby node in a different availability zone. After failover, the standby node becomes the primary node and accepts your cache operations.
noncritical
The service defaults to 1 active node with no replication.
To help keep your data secure, encryption at-rest is enabled by default. Redis services added to your environments are always private (not reachable from the public Internet). Only web server instances powering your environment can access it on port 6379.
The default configuration of the Redis service can be found on the official AWS documentation. Some parameters are dynamic, which means their value will evolve according to the selected sizing (0.5 GB, 1 GB, 3 GB, 6 GB or 12 GB). If necessary, you can ask to adjust the configuration slightly by contacting our Support team.

Adding a Redis service

Go to Environment → Settings → Resources to add a Redis service to your environment and, if needed, adjust the available memory:
Option
Sizing
0.5 GB
vCPU: 2, RAM: 0.5GB
1 GB
vCPU: 2, RAM: 1.37GB
3 GB
vCPU: 2, RAM: 3.09GB
6 GB
vCPU: 2, RAM: 6.38GB
12 GB
vCPU: 4, RAM: 12.93GB
Adding a Redis service
Once the Redis service has been added and is available, go Environment → Resources → Cache to find the connection information for the Redis service. You can also access connection information via specific environment variables from your source code.

Updating a Redis service

Go to Environment → Settings → Resources to update the configuration of the Redis service added to your environment.
Security patches and minor versions are automatically applied as soon as they are available. These updates, if any, are applied every Wednesday morning between 3am and 4am. This time is localized and adjusted according to the deployment region of each of your projects.

Restarting a Redis service

If necessary, you can restart the Redis service. The service will completely flush all its data and restart. During this process you cannot access the service. Because the service flushed all its data, when the service is available again, you are starting with an empty cache.
Go Environment → Resources → Cache to restart the Redis service.
Please note that when the maximum memory is reached, the service evicts keys by trying to remove the less recently used (LRU) keys first, in order to make space for the new data added (it means that the maxmemory-policy directive is set to allkeys-lru).

RabbitMQ

RabbitMQ is an open-source message-broker software (sometimes called message-oriented middleware) that originally implemented the Advanced Message Queuing Protocol (AMQP).
At Artifakt, the default RabbitMQ version is 3.8.

Service Configuration

Depending on the criticality of your environment (critical or noncritical), the service architecture will be slightly different.
Environment
Architecture
critical
Logical grouping of 3 RabbitMQ broker nodes (Cluster deployment for high availability)
noncritical
1 active broker node with no replication (no cluster mode).
To help keep your data secure, encryption at-rest is enabled by default. RabbitMQ services added to your environments are always private (not reachable from the public Internet). Only web server instances powering your environment can access it on port 5671 and 443 for rabbitmq admin console.

Adding a RabbitMQ service

Go to Environment → Settings → Resources to add a RabbitMQ service to your environment and, if needed, adjust the available memory:
Option
Sizing
1 GB (only noncritical environment)
vCPU: 2, RAM: 1GB
8 GB
vCPU: 2, RAM: 8GB
16 GB
vCPU: 4, RAM: 16GB
32 GB
vCPU: 8, RAM: 32GB
64 GB
vCPU: 16, RAM: 64GB
Adding RabbitMQ Service
Once the RabbitMQ service has been added and is available, go Environment → Resources → RabbitMQ to find the connection information for the RabbitMQ service. You can also access connection information via specific environment variables from your source code.

Updating a RabbitMQ service

Go to Environment → Settings → Resources to update the configuration of the Redis service added to your environment.
Modifying the service sizing will force the destruction and recreation of all nodes. It will occur a downtime of few minutes and the service endpoint will change afterwards.