Hi! I'm Alex and part of the ivyTeam and participant of Code Camp 2022 🎪. I'm investigating S3 Storage Providers as a possible alternative to classical file stores on the server itself for our workflow documents.
Axon Ivy and files
Ivy stores workflow documents in the local storage where the server is installed. This is fine and absolutely sufficient for most installations. If it comes to larger and more complex installations, this can lead to problems.
- On the disk is not only software and configuration data but also productive data. These must be backed up.
- Besides the log directory, the file directory is often a reason for server crashes due to out-of-space.
- In case of a cluster installation the same directory must be available on each cluster node. This is often a challenge, especially in the container environment with Kubernetes.
- The management of the files is rudimentary. There is often no possibility to encrypt, define retentions, versioning, monitor accesses and more.
S3 Storage Providers to the rescue ⛑
The cloud has also made inroads here, and Amazon is considered a pioneer here with its in-house S3 service for storing files in the cloud in a scalable manner independent of the application. The advantages:
- Files are directly versioned
- Files are backed up
- Files can be transparently encrypted
- You can define a retention policy
- Container and cloud ready by design
- monitoring of access
and much more ... see: https://aws.amazon.com/s3/
In S3 files are stored in so-called buckets within the bucket the files are stored as objects, in addition metadata can be added. Basically, buckets are organized flat. Objects are addressed via a unique name within the bucket, but you can search them via the prefix of the name.
Tomorrow I try to store the workflow documents of ivy in a S3 storage.