docs/static/v0.9/concepts/logical/designs/index.html
Like a Google Doc, Designs are your primary tool for collaborative authorship of your infrastructure and services. A Design describes all the resources and their properties that you want for a single deployment based on Meshery’s declarative syntax (see Meshery Schemas repo). By default, Designs are stored in your user account, but can be manually exported, programmatically snapshotted, or automatically synchronized to any OCI-compatible registry (e.g. Docker Hub, AWS ECR, and so on), or Git-based repositories (coming in v0.8). You can share designs and collaborate in real-time on their creation. Designs can be imported, exported, versioned, forked, merged, snapshotted, published, shared, embedded, templatized, and more.
As the deployable unit in Meshery, a Design consists of Components and Relationships. Designs are how you can describe your desired infrastructure state.
Designs can be cloned. Cloning a Design creates a new Design that is a copy of the original Design. The new Design is owned by the user who cloned it.
Designs can be merged. Merging a Design combines two Designs into a single Design.
Designs can be exported as JSON files or OCI images.
Designs can be imported:
Designs can be exported or embedded.
Designs can be snapshotted. Snapshots are immutable. Snapshots can be compared for differences between Design versions.
Designs can be published or unpublished. Published Designs are available to all users of any Meshery instance through the Catalog. Unpublished Designs can still be available to other users if that Design is made public.
Designs are versioned. Each time a Design is saved, a new version is created.
Designs can be deployed. Deploying a Design involves incorporating one or more components into your Design, configuring their relationships, and deploying them to one or more Environments. By default, any user of a Workspace can deploy a Design.
Designs can be deleted.
Designs can be compared.
Designs can be validated. Validation involves checking the syntax of the Design and ensuring that all the components and patterns referenced in the Design are available.
Designs can be dry-run deployed. Use dry-runs (or practice run) to ensure that your design works correctly and will not result in undesired changes.
Designs can be audited. Auditing a Design involves checking the Design for security vulnerabilities, compliance with best practices, and adherence to the organization’s policies.
Designs can be searched.
Designs can be filtered and viewed as a live-running deployment in your Environments.
Designs can be sorted by name, date created, date modified, or by the visibility level (public or private) or Catalog published status.
Designs can be grouped into Workspaces and shared among teams and deployed to Environment(s).
Designs can be tagged by Technology and/or by Type (e.g. Deployment, Security, Resiliency, Observability, etc.)
(Coming in v0.9) Designs can be converted into reusable Patterns. Creating a Pattern involves replacing the values of the variables in the design with the values provided by another user. Patterns can be shared with other users or teams.
When creating a new design by default it’s visibility level will be set to public. Remote Providers have the option of offering additional visibility levels like private and published.
Designs are the deployable unit in Meshery. Models are the unit of packaging for Components. Components are described in Designs. Models are not directly deployed. Designs and their Components are.
Meshery Models represent the fundamental building blocks of your infrastructure. Think of them as blueprints or templates that define the structure, components, and configurations of your deployments. These models encapsulate everything from network configurations to service definitions, making them essential for consistent and scalable deployments across environments.
On the other hand, Meshery Designs are the practical implementations based on Meshery Models. They represent declarations of your infrastructure deployments, customized according to specific use cases, environments, and requirements. Meshery Designs allow you to create, manage, and deploy complex architectures seamlessly, leveraging the power and flexibility of Meshery Models as their foundation.
Designs are the blueprints for your deployments, while Meshery Models are the internal components that provide the building blocks and knowledge to fulfill those blueprints.
See the following tutorials on how to use Meshery Designs for collaboratively managing infrastructure.
Try the Meshery Playground for a hands-on experience with Meshery Designs.
[ Previous
Logical ](/v0.9/concepts/logical)[ Next
Environments ](/v0.9/concepts/logical/environments)