The number of services running in WMF production has been steadily increasing lately: OCG, Mathoid, Citoid, Parsoid, RESTBase, Graphoid, Maps, MobileApps, etc. The Services team does a fair amount of mentoring other teams during the initial development and deployment process.
Problem
Developers have found it easy to develop new services and implement changes iteratively. However, service ownership and maintenance currently falls on Services by default, which has several drawbacks:
- Scalability. The team has 4 members which work in various areas. Hence, maintaining the status quo in ownership and maintenance while increasing the number of deployed services will not be feasible.
- Feature know-how. Having a feature being implemented as a service does not mean that the Services team is capable of implementing urgently-needed changes to running software.
Discussion
Let's try to find solutions to the following problems:
- Re-evaluate the ownership status of the deployed services
- How can services be efficiently owned by teams lacking back-end / production knowledge?
- What is the long-term strategy for services in production? What happens to services when their owners leave / give up / etc?