Blueprints are reusable descriptions of infrastructure. A blueprint can be as simple as the definition of a resource group, or as complex as a load balanced application. By creating your blueprints following best practices, you will carve your infrastructure up into units that can be customized and reused. For example, if you have multiple applications that use a database but they do not share the same database instance, a single blueprint describing the database can be used as part of an environment that describes each application.
Blueprints are versioned, allowing for testing, publishing, and consumption. The blueprint lifecycle demonstrates the typical workflow that is applied to a blueprint:
All blueprints begin as a draft. A blueprint draft can be modified. You use the portal's online editor to modify a blueprint draft.
When you are satisfied with a blueprint draft, it needs to be tested. You can test your changes by cloning an existing environment that uses the blueprint, or making a new environment. The environment must be put into development mode, which allows draft blueprints to be added. You can apply the development environment and validate the desired configuration was achieved.
After a blueprint is drafted and tested, you are ready to publish it. Publishing a blueprint requires you to specify a new version for the blueprint. Some of the Tuono service subscription levels only allow for a
active version. Other subscription levels allow for advanced versioning, and we recommend you use the SemVer versioning style of
major.minor where a major version change indicates an incompatibility with previous major versions. This typically means that if a consumer updates their environment to use this new major version, it will likely cause a service interruption.
Blueprints are added to environments, and the version is selectable. The Tuono Portal will notify you when any environment using a blueprint has a newer version available. You may choose to update the version you are consuming and apply the environment to realize the changes. This not only lets you upgrade to newer blueprints, but also to revert to previous blueprints.