-
Notifications
You must be signed in to change notification settings - Fork 0
Description
1. Epic Request
What's your request about? Describe the solution you'd like
- Operating perspective: I can deploy Deploy App with tak, with tak & mtx, with N products with DA integrations available, on will.
- Developing perspective: I can integrate my product to be deployed with Deploy App clearly & easily.
- Product management perspective: I can easily enable / disable deployment of N products with DA integrations available.
Describe the Business Problem
- Different products have different users
- Different products have different infra requirements
- Different products have different developer teams
Operating perspective
When in operation, the product should serve different users with products they actually need. The deployment logic should reflect this with minimum hassle.
Developer perspective:
We don't want to dream of centralized top-down organization to control every & each developer team. Instead we want enable them working in a cellular organization. Where Deploy App is a core enabler. A Deploy App operator will then choose, what integrations they want to use (though Deploy App will enforce & suggest best practices and the intended usage flow).
Product mgmt perspective
When an Operator has embraced Deploy App, they should be capable of choosing AND dropping product integrations AND a failing product integration should not sink the entire ship (instead - automatical Oops this certain thing wont happen today).
2. Additional Information
How should this feature be implemented?
Flow:
- Operating flow
%% ──────────────── Operating flow ────────────────
sequenceDiagram
participant DT as Developer Team
participant OP as Deploy App Operator Team
participant UG as User Group
DT->>OP: Deliver new integration<br/>(code + artifacts)
Note right of OP: Validates & enables<br/>integration in Deploy App
OP->>UG: Deploys app with products x, y, z
UG-->>OP: Uses features & reports feedback
- Development flow
%% ──────────────── Development flow ────────────────
sequenceDiagram
participant DA as Deploy App Core Devs
participant PXDEV as Product X Dev Team
participant PXINT as Product X Integration
participant OP as Deploy App Operator Team
participant UG as User Group
DA->>PXDEV: Publish the platform <br/>+ docs & guidelines
PXDEV->>PXINT: Build integration <br/>(code, tests, metadata)
PXINT-->>OP: Becomes “Available to Enable”
OP->>OP: Review licence / terms
OP->>UG: Deploy Product X integration<br/>to selected users
UG-->>OP: Adoption metrics / issues
UG->>PXDEV: Product feedback & requests directly to product devs
PXDEV->>DA: Requests for integration capabilities
UG->>DA: Requests on core flows at Deploy App
- Product mgmt flow
%% ──────────────── Product-management flow ────────────────
sequenceDiagram
participant PXDEV as Product X Dev Team
participant OP as Deploy App Operator Team
participant PXINT as Product X Integration
participant DAOP as Running Deploy App
PXDEV->>OP: Ship integration
OP->>PXINT: Enable Product X option
alt Integration healthy
PXINT-->>DAOP: Serves Product X features
else Failure path
PXINT--x DAOP: Error when deploying
DAOP->>DAOP: Graceful degradation<br/>“Product X is not available today—sorry” - other products in same deployments may go forward
end
Describe considered alternatives
Writing this up once there's more
How this feature could be implemented technically?
Probably it's mainly an Infra thing at core.
Right now deployments are done with a Docker (mega)compose which is the same across all operators of Deploy App.
Solution is probably to be made so that while Operators have only minimal extra things to do, different Operators can select what product integrations they can use.
Other significant things
- UI full modularity which is Soon:tm: here: - Add new instructions API #148
- Good full tech documentation and User Guides - https://github.com/orgs/pvarki/projects/24?pane=issue&itemId=95166697&issue=pvarki%7Cmarkdown-executing-pm%7C1