How we organize and get things done with SERVICEOWNERS
Blog post from GitHub
GitHub's primary codebase, a large Ruby on Rails monolith, has adopted a new organizational layer called SERVICEOWNERS to enhance the management of its growing platform. This service-oriented approach introduces a "maintainer" model instead of "ownership," aligning with GitHub's open-source ethos and creating clarity in service relationships. The SERVICEOWNERS file, alongside the existing CODEOWNERS, links code to specific services and maintainers, which is further detailed in a service catalog. This catalog centralizes information about service performance, dependencies, and maintainers, facilitating efficient communication and reducing incident remediation times. A Ruby gem integrates with the Rails app to automate updates and provide queries about service maintainers, while an ownership.yaml file allows service boundaries to span multiple repositories. This framework, beneficial for both open-source and corporate environments, aims to make maintaining services more straightforward and aligns with GitHub's open-source identity and access management initiatives.