dyrector.io’s main use case is to manage app releases and their configurations in Kubernetes and Docker. This is why we created Products and Versions. See how you can set up your application ready for deployment in under a minute using Products and Versions.
As their names indicate, Products exist for business purposes, while Versions are rather technical concepts within dyrector.io. Products are the applications you distribute to your clients and users through the platform, therefore it’s a concept on the business side of software development. On the technical side, Versions are unique variants of your Product, but chances are you’re already familiar with software versioning.
Simple & Complex Product Types
There are two types of Products you can create: Simple and Complex.
Simple products don’t have any versions, they don’t have any relation to other Products or Versions. This means there’s no way to roll them back. They’re ideal for testing. Below you can see how you can create a Simple Product in less than a minute.
You can deploy them to a test environment through dyrector.io right away without any specialist present. In the case of self-hosted dyrector.io, the test node will be the environment you use to run the platform.
The key difference between Simple and Complex Products is that the ladder comes with a version every time.
There are two types of Complex Products: Rolling and Incremental Versions.
- Incremental Version: The most significant difference between Incremental Versions and any other type of Product is that they’re hierarchical to other Versions within the same Product. Incremental Versions are ideal for production, when your application’s functionality has been validated through various tests. Rollbacks and defaulting apply to Incremental Versions, so when you set an Incremental Version as default, future versions will inherit images and configurations and you won’t have to add them repeatedly. Below you can see how you can create an Incremental Version to a Complex Product.
- Rolling Version: It consists of one rolling version your teammates can use for continuous delivery, but it can be rolled back. Below you can see how you can create a Rolling Version.
Complex Products can have both Rolling and Incremental Versions, so you can maintain versions of the same business product for different technical purposes.
Why should you treat Versions and Products differently?
Each type has a different purpose: what’s ideal for another usage, for example Simple Products for testing, might not be good for the other.
The most common use case of Products on dyrector.io is to create a Simple Product for testing, and either a Rolling Version for CD when users need access to just the latest functioning version or an Incremental Version when your clients need completely different versions of the app you developed for regulatory, business or technical reasons.
By our experience, a less common, but significantly valuable use case of having different versions of your product is when your team develops an extremely complex business application consisting of dozens of images with altering tags that need to be distributed to different clients. Not only Product assembly but configuration management can be all over the place in this case. For this reason, our team is working on bundled configuration management, which will allow users to templatize their variables and secrets, so they won’t have to be specified and assigned repeatedly.
To find out how to create Products and Versions, head to our documentation.
This blogpost was written by the team of dyrector.io. dyrector.io is an open-source continuous delivery & deployment platform with version management.
Find the project on GitHub.