Description
Application contact emails
chris.stephenson@humanitec.com, susanne.tuenker@gmail.com, florian@humanitec.com
Project Summary
Score is a developer-centric and platform-agnostic workload specification.
Project Description
Score provides a developer-centric and platform-agnostic workload specification to improve developer productivity and experience. It ensures consistent configurations between local and remote environments.
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 Helm Charts to deploy to the Kubernetes-based development environment? Not only do you have to figure out Docker Compose and Helm, but you need to keep them in sync.
Infrastructure centric development leads to developers having to stay on top of the tech and tools of every environment their applications run in. This often results in bottlenecks across the delivery cycle. Ensuring that a configuration change made locally is reflected appropriately in a remote environment and vice versa might end up being an intricate, multi-stakeholder endeavour.
We believe that developers shouldn’t have to fight a symphony orchestra of tech and tooling when preparing their code for its journey toward production. Instead, we advocate for a workload-centric approach to software development. This means that the platform or tools of the target environment are responsible for satisfying the workload runtime requirements rather than the other way around.
The Score specification was developed following a set of workload-centric development principles:
Establish a single source of truth for workload configuration
Provide a tightly scoped workload spec
Implement a declarative approach to infrastructure management
Score enforces these principles by providing a platform-agnostic specification that allows developers to describe their workload runtime requirements in an accessible and declarative way. This definition can be interpreted by the target environment and used as a baseline for injecting any environment-specific parameters.
Org repo URL (provide if all repos under the org are in scope of the application)
Project repo URL in scope of application
https://github.com/score-spec/spec
Additional repos in scope of the application
Website URL
Roadmap
https://github.com/score-spec/spec/blob/main/roadmap.md
Roadmap context
Feature enhancements and bugs adjacent to the roadmap can be found within the following repositories:
- https://github.com/score-spec/score-compose/issues
- https://github.com/score-spec/score-k8s/issues
- https://github.com/score-spec/spec/issues
The prioritisation of roadmap items and issues is currently guided by Project Melody (score.dev/blog/project-melody).
Contributing Guide
https://github.com/score-spec/spec/blob/main/CONTRIBUTING.md
Code of Conduct (CoC)
https://github.com/score-spec/spec/blob/main/CODE_OF_CONDUCT.md
Adopters
No response
Contributing or Sponsoring Org
Maintainers file
https://github.com/score-spec/spec/blob/main/MAINTAINERS.md
IP Policy
- If the project is accepted, I agree the project will follow the CNCF IP Policy
Trademark and accounts
- If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF
Why CNCF?
The CNCF has provided sponsorship for projects such as Kubernetes, Helm and Docker Compose, all of which have existing Score implementations. Therefore, it appears reasonable to us to contribute Score to the CNCF, enhancing the likelihood of additional implementations being created as Score gains popularity within the community.
Benefit to the Landscape
As a platform-agnostic workload specification, Score has the potential to integrate with various container orchestration platforms and tools within the CNCF landscape. This empowers teams to swiftly test and adopt new tooling without burdening developers with added cognitive load.
By promoting a developer-centric and workload-oriented approach to cloud-native development, Score also sparks conversations within the platform engineering community on best practices and industry standards. It fosters discussions on concepts such as separation of concerns, abstraction and cognitive load, providing guidance for teams on their platform engineering journey.
Cloud Native 'Fit'
Score fits within the Application Definition & Image Build section of the CNCF landscape.
Cloud Native 'Integration'
-
Docker Compose: Score integrates with Docker Compose (score-compose) in order to deploy containerized apps locally.
-
Kubernetes/Helm: Score integrates with Kubernetes (score-k8s) in order to deploy containerized apps to any Kubernetes clusters. Additionally, there is a proof of concept available for a score-helm implementation.
-
Dapr: Score complements Dapr nicely. Together both tools provide a strong foundation and alignment on improving the Developer Experience (see Dapr Community Call - Jan 10th and Dapr + Score at PlatformCon).
Cloud Native Overlap
OAM/Kubevela: OAM and Score are often compared as both advocate for developer-centric development. The main difference lies in scope. OAM focuses on Kubernetes and the entire application including multiple workloads and related configuration. Score on the other hand is compute agnostic (the only limitation is the use of OCI containers) and only describes the workload. It assumes you already have a platform for rendering, orchestrating and managing your applications in place.
Similar projects
-
OAM/Kubevela (see above)
-
Acorn: In a previous TAG App Delivery session at KubeCon NA 2023, Score’s approach was compared with Acornfile by Acorn (https://www.youtube.com/watch?v=NZCmYRVziGY&t=10941s); while Score files and Acornfiles provide a similar developer experience, as far as we can see Acorn doesn’t enable the creation of platform-neutral implementations, as it is closely related to Acorn’s deployment framework Acorn runtime.
Landscape
No
Business Product or Service to Project separation
There is a Score implementation available for the Humanitec Platform Orchestrator (score-humanitec). The Platform Orchestrator is a SaaS product of the sponsoring company Humanitec. Score functions as the abstraction layer for developers that works hand in hand with the Orchestrator, but it is important to understand there is no overlap between Score and the Platform Orchestrator itself and Score can be used entirely independently of Humanitec.
Project presentations
- Dapr Community Meeting in Jan 2024:
Jan 10th 2024, Community Meeting Agenda · Issue cncf/toc#375 · dapr/community (github.com) - TAG App Delivery Meetup KubeCon NA 2023:
https://youtu.be/NZCmYRVziGY?t=10941 - TAG App Delivery Community meeting in early 2023:
https://youtu.be/8hkxHw3MKBg?si=6YNrNIn500ecn-wt&t=339 - CNCF webinar in December 2022:
Cloud Native Live: Solve config drift across environments with Score | CNCF
We would be happy to schedule another presentation.
Project champions
Josh Gavant
Additional information
No response