Skip to content

The Score Specification provides a developer-centric and platform-agnostic Workload specification to improve developer productivity and experience. It eliminates configuration inconsistencies between environments.

License

Notifications You must be signed in to change notification settings

score-spec/spec

Repository files navigation

Score

Score banner

Score What is Score?

Score is an open source, platform-agnostic, container-based workload specification. This means you can define your workload once with the Score Specification and then use a Score Implementation to translate it to multiple platforms, such as Docker Compose, Kubernetes, Helm or Google Cloud Run.

In the example below, a score.yaml file is executed via score-compose to generate a compose.yaml file, which allows the user to spin up the workload via Docker Compose. The same score.yaml file is then run against score-k8s to generate a manifests.yaml file for deployments with Kubernetes.

demo.gif

This project aims to reduce developer toil and cognitive load by only having to define a single specification file that works across multiple platforms.

Using Score provides the following advantages:

  • Creates a single source of truth for your workload's configuration: Developers define their workload once with the Score Specification, independently of the environments it will run in.

  • Reduces cognitive load: The Score Specification is tightly scoped and shields developers from the configurational complexity of container orchestrators and tooling. By exposing only core workload constructs, developers can keep their focus.

  • Seperates concerns between dev and ops: The Score Specification clearly defines the responsibility of the developer. For the operations team it presents a recipe on how a workload should be run, providing clear instructions for the platform on the receiving end.

Score Why Score?

Cloud native developers often struggle with configuration inconsistencies between environments. This gets even more complicated when the technology stack in each environment is different. What if you use Docker Compose for local development, but deploy to a Kubernetes-based development environment?

Not only do you have to figure out Docker Compose and Kubernetes, but you need to keep them in sync.

This results in various bottlenecks along the application delivery lifecycle.

🎵 Tech & tools that require specialized knowledge and operational expertise are imposed on developers.

🎵 Different configuration rules, constructs and values between local and remote environments increase the risk of configuration inconsistencies.

🎵 Keeping a multitude of platforms and environment-specific configuration files in sync leads to repetitive configuration work.

Score provides a single, easy to understand specification for each workload that describes its runtime requirements in a declarative manner. The score.yaml file allows generating configuration in an automated, standardized and one directional way.

By reducing the risk of wrongly specified or inconsistent configuration between environments, are we hoping to foster focus and joy for developers in their day-to-day work.

Score How does Score work?

how-score-works

As shown in the graphic above, there are 3 core components to consider in the context of Score:

  • The Score Specification: An open-source, platform-agnostic, container-based workload specification that allows developers to describe their workload's runtime requirements in a straightforward and familiar manner. The current version of the specification schema is stored here. For a more detailed specification reference, check out our developer documentation.

  • A Score Implementation: The Score Specification is executed against a Score Implementation to generate a platform configuration file. Score offers two reference implementations out of the box: score-compose and score-k8s, which generate docker-compose.yaml and manifests.yaml files, respectively. Check our documentation for other available implementations.

  • The Generated Configuration File: This file can be combined with environment-specific parameters to run the workload in the target environment.

Get in touch Get in touch

Documentation

You can find our documentation at docs.score.dev.

Roadmap

See Roadmap. You can submit an idea anytime.

Contribution Guidelines and Governance

Our general contributor guidelines can be found in CONTRIBUTING.md. Please note that some repositories may have additional guidelines. For more information on our governance model, please refer to GOVERNANCE.md.

License

License

Code of conduct

Contributor Covenant

About

The Score Specification provides a developer-centric and platform-agnostic Workload specification to improve developer productivity and experience. It eliminates configuration inconsistencies between environments.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published