A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Decision ID | Design Decision | Justification | Implication | Implemented | If No, Why | ||||||||||||||||||||
2 | APP-001 | Avoid using cloud-proprietary services | Cloud proprietary services can lock your customers into a specific cloud and limit your future options | Increased cloud independence and lower support burden | | |||||||||||||||||||||
3 | APP-002 | Use horizontally scalable services | Horizontally scalable services allow customers to scale as necessary to support increased demand | May limit some of your service options | | |||||||||||||||||||||
4 | APP-003 | Use declaratively database schemas (see schemahero.io) | Allows seamless life cycle management of your application | None | | |||||||||||||||||||||
5 | APP-004 | Wait for resources to become available | Avoids exposing crashloop backoff conditions to end users | provides expected end user behavior, same outcome can be achieved in packaging with init containers if necessary | | |||||||||||||||||||||
6 | BUILD-001 | Integrate the Replicated cli with your CI workflow | Integration with your CI pipeline ensures that every iteration of your software is available for testing and can be promoted quickly to customers | None | | |||||||||||||||||||||
7 | BUILD-002 | Use the --auto flag on the replicated release create command | This flag embeds best practices for creating replicated releases | The functionality of the auto flag may change as new best practices are implemented and release notes should be watched for change in behavior | | |||||||||||||||||||||
8 | BUILD-003 | Sign all commits | Signing commits helps show you are conforming to a secure supply chain | None | | |||||||||||||||||||||
9 | BUILD-004 | Sign container images and provide verification mechanism | Signing container images helps show you are conforming to a secure supply chain | None | | |||||||||||||||||||||
10 | PACK-001 | Use a git branch per channel for your deployment repository that match the release channel in the vendor portal | This idiom lets you quickly identify which section of your source aligns to what release channel. It also follows the in-built --auto flags of the replicated CLI | None | | |||||||||||||||||||||
11 | PACK-002 | Have preflight checks for any underlying constraints you have on the underlying kubernetes cluster | Preflight checks can guarantee your underlying platform meets your expectations | Missing preflight checks can result in later support calls when the application does not perform as expected | | |||||||||||||||||||||
12 | PACK-003 | Use Helm charts to create your application manifests | Helm charts open up additional deployment options and allow you to build on other charts | While Helm charts open additional deployment options, they introduce additional complexity. Caution should be taken to keep the go templates as simple as possible. Additionally, manifests that are go templates are not parseable yaml which can limit options for linting and other automated manifest manipulation. | | |||||||||||||||||||||
13 | PACK-004 | Do not package an ingress controller | Ingress should be provided by the distribution | Not providing an ingress controller means you must limit some of the ingress features you can use. A preflight check can be used to verify a compatible controller is being used. | | |||||||||||||||||||||
14 | RELE-001 | For customer facing channels use semantic versioning | Semver will allow your customers to understand the expected impact of upgrading | Using semver requires diligences to maintain the expected contract with your customers | | |||||||||||||||||||||
15 | RELE-002 | Match release channels and package repository branch names | Simplifies logic between systems | None | | |||||||||||||||||||||
16 | RELE-003 | Be consistent in your versioning across channels | Consistent versioning will help if you want to switch a customer between channels | None | | |||||||||||||||||||||
17 | DELV-001 | For each customer, guide them to use whichever cluster deployment model (existing vs embedded) they are already the most familiar or comfortable with. | All clusters can be run well, but not all customers can run all clusters. By meeting your customers where they are, you optimize their chance of success. | Replicated enables you to deploy anywhere, the most important thing to consider is what is best for that customer. | | |||||||||||||||||||||
18 | DELV-002 | Enterprise customer should integrate with existing observability and logging platforms | Integrating with their existing stacks means the customer will be able to effectively manage the availability and performance of the installation | Providing procedures and documentation to help customers integrate with their existing log and monitoring platforms will help keep your software available and reduce MTTR when there is an issue. | | |||||||||||||||||||||
19 | SUPP-001 | Integrate support bundles with your incident process | Support bundles help support teams rapid pinpoint the cause of incidents | Reduced time to resolve | | |||||||||||||||||||||
20 | SUPP-002 | After each incident write an analyzer that would detect the issue in the future | Analyzers help the customer to self troubleshoot and remediate and increase confidence in the product | Less support cases & faster resolution of those opened | | |||||||||||||||||||||
21 | SUPP-003 | At your initial deployment, add support analyzers for your known log files and issues | Analyzers help the customer to self troubleshoot and remediate and increase confidence in the product | Less support cases & faster resolution of those opened | | |||||||||||||||||||||
22 | SUPP-004 | Create status informers for all your long running statefulsets and deployments | Status informers will allow the admin console to accurately depict the status of your application | Less support cases & accurate representation of state and telemetry | | |||||||||||||||||||||
23 | DOCS-001 | Integrate the Enterprise section of docs into your own documentation | Replicated provided documentation reduces burden on your technical writing staff | None | | |||||||||||||||||||||
24 | DOCS-002 | Watch the replicated-docs repository for changes and update your docs accordingly | Up to date docs help you and your customers install and support efficiently | None | | |||||||||||||||||||||
25 | DOCS-003 | Use vendor doc templates | Up to date docs help you and your customers install and support efficiently | None | | |||||||||||||||||||||
26 | SELL-001 | Integrate replicated sales collateral into your own | Replicated collateral helps articulate the value the Replicated platform brings to your customers | Win over IT Operation decision makers | | |||||||||||||||||||||
27 | SELL-002 | Integrate replicated license management with your SFDC (Salesforce Datacenter) | This gives you a single source of truth in the existing system you have | Customer clarity and simplified operations | | |||||||||||||||||||||
28 | ||||||||||||||||||||||||||
29 | ||||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||
36 | ||||||||||||||||||||||||||
37 | ||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||
40 | ||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |