Framework Requirements

As discussed on "What is it?", a framework for self-service provisioning of services out of a Kubernetes cluster is a core part of the application catalog.

This page discusses requirements the framework must adhere to, grouped by personas.

For Service User

Self-Service First

A service provided using the framework must be available for self-service ordering and configuration.

Low barrier to entry

Using a service should be as easy as possible:

  • Simple and discoverable interface to order and manage the service

  • Expressive and approachable documentation

Consistent API

Services which are made with the framework share a common API scheme (where it makes sense) to have common identity.

For Service Maintainer

Reusability

Base parts of the framework should be reusable by the Open Source community and VSHNeers, whenever it makes sense, adhering to our company value "Transparency". When we develop a base part of the framework which might be usable by others, we try to bring it upstream or contribute it to the place it best belongs to. Just like Puppet base module or Helm charts are (can be) reusable.

Low barrier to entry

Adding a new service to the catalog or maintaining an existing service using the framework should be as easy as possible. Required skills:

Must
  • Kubernetes

  • Helm, Helm Charts

  • Prometheus, PromQL

  • (Crossplane)

Should
  • Commodore Components

Low maintenance

Our focus must be on maintaining the service itself. Core parts of the framework should be maintained by a community whenever possible, a third-party software vendor or by the framework maintainer. (Just like Puppet itself is maintained by Puppet Labs - we maintain the modules and run the infrastructure)

More buy than make

Try to use what’s already available and focus on sticking parts together to be of use for us. Only engineer code (for example Go or Python) when it’s for sticking parts together or a mandatory part is missing.

Be aware of the risks

When "buying" a part of the system, do a risk assessment and document it properly.

Testing facilities

Automated testing is important for the quality of a service. The framework must provide facilities for a service maintainer to be able to specify tests for a service.