POC: application delivery framework
Proposal
Requirements
- Platform
- Provide a high-level, simple interface (might be YAML) for software engineers to adjust parts of the platform while hiding the complexity when it's not needed.
- For the POC: summarize at least some level of parameters this interface would need to provide (This could be used for future discovery)
- The main abstraction for developers should be an
Application
concept to fit their mental model
- For the POC: highlight how this would be modeled in a real implementation
- Provide insights of what is running where and what's the status of a given release and a running deployment
- Security and compliance
- Do not expose any secrets when it's not necessary
- Allow for separation of responsibilities in the form of fields/values managed by different teams
- Allow for separation of responsibilities in the form of deployment approvals
- Code based orchestration
- All long-running environments should be managed 100% through code, in a declarative fashion
- Support multiple environments and the promotion of a given release across environments
- A single release might have internal dependencies that need to be followed (e.g. first run schema migrations, then data migrations, followed by starting pods for the new version, and finally destroying the old pods)
- Technology
- The delivery framework should be platform agnostic. It should be possible to support Kubernetes, EC2, Lambda with the same tools and minor modifications of the POC.
Output
- Share a recording/write-up of the generic learnings, highlighting the biggest difficulties and anything considered interesting for productizing the idea
- Answer the following questions:
- Which parts are expected to require the most product/user research?
- Where is the most plumbing needed?
- Write a blogpost or record a video presenting the POC
- Optionally propose a scope that is within 1-2 milestone reach and likely provides high value to our users