Revision Management in API-Platform #391
Replies: 5 comments
-
|
Unlike API Manager, the API Platform is supposed to be tightly integrated with Git. Although not mandatory, maintaining API specs, docs, deployable artifacts, etc in Git is the recommended way of using the API Platform. For someone who wants revisions, what if we just say rely on Git instead of having to build anything specifically in the product? |
Beta Was this translation helpful? Give feedback.
-
|
@VirajSalaka @nuwand
|
Beta Was this translation helpful? Give feedback.
-
|
It means that if you are not depending on Git, then revisioning is not supported. I have following questions.
For Bijira I think we need the revision feature because we cannot cut features if the user does not use git. If API-Platform does not have this we have to solve separately for Bijira. |
Beta Was this translation helpful? Give feedback.
-
|
Irrespective of the design choice to provide option for change management through Git revisions or platform managed revisions, we anyway need an immutable artifact by bundling the API with its specific gateway configuration into a single, traceable unit. "Flagged Revisions" ModelIf we are to bring an explicit re-visioning model in platform which is separate from git change management, it should be a hybrid approach to combine stable, explicit revisions with the flexibility needed for environment-specific deployments. The Base Model: Simple Revision ManagementThe foundation is a simple system where a user creates a major, immutable Core Revision (e.g., The Challenge: Environment-Specific ConfigurationsThe key challenge is how to apply different configurations (e.g., for Staging vs. Production) to the same core revision without creating a new, confusing major revision just to change a configuration value. The Proposed Solution: "Flagged" RevisionsThis model introduces the concept of a Flagged Revision: a lightweight, system-generated child of a core revision. It would be created automatically upon deployment and would immutably bundle the parent revision's logic with the specific configuration for that single deployment. For example, when a user deploys The theoretical benefits of this were:
2. DrawbacksDespite the benefits, this approach has several critical concerns:
|
Beta Was this translation helpful? Give feedback.
-
|
To overcome the above drawbacks of an explicit revision model, following is a proposal for a much simpler approach we could implement for the initial phase. As we go on and define the exact design choices for change management for APIs, we could improve this later. Proposal: API Deployment Artifacts1. Problem StatementThe API Platform needs to provide a flexible and robust mechanism for deploying APIs to various gateways. The solution must support traceability and promotion workflows (e.g., Staging to Production) without enforcing a single, rigid environment model. Instead, it should provide powerful, unopinionated building blocks that customers can use to construct their own CI/CD pipelines and release processes. The core of this is the ability to create immutable deployment artifacts that can be reliably deployed and promoted across different gateways, each with its own specific configuration. 2. Proposed Design: A Deployment-Centric ModelThe proposed design is centered around a new core concept: the Deployment. A Deployment is an immutable, self-contained artifact that represents a specific snapshot of an API, bundled with the gateway-specific configurations it was deployed with. Each time an API is deployed to a gateway, a new Deployment artifact is created. Key Principles:
3. User WorkflowsThis model supports two primary workflows: Workflow A: Deploying the Latest API ChangesThis is the flow for deploying new work.
Workflow B: Promoting or Re-deploying an Existing DeploymentThis is the flow for promoting a deployment to a new gateway (e.g., from Staging to Production) or re-deploying an existing artifact.
4. Deployment LifecycleThis model introduces a stateful lifecycle for each deployment artifact, allowing for a full deployment history to be maintained for each gateway.
5. API and Data ModelThe following API endpoints and data structures will be implemented to support this design. API Endpoints:Platform API
Internal API
Data Model:
6. Open Questions and Future Considerations (Grey Areas)This design provides a flexible foundation. However, several areas, particularly around Git integration, require further exploration.
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Revision: The deployable/deployed API artifact in a gateway. By looking at the revision, we should be able to identify exactly what is deployed in gateway. Comparing revisions, we could identify the changes shipped for different gateways as well as see the difference between the changes pushed for the same gateway.
It is the same revision concept as in wso2 api manger.
How do we plan to achieve the same feature in api-platform?
Beta Was this translation helpful? Give feedback.
All reactions