Deploying
This section discusses methods for organizing, preparing, and managing deployments.
Grouping Like Deployments with Tags
Tags are an excellent way to subdivide functional sections of the project. They are especially useful in large projects that contain upwards of a hundred or more patterns.
Tags have customizable labels that can be assigned to an event pattern or event type. Each event pattern or event type can be assigned more than one tag.
Once an outline of patterns has been created, consider how to logically divide functional groups in your patterns. As you build the models, tag the patterns accordingly. That way, if specific updates or changes need to be made to a particular group or subgroup, patterns or event types of that group can be quickly isolated.
Tags can also be created to tag groups of patterns that are to be deployed together. Cogynt's deployment settings conveniently allow selecting patterns by tags (as opposed to selecting patterns one by one, which is time consuming and prone to human error).
Identifying When to Create Deployment Targets
Each deployment requires a deployment target to deploy patterns to. A deployment target contains information about the source and destination of data. When the patterns are deployed, each input and output topic in the patterns is created and mapped to the configured data source.
Deployment targets also serve as deployment configuration templates. Not all deployments have the same resource requirements. Depending on the size and complexity of the deployment, resources are configured differently. Deployment targets allow modelers to create custom default configurations for deployments. This is especially convenient in a large project with lots of deployments comprised of similar patterns and complexity.
Suppose that you have planned several deployments of either a small, medium or large size. You can decide on the resources and configurations needed for each of those sizes using deployment targets.
Thus, when you have 5 large deployments, 11 medium deployments, and 15 small deployments, you only need to select the appropriate deployment target for each size, rather than customizing every single deployment manually.
Despite the benefits of creating deployment targets, their number can quickly get out of hand if not properly managed. To keep things under control, the modeler should aim to keep the number of deployment targets to a minimum. A good rule of thumb is to only create a deployment target if three or more deployments can share it.
If the performance for one of the medium deployments is struggling with the default configuration set in the medium-size deployment target, the user can tweak the configurations directly in the deployment setting to override any setting in the medium-size deployment target. This is better than the more costly option of jumping straight to the large-size target and risk using more resources than necessary.
If the issue is unique to that deployment, there is no need to create a separate deployment target, or the list of deployment targets can become unwieldly.