Blueprints

Architect your Infrastructure

Introduction

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.

Lifecycle

Blueprints are versioned, allowing for testing, publishing, and consumption. The blueprint lifecycle demonstrates the typical workflow that is applied to a blueprint:

Blueprint Lifecycle

Drafting

All blueprints begin as a draft. A blueprint draft can be modified. You use the portal's online editor to modify a blueprint draft.

Testing

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.

Publishing

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 draft and 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.

Consuming

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.